見出し画像

Unity URPアセット

以下の記事を参考にして書いてます。

Universal Render Pipeline Asset

1. URPアセット

URP」(Universal Render Pipeline)を使用するには、「URPアセット」を作成し、Graphics設定で設定する必要があります。「URPアセット」は、「URP」のグラフィック機能と品質の設定を行う、「RenderPipelineAsset」から継承するスクリプト可能なオブジェクトになります。

2. URPプロジェクトのURPアセット

プロジェクト作成時に、「Universal Render Pipeline」を選択すると、メニュー「Edit → Project Settings → Graphics」の「Scriptqble Render Pipeline Settings」にURPアセット「UniversalRP-HighQuality」が設定されます。

画像1

この「URPアセット」は、Projectウィンドウの「Assets/Settings/UniversalRP-HighQuality」に存在し、選択することでInspectorウィンドウで各種設定を行うことができます。

3. URPアセットの設定項目

「URPアセット」の設定項目は、次のとおりです。

・General
・Quality
・Lighting
・Shadows
・Post-processing
・Advanced
・Adaptive Performance

4. General

パイプラインレンダリングフレームのコア部分の設定項目です。

画像2

◎ Depth Texture
URPが_CameraDepthTextureを作成できるようにします。URPは、シーン内のすべてのカメラに対して、デフォルトでこの深度テクスチャを使用します。これは、カメラインスペクタで個々のカメラに対してオーバーライドできます。

◎ Opaque Texture
これを有効にして、シーン内のすべてのカメラのデフォルトとして_CameraOpaqueTextureを作成します。これは、組み込みのレンダリングパイプラインのGrabPassのように機能します。不透明なテクスチャは、URPが透明なメッシュをレンダリングする直前のシーンのスナップショットを提供します。これを透明なシェーダーで使用して、すりガラス、水の屈折、熱波などのエフェクトを作成できます。これは、カメラインスペクタで個々のカメラに対してオーバーライドできます。

◎ Opaque Downsamplin
不透明なテクスチャのサンプリングモードを次のいずれかに設定します。

・None : カメラと同じ解像度で不透明パスのコピーを作成します。
・2x Bilinear : バイリニアフィルタリングを使用して半解像度の画像を生成します。
・4x Box : ボックスフィルタリングを使用して1/4解像度の画像を生成します。 これにより、ぼやけたコピーが生成されます。
・4x Bilinear : バイリニアフィルタリングを使用して1/4解像度の画像を生成します。

◎ Terrain Holes
このオプションを無効にすると、Unity Player用にビルドするときにURPがすべてのテレインホールシェーダーバリアントを削除するため、ビルド時間が短縮されます。

5. Quality

URPの品質レベルの設定項目です。これにより、ローエンドのハードウェアでパフォーマンスを向上させたり、ハイエンドのハードウェアでグラフィックスをより美しく見せたりすることができます。

画像3

◎ HDR
これを有効にすると、シーン内のすべてのカメラに対して、デフォルトでハイダイナミックレンジ(HDR)でのレンダリングが可能になります。HDRを使用すると、画像の最も明るい部分を1より大きくすることができます。これにより、光の強度の範囲が広がり、照明がよりリアルに見え、明るい光でも詳細を確認して彩度を下げることができます。これは、広範囲の照明が必要な場合や、ブルーム効果を使用する場合に便利です。

ローエンドのハードウェアをターゲットにしている場合は、これを無効にしてHDR計算をスキップし、パフォーマンスを向上させることができます。これは、カメラインスペクタで個々のカメラに対してオーバーライドできます。

◎ MSAA
レンダリング中にシーン内のすべてのカメラに対してデフォルトでマルチサンプルアンチエイリアスを使用します。これにより、ジオメトリのエッジが柔らかくなり、ギザギザやちらつきがなくなります。ドロップダウンメニューで、ピクセルごとに使用するサンプルの数(2x、4x、または8x)を選択します。選択するサンプルが多いほど、オブジェクトのエッジは滑らかになります。MSAA計算をスキップする場合、または2Dゲームでそれらを必要としない場合は、Disabledを選択します。これは、カメラインスペクタで個々のカメラに対してオーバーライドできます。

◎ Render Scale
レンダーターゲットの解像度をスケーリングします(現在のデバイスの解像度ではありません)。パフォーマンス上の理由から解像度を下げてレンダリングする場合や、レンダリングを拡大して品質を向上させる場合に使用します。これはゲームのレンダリングのみをスケーリングします。UIレンダリングは、デバイスのネイティブ解像度のままになります。

6. Lighting

シーンのライトの設定項目です。これらの設定の一部を無効にすると、関連するキーワードがシェーダー変数から削除されます。ゲームやアプリで使用しないことがわかっている設定がある場合は、それらを無効にしてパフォーマンスを向上させ、ビルド時間を短縮できます。

画像4

◎ Main Light
シーンのメインのディレクショナルライトに影響します。これを選択するには、照明インスペクターで太陽の光源として割り当てます。太陽の光源を割り当てない場合、URPはシーン内の最も明るい指向性ライトをメインライトとして扱います。Pixel LightingまたはNoneから選択できます。Noneを選択すると、太陽の光源を設定していても、URPはメインライトをレンダリングしません。

◎ Cast Shadows
このボックスをチェックして、シーンにメインライトキャストシャドウを作成します。

◎ Shadow Resolution
これは、メインライトのシャドウマップテクスチャの大きさを制御します。
高解像度では、よりシャープで詳細なシャドウが得られます。メモリまたはレンダリング時間が問題になる場合は、低い解像度を試してください。

◎ Additional Lights
ここでは、メインライトを補足する追加のライトを選択できます。頂点単位、ピクセル単位、またはDisabledから選択します。

◎ Per Object Limit
このスライダーは、各ゲームオブジェクトに影響を与えることができる追加のライトの数の制限を設定します。

◎ Cast Shadows
このボックスをオンにすると、追加のライトがシーンに影を落とします。

◎ Shadow Resolution
これは、追加のライトに指向性シャドウを投じるテクスチャのサイズを制御します。これは最大16個のシャドウマップをパックするスプライトアトラスです。高解像度では、よりシャープで詳細なシャドウが得られます。メモリまたはレンダリング時間が問題になる場合は、低い解像度を試してください。

7. Shadows

シャドウの外観と動作の設定項目です。これらはパフォーマンスにも影響を与えるため、ここで微調整を行って、視覚的な品質とシャドウレンダリングの速度のバランスを最適化できます。

画像5

◎ Distance
Unity単位で、カメラオブジェクトがどれだけ前方に影を落とすかを制御します。この距離の後、URPはシャドウをレンダリングしません。たとえば、値100は、カメラから100メートル以上離れたオブジェクトが影を落とさないことを意味します。シャドウを遠くにレンダリングすると大量のメモリを消費する可能性がある、大きく開かれた世界でこれを使用します。または、ビュー距離が制限されているトップダウンゲームで使用します。

◎ Cascades
シャドウのカスケード数を選択します。カスケードの数が多いほど、カメラの近くでより詳細なシャドウが得られます。オプションは、なし、2つのカスケード、4つのカスケードです。パフォーマンスの問題が発生している場合は、カスケード数を減らしてみてください。設定の下のセクションでシャドウの距離を設定することもできます。 カメラから遠ざかるほど、影は細かくなります。

◎ Soft Shadows
メインライトまたは追加ライトのいずれかでシャドウを有効にした場合、これを有効にして、シャドウマップにスムーズなフィルタリングを追加できます。これにより、シャドウのエッジが滑らかになります。有効にすると、レンダリングパイプラインはデスクトッププラットフォームでは5x5テントフィルターを実行し、モバイルデバイスでは4タップフィルタを実行します。
無効にすると、レンダリングパイプラインは、デフォルトのハードウェアフィルタリングでシャドウを1回サンプリングします。この機能を無効にすると、レンダリングは高速になりますが、シャープで、ピクセル化された可能性のあるシャドウエッジが得られます。

8. Post-processing

グローバル後処理設定の微調整の設定項目です。

画像6

◎ Grading Mode
プロジェクトで使用するカラーグレーディングモードを選択します。

・High Dynamic Range : このモードは、映画制作ワークフローに似た高精度のグレーディングに最適です。Unityは、トーンマッピングの前にカラーグレーディングを適用します。
・Low Dynamic Range : このモードは、より古典的なワークフローに従います。Unityは、トーンマッピング後に限られた範囲のカラーグレーディングを適用します。

◎ LUT Size
URPがカラーグレーディングに使用する内部および外部ルックアップテクスチャ(LUT)のサイズを設定します。サイズが大きいほど精度が高くなりますが、パフォーマンスとメモリの使用に潜在的なコストがかかります。LUTサイズを混合して一致させることはできないため、カラーグレーディングプロセスを開始する前にサイズを決定します。デフォルト値の32は、速度と品質のバランスが取れています。

9. Advanced

あまり変更されない設定を微調整して、より深いレンダリング機能とシェーダーの組み合わせに影響を与える設定項目です。

画像7

◎ SRP Batcher
このボックスをオンにして、SRPバッチャーを有効にします。これは、同じシェーダーを使用する多くの異なるマテリアルがある場合に便利です。RPバッチャーは、GPUパフォーマンスに影響を与えずにCPUレンダリングを高速化する内部ループです。SRP Batcherを使用すると、SRPレンダリングコードの内部ループが置き換えられます。

動的バッチ処理動的バッチ処理を有効にして、レンダリングパイプラインが同じマテリアルを共有する小さな動的オブジェクトを自動的にバッチ処理するようにします。これは、GPUインスタンス化をサポートしていないプラットフォームとグラフィックAPIに役立ちます。ターゲットハードウェアがGPUインスタンス化をサポートしている場合は、動的バッチ処理を無効にします。これは実行時に変更できます。

◎ Mixed Lighting
混合照明を有効にして、ビルドに混合照明シェーダーバリアントを含めるようパイプラインに指示します。

◎ Debug Level
レンダーパイプラインが生成するデバッグ情報のレベルを設定します。 値は次のとおりです。

・Disabled : デバッグは無効です。これがデフォルトです。
・Profiling : レンダーパイプラインが詳細情報タグを提供するようにします。これは、FrameDebuggerで確認できます。

◎ Shader Variant Log Level
Unityがビルドを完了したときに表示するシェーダーストリッピングとシェーダーバリアントに関する情報のレベルを設定します。値は次のとおりです。

・Disabled : Unityは何も記録しません。
・Only Universal : UnityはすべてのURPシェーダーの情報を記録します。
・All : Unityはビルド内のすべてのシェーダーの情報をログに記録します。ビルドが完了すると、コンソールパネルに情報が表示されます。


10. Adaptive Performance

「Adaptive Performance」パッケージがインストールされている場合に表示されます。「Adaptive Performance」とレンダリングパイプラインの相互作用の設定を変更できます。

◎ Use adaptive performance
「Adaptive Performance」で実行時にレンダリング品質を調整できます。


この記事が気に入ったらサポートをしてみませんか?