Version: Unity 6.0 (6000.0)
言語 : 日本語
カスタム URP シェーダーでの影の使用
URP シェーダーを SRP バッチャーと互換性をもたせる

URP リファレンスの ShaderLab Pass タグ

このセクションでは、URP 固有の ShaderLab のパスタグについて説明します。

ノート: URP は、以下の LightMode タグ、AlwaysForwardAddPrepassBasePrepassFinalVertexVertexLMRGBMVertexLM をサポートしていません。

LightMode

このタグ値により、レンダーパイプラインのさまざまな部分を実行するときにパイプラインが使用するパスを決定します。

パスで LightMode タグを設定しなかった場合は、URP は SRPDefaultUnlit タグ値をそのパスで使用します。

LightMode タグには以下の値を含めることができます。

Property 説明
UniversalForward パスがオブジェクトのジオメトリをレンダリングして、すべての光の影響を評価します。URP はこのタグ値をフォワードレンダリングパスで使用します。
UniversalGBuffer パスが光の影響を評価することなくオブジェクトのジオメトリをレンダリングします。このタグ値は、ディファードレンダリングパスで実行する必要のあるパスで使用します。
UniversalForwardOnly LightModeUniversalForward の値が設定されている場合と同様に、パスがオブジェクトのジオメトリをレンダリングして、すべてのライトの影響を評価します。UniversalForward との違いは、URP がフォワードレンダリングパスとディファードレンダリングパスの両方に、パスを使用できることです。
この値は、URP がディファードレンダリングパスを使用しているときに、特定のパスがフォワードレンダリングパスでオブジェクトをレンダリングする必要がある場合に、使用します。例えば、URP がディファードレンダリングパスを使用してシーンをレンダリングし、そのシーンにクリアコート法線のような GBuffer に合わないシェーダーデータを持つオブジェクトが含まれている場合に、このタグを使用します。
シェーダーがフォワードレンダリングパスとディファードレンダリングパスの両方でレンダリングする必要がある場合は、UniversalForward タグと UniversalGBuffer タグの値で 2 つのパスを宣言します。
URP レンダラーが使用するレンダリングパスに関係なく、シェーダーがフォワードレンダリングパスを使用してレンダリングする必要がある場合は、LightMode タグを UniversalForwardOnly に設定したパスのみを宣言します。
SSAO レンダラー機能を使用する場合は、LightMode タグを DepthNormalsOnly に設定したパスを追加します。詳細については、DepthNormalsOnly 値を確認してください。
DepthNormalsOnly この値はディファードレンダリングパスの UniversalForwardOnly と組み合わせて使用します。この値を使用すると、深度および法線プレパスのシェーダーをレンダリングできます。ディファードレンダリングパスに、DepthNormalsOnly タグ値が含まれているパスがない場合、Unity はメッシュの周りにアンビエントオクルージョンを生成しません。
Universal2D パスがオブジェクトをレンダリングして、2D ライトの影響を評価します。URP はこのタグ値を 2D Renderer で使用します。
ShadowCaster パスがライトの視点からオブジェクト深度をシャドウマップまたは深度テクスチャにレンダリングします。
DepthOnly パスがカメラの視点からの深度情報のみを深度テクスチャにレンダリングします。
Meta このパスは Unity エディターでライトマップをベイクするときにのみ実行されます。プレイヤーをビルドするときにシェーダーから除去されます。
SRPDefaultUnlit この LightMode タグ値は、オブジェクトをレンダリングするときに余分なパスを描画するのに使用します。適用例: オブジェクトのアウトラインの描画。このタグ値は、フォワードレンダリングパスとディファードレンダリングパスの両方で有効です。
パスに LightMode タグがない場合、URP はこのタグ値をデフォルト値として使用します。
MotionVectors このタグを使用して、シェーダーにモーションベクトルサポートを追加します。詳細については、ShaderLab のモーションベクトルパス を参照してください。

UniversalMaterialType

Unity はこのタグをディファードレンダリングパスで使用します。

UniversalMaterialType タグには以下の値を含めることができます。

このタグがパスに設定されていない場合、Unity は Lit 値を使用します。

Property 説明
Lit この値は、シェーダータイプが Lit であることを示しています。G-buffer パスの間、Unity はステンシルを使用して Lit シェーダータイプを使用するピクセルをマークします (スペキュラーモデルは PBR)。
タグがパスに設定されていない場合、Unity はデフォルトでこの値を使用します。
SimpleLit この値は、シェーダータイプが Simple Lit であることを示しています。G-buffer パスの間、Unity はステンシルを使用して Simple Lit シェーダータイプを使用するピクセルをマークします (スペキュラーモデルは Blinn-Phong)。
カスタム URP シェーダーでの影の使用
URP シェーダーを SRP バッチャーと互換性をもたせる