URP ShaderLab のパスタグ
このセクションでは、URP 固有の ShaderLab のパスタグについて説明します。
ノート: URP は、
Always、ForwardAdd、PrepassBase、PrepassFinal、Vertex、VertexLMRGBM、VertexLMの LightMode タグには対応していません。
LightMode
このタグ値により、レンダーパイプラインのさまざまな部分を実行するときにパイプラインが使用するパスを決定します。
パスで LightMode タグを設定しなかった場合は、URP は SRPDefaultUnlit タグ値をそのパスで使用します。
LightMode タグには以下の値を含めることができます。
| プロパティ | 説明 |
|---|---|
| UniversalForward | パスがオブジェクトのジオメトリをレンダリングして、すべての光の影響を評価します。URP はこのタグ値をフォワードレンダリングパスで使用します。 |
| UniversalGBuffer | パスが光の影響を評価することなくオブジェクトのジオメトリをレンダリングします。このタグ値は、ディファードレンダリングパスで実行する必要のあるパスで使用します。 |
| UniversalForwardOnly | LightMode に UniversalForward の値が設定されている場合と同様に、パスがオブジェクトのジオメトリをレンダリングして、すべての光の影響を評価します。UniversalForward との違いは、URP がこのパスをフォワードレンダリングパスでもディファードレンダリングパスでも使用できることです。 この値は、URP がディファードレンダリングパスを使用しているときに、特定のパスでフォワードレンダリングパスを使用してオブジェクトをレンダリングする必要がある場合に使用します。例えば、URP がディファードレンダリングパスを使用してシーンをレンダリングして、そのシーンに G-buffer に適合しないシェーダーデータ (クリアコート法線など) を使用するオブジェクトが含まれている場合にこのタグを使用します。 シェーダーがフォワードレンダリングパスとディファードレンダリングパスの両方でレンダリングする必要がある場合は、 UniversalForward タグ値と UniversalGBuffer タグ値を使用して 2 つのパスを宣言します。URP レンダラーが使用するパスに関係なくシェーダーがフォワードレンダリングパスを使用してレンダリングする必要がある場合は、 LightMode タグを UniversalForwardOnly に設定したパスのみを宣言します。SSAO Renderer Feature を使用する場合は、 LightMode タグを DepthNormalsOnly に設定したパスを追加します。詳しくは、DepthNormalsOnly 値を参照してください。 |
| DepthNormalsOnly | この値はディファードレンダリングパスの UniversalForwardOnly と組み合わせて使用します。この値を使用すると、深度および法線プレパスのシェーダーをレンダリングできます。ディファードレンダリングパスに、DepthNormalsOnly タグ値が含まれているパスがない場合は、メッシュの周りにアンビエントオクルージョンが生成されません。 |
| Universal2D | パスがオブジェクトをレンダリングして、2D ライトの影響を評価します。URP はこのタグ値を 2D Renderer で使用します。 |
| ShadowCaster | パスがライトの視点からオブジェクト深度をシャドウマップまたは深度テクスチャにレンダリングします。 |
| DepthOnly | パスがカメラの視点からの深度情報のみを深度テクスチャにレンダリングします。 |
| Meta | このパスは Unity エディターでライトマップをベイクするときにのみ実行されます。プレイヤーをビルドするときにシェーダーから除去されます。 |
| SRPDefaultUnlit | この LightMode タグ値は、オブジェクトをレンダリングするときに追加のパスを描画するのに使用します。適用例: オブジェクトのアウトラインの描画。このタグ値は、フォワードレンダリングパスおよびディファードレンダリングパスの両方で有効です。パスに LightMode タグが含まれていない場合、URP はこのタグ値を初期値として使用します。 |
UniversalMaterialType
Unity はこのタグをディファードレンダリングパスで使用します。
UniversalMaterialType タグには以下の値を含めることができます。
このタグがパスに設定されていない場合、Lit 値が使用されます。
| プロパティ | 説明 |
|---|---|
| Lit | この値は、シェーダータイプが Lit であることを示しています。G-buffer パスの間、Unity はステンシルを使用して Lit シェーダータイプを使用するピクセルをマークします (スペキュラーモデルは PBR)。 タグがパスに設定されていない場合、デフォルトでこの値が使用されます。 |
| SimpleLit | この値は、シェーダータイプが Simple Lit であることを示しています。G-buffer パスの間、Unity はステンシルを使用して Simple Lit シェーダータイプを使用するピクセルをマークします (スペキュラーモデルは Blinn-Phong)。 |