Version: Unity 6.0 (6000.0)
言語 : 日本語
ShaderLab の Name ディレクティブのリファレンス
ShaderLab のシェーダーコードブロックのリファレンス

ShaderLab のパスタグに関するリファレンス

このページでは、ShaderLab コードで Tags ブロックを使用してパスにタグを割り当てる方法について説明します。また、LightMode タグの使用に関する情報も含まれています。

シェーダーオブジェクトの仕組みや、シェーダーオブジェクト、サブシェーダー、パスの関係については、シェーダーの基礎概念 を参照してください。

レンダーパイプラインの互換性

機能名 ユニバーサルレンダーパイプライン (URP) HD レンダーパイプライン (HDRP) カスタム SRP ビルトインレンダーパイプライン
ShaderLab: Pass Tags ブロック はい はい はい はい
ShaderLab: LightMode Pass タグ はい はい はい はい

構文

シグネチャ 機能
Tags {"<name1>" = "<value1>" "<name2>" = "<value2>"} 指定したタグをパスに適用します。

タグの数に制限はありません。

LightMode タグ

シグネチャ 機能
“LightMode” = “[値]” このパスの 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 タグ

ビルトインレンダーパイプラインでは、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 タグ

ビルトインレンダーパイプラインでは、RequireOptions パスタグが、プロジェクトの設定に基づいてパスを有効にしたり無効にしたりします。

機能
SoftVegetation QualitySettings-softVegetation が有効な場合にのみ、このパスをレンダリングします。

追加リソース

ShaderLab の Name ディレクティブのリファレンス
ShaderLab のシェーダーコードブロックのリファレンス