前回 p929 でPLATEAUの街をUnrealUnityで比べたとき、「Unrealがリッチに見えるのはLumen(高機能なレンダリング)のおかげで、Unity側も“上位のパイプライン”にすれば差は縮まる」と書きました。今回はその宿題。Unityが持つ3つのレンダリングパイプライン――ビルトインRP・URP・HDRP――でまったく同じシーンを作り、見た目とFPSがどう変わるかを実機で確かめます。

🎨 この記事でわかること
レンダリングパイプラインとは何か、3種類の違い(非エンジニア向け)
・同じシーンで反射・ブルーム・光の回り込み・光芒がどれだけ変わるか
意外な結果:いちばん軽かったのはビルトインではなくURPだった話
見た目を揃えて比べるコツと、HDRPの“クセ”(露出・ライトの単位)の落とし穴

前回の宿題:「パイプライン」って何?

スポンサーリンク

レンダリングパイプラインとは、ざっくり言うと「3Dの世界を画面の絵に変換する“描き方の土台”」です。同じ家具(3Dモデル)でも、どんな照明の部屋に置いて、どんなカメラで撮るかで写真の印象がガラッと変わりますよね。パイプラインはその“撮影スタジオ”にあたる部分。Unityでは、この土台を3種類から選べるのが特徴です。

面白いのは、3Dモデルやライトの配置(シーン)は全く同じでも、パイプラインを替えるだけで出てくる絵が別物になること。今回はそれを目で見て確かめます。

ビルトインRP・URP・HDRPの違い(ざっくり)

まずは3つの立ち位置を、平たい言葉で整理します。

パイプラインひとことで向いている用途
ビルトインRP昔からある標準。シンプルで軽いが、ブルームなどの効果は別途追加が必要学習・軽量・昔からの資産
URP
(Universal RP)
今どきの標準。ブルームや色調整が最初から入っていて、軽くて幅広いスマホ〜PC、インディー全般
HDRP
(High Definition RP)
最高画質。反射・間接光・光芒などフォトリアルな表現が標準装備ハイエンドPC・コンソール、映像

キモは「何が“最初から”乗っているか」。ビルトインは素のまま、URPは“ちょうどいい”効果が標準、HDRPは“全部入り”――というイメージです。では同じシーンで本当にそうなるのか、見てみましょう。

今回の比べ方(同じシーンを3つで・同じWindowsで)

比較は条件を揃えることが命。そこで今回はこうしました。

  • 同じWindows PC(GeForce RTX 3060)で3つとも動かす(マシン差を消す)。
  • 3つのプロジェクトをテンプレートから新規作成(ビルトイン/URP/HDRP)。
  • まったく同じシーンを共通のスクリプトで自動生成し、オブジェクト・座標・ライト・カメラを完全一致させる。

シーンは、パイプラインの差が出やすい要素を意図的に全部入れた「暗い部屋のショールーム」です。

仕込んだもの見たい差
🪞 金属の濡れ床+鏡面の球反射(床に景色が映り込むか)
💡 ネオン3色(強い発光)ブルーム(光がにじむか)
🔴🔵 赤・青のライト+白い壁光の回り込み(GI)(壁に色が乗るか)
🔦 上からのスポット光+フォグ光芒(光の柱が見えるか)
📦 物理で積んだ箱のタワー物理はパイプラインで変わらない、の確認

※ Unityのバージョンは 6000.4.5f1(URP/HDRPはともに17.0.1)。シーンの“作り方”自体は今回の主題ではないので、3プロジェクトで構図をピタッと揃えるために共通のエディタスクリプトで自動構築しています。一方で、差を生んでいるパイプラインの設定は、あとで画像と数値の両方で載せます。

見比べ:同じシーンがこんなに変わる

では本題。同じカメラ・同じシーンで撮った3枚です。左からビルトインRP・URP・HDRP。

ビルトインRPの絵
ビルトインRP
URPの絵
URP
HDRPの絵
HDRP

パッと見の印象は三者三様。項目ごとに見ると、こうでした。

項目ビルトインRPURPHDRP
床・球の反射映り込み弱い映り込み弱い
(SSR標準なし)
周囲を映し込む
ネオンのブルームなし
(ただの明るい板)
にじむ強くにじむ
壁への色の回り込み直接光のみ直接光のみ陰側にも色が乗る
スポット光の光芒なしなし光の柱が出る
全体の空気感素っぴん整った標準シネマティック

いちばん分かりやすいのはネオン。ビルトインでは発光部分が「ただの明るい板」にしか見えませんが、URP・HDRPでは光がふわっとにじみます(ブルーム)。そして床の映り込みスポット光の柱(光芒)はHDRPだけがハッキリ出る、という結果でした。HDRPは「全部入り」の名に違わぬリッチさです。

⚖️ 見た目を揃えるための“ひと工夫”
実は最初、HDRPだけ左右の赤青ライトが妙に小さく見えました。原因は「四隅を暗くする演出(Vignette)」や露出・ライトの単位の違いという、こちら側の設定差。そこでVignetteを外し、明るさ(露出)と光の強さをURP・ビルトインにそろえました。すると赤青の大きさはほぼ同等に。“演出やカメラの設定”は揃え、純粋に「パイプラインが標準でどう描くか」を比べるのがコツです。

なお、それでも残る微妙な差(光源の近くに光が集中し、外側で急に暗くなる)は、パイプライン本来の“光の減衰モデル”の違い。ビルトインは昔ながらの柔らかい減衰、URP/HDRPは物理ベースでより自然――これは設定を揃えても残る“本物の差”です。

再現用:各パイプラインの設定

ここが今回の差を生んでいる本体です。読者が画面操作で再現できるよう、主要な設定を画像と数値で残します。

ビルトインRP(素のまま)

ビルトインRPの品質設定
品質設定(レンダーパイプラインアセット=なし)
ビルトインRPのライティング設定
フォグ(Exponential/密度0.03)
  • マテリアルは Standard シェーダー。
  • ポストエフェクトは無し(ブルームは標準では出ない。出したい場合は「Post Processing Stack」を別途導入)。
  • フォグは Lighting > Environment で Exponential・密度0.03、環境光は暗い紺。品質は Ultra(ピクセルライト4・MSAA 2x・VSync)。

URP(標準でブルーム・色調整)

URPアセット
URPアセット(Graphicsに割り当て)
URPのVolume設定
Volume:Bloom/Tonemapping/Color Adjustments
  • マテリアルは URP/LitGlobal VolumeBloom(しきい値0.9/強さ1.2)・Tonemapping(ACES)・Color Adjustments(露出+0.2/コントラスト10)。カメラの Post Processing を ON、AA は SMAA。
  • SSR(画面空間反射)はURP標準では非対応。床や鏡面球の映り込みは Reflection Probe・スカイボックス由来のみ(だから映り込みは弱め)。
  • Vignetteは不採用(四隅を暗くして赤青ライトを不当に小さく見せないため)。

HDRP(反射・GI・光芒が標準)

HDRPアセット
HDRPアセット(Lit=Deferred/SSR・SSGI有効)
HDRPのVolume設定
Volume:SSR/SSGI/Volumetric Fog/Exposure ほか
  • マテリアルは HDRP/LitGlobal VolumeScreen Space Reflection・Screen Space GI・Fog(Volumetric ON)・Exposure(Fixed EV10.5)・Bloom・Tonemapping(ACES)。スポットライトの Volumetrics を ON(光芒用)。
  • HDRPはライトの単位が違う(Directional=lux、Point/Spot=lumen)。今回は Directional 8000lux/Point 45000lm/Spot 80000lm に設定。
⚠️ HDRP最大の落とし穴:明るさ・発光の“桁”が違う
HDRPは露出(Exposure)・ライトの単位(lux/lumen)・発光(Emissive)の強さが、ビルトイン/URPの感覚とまったく違います。同じ数値を入れると真っ暗・真っ白・発光が露出に埋もれて光らないのどれかになりがち。今回もネオンの発光(Emissive)を“色×11万”という桁違いの値まで上げて、ようやく光りました。HDRPに移るときは「数値の桁が変わる」と覚悟しておくと安全です。

※ ほかにハマったのはマテリアルのマゼンタ化。パイプラインごとに対応シェーダーが違うため、プロジェクトを使い回したりシェーダーを間違えるとピンク一色になります。各プロジェクトで、そのパイプラインのLitシェーダーで作り直すのが確実でした。

性能:FPSはGPU時間で比べる

最後に性能。同じ視点で測りました。ただしFPSはVSync(60に張り付く上限)が効いてしまうので、本当の重さはGPUがそのフレームに使った時間(GPUフレーム時間)で比べます。短いほど軽い、です。

ビルトインRPのStats
ビルトインRP
URPのStats
URP
HDRPのStats
HDRP
指標ビルトインRPURPHDRP
GPUフレーム時間(短いほど軽い)12.3 ms9.2 ms(最軽量)17.5 ms(最重)
FPS79.0(VSync効かず)59.9(VSync上限)59.9(VSync上限)
SetPass/Draw Calls78/19547/18550/196
Triangles26.1k21.0k24.1k
🤔 意外な結果:いちばん軽いのは“URP”だった
「軽い順にビルトイン<URP<HDRP」だと予想していたのですが、実際はURP(9.2ms)<ビルトイン(12.3ms)<HDRP(17.5ms)URPがビルトインより軽いという逆転が起きました。理由は URPの「SRP Batcher」という仕組みで、描画命令(SetPass)が78→47に大きく減るため。HDRPが最重なのは、反射(SSR)・間接光(SSGI)・光芒(Volumetric Fog)・ブルームを全部積んでいるぶんで、これは納得です。いずれもRTX3060では60FPS以上に余裕でした。

物理は3つとも完全に同じでした。箱のタワーは3パイプラインとも同じように積まれ、球をぶつければ同じように崩れます。物理(PhysX)は描画の土台とは独立しているので当然ですが、「絵は変わっても、物理は変わらない」のは実際に見ると面白いポイントです。

まとめ:どれをいつ選ぶ?

  • ビルトインRP:軽量・シンプルだが素っぴん(ブルームすら別パッケージ)。Unity 6で新規にわざわざ選ぶ理由は薄め。学習や古い資産向け。
  • URPバランス型の本命。SRP Batcherで今回いちばん軽く、ブルームや色調整も標準。スマホ〜PCまで幅広い既定の選択肢。弱点はSSRなど高度な反射/GIが標準にないこと。
  • HDRP最高画質。反射・間接光・光芒が標準で“濡れ床に映り込み/光の柱/色の回り込み”が出る。そのぶん最重で、ハイエンドPC・コンソール前提。

前回p929の宿題――「Unityも上位パイプラインなら、Unrealのリッチさに近づく」――は、HDRPの絵を見れば一目瞭然でした。一方で、軽さと手軽さのバランスではURPが優秀という、やってみて初めて分かる発見もありました。“何を最初から欲しいか”でパイプラインを選ぶと、迷いが減りそうです。

次回は、Unreal側でも同じこと――Lumen/Naniteや品質設定を切り替えると、見た目と重さがどこまで変わるか――を試してみる予定です。

それでは、今回はここまで。最後までありがとうございました😊