このページでは、ShaderLab コードで Tags ブロックを使用してパスにタグを割り当てる方法について説明します。また、LightMode タグの使用に関する情報も含まれています。
シェーダーオブジェクトの仕組みや、シェーダーオブジェクト、サブシェーダー、パスの関係については、シェーダーの基礎概念 を参照してください。
| 機能名 | ユニバーサルレンダーパイプライン (URP) | HD レンダーパイプライン (HDRP) | カスタム SRP | ビルトインレンダーパイプライン |
|---|---|---|---|---|
| ShaderLab: Pass Tags ブロック | はい | はい | はい | はい |
| ShaderLab: LightMode Pass タグ | はい | はい | はい | はい |
| シグネチャ | 機能 |
|---|---|
Tags {"<name1>" = "<value1>" "<name2>" = "<value2>"} |
指定したタグをパスに適用します。 タグの数に制限はありません。 |
| シグネチャ | 機能 |
|---|---|
| “LightMode” = “[値]” | このパスの LightMode 値を設定します。 |
このタグの有効な値は、レンダーパイプラインによって異なります。
以下は、ビルトインレンダーパイプラインで有効な LightMode パスタグの値です。LightMode タグの詳細は、ShaderLab: パスタグの使用 を参照してください。
| 値 | 機能 |
|---|---|
Always |
常に描画され、ライティングには適用されません。これはデフォルトの設定です。 |
ForwardBase |
フォワードレンダリングで使用され、アンビエントライト、メインディレクショナルライト、頂点/SH ライト、ライトマップを適用します。 |
ForwardAdd |
フォワードレンダリングで使用され、付加的なピクセルごとのライトを、ライトごとに 1 つの Pass で適用します。 |
Deferred |
ディファードシェーディングで使用され、G バッファを描画します。 |
ShadowCaster |
オブジェクトの深度をシャドウマップや深度テクスチャに描画します。 |
MotionVectors |
オブジェクトごとのモーションベクトルを計算するのに使用されます。 |
Vertex |
古い Vertex Lit レンダリングでオブジェクトがライトマップされてない場合に使用され、すべての頂点ライトが適用されます。 |
VertexLMRGBM |
古い Vertex Lit レンダリングで、ライトマップが RGBM エンコードされるプラットフォームでオブジェクトがライトマッピングされている場合に使用されます。 |
VertexLM |
古い Vertex Lit レンダリングで、ライトマップが double-LDR エンコードされるプラットフォーム (モバイルプラットフォーム) でオブジェクトがライトマッピングされている場合に使用されます。 |
Meta |
このパスは、通常のレンダリングでは使用されず、ライトマップのベイクや Enlighten リアルタイムグローバルイルミネーションにのみ使用されます。詳細は、ライトマッピングとシェーダー を参照してください。 |
ビルトインレンダーパイプラインでは、PassFlags パスタグを使用してパスに提供するデータを指定します。
| 値 | 機能 |
|---|---|
| OnlyDirectional | ビルトインレンダーパイプラインでレンダリングパスがフォワードに設定されている場合に、LightMode タグの値が ForwardBase のパスでのみ有効。Unity はこのパスにメインのディレクショナルライトとアンビエント/ライトプローブのデータのみを提供します。つまり、重要でないライトのデータは頂点ライトや球面調和関数シェーダーの変数に渡されません。詳細は フォワードレンダリングパス を参照してください。 |
Shader "Examples/ExamplePassFlag"
{
SubShader
{
Pass
{
Tags { "LightMode" = "ForwardBase" "PassFlags" = "OnlyDirectional" }
// The rest of the code that defines the Pass goes here.
}
}
}
ビルトインレンダーパイプラインでは、RequireOptions パスタグが、プロジェクトの設定に基づいてパスを有効にしたり無効にしたりします。
| 値 | 機能 |
|---|---|
SoftVegetation |
QualitySettings-softVegetation が有効な場合にのみ、このパスをレンダリングします。 |