Version: 2022.1
言語: 日本語
ShaderLab: タグをパスに割り当てる
ShaderLab: シェーダープログラムの追加

ShaderLab: ビルトインレンダーパイプラインの定義済みパスタグ

このページでは、ビルトインレンダーパイプラインで使用できる定義済みの Pass タグに関する情報を記載します。

LightMode タグを含む Pass タグの一般的な情報については、ShaderLab: パスの定義 を参照してください。ユニバーサルレンダーパイプライン (URP) で定義済みの Pass タグの値については、URP Pass tags: LightMode を参照してください。

LightMode タグの有効な値

これらは、ビルトインレンダーパイプラインの LightMode Pass タグの有効な値です。LightMode タグの詳細については、ShaderLab: Pass タグの使用 を参照してください。

Value 機能
Always 常に描画され、ライティングには適用されません。これがデフォルト値です。
ForwardBase フォワードレンダリングで使用され、アンビエントライト、メインディレクショナルライト、頂点/SH ライト、ライトマップを適用します。
ForwardAdd フォワードレンダリングで使用され、付加的なピクセルごとのライトを、ライトごとに 1 つの Pass で適用します。
Deferred ディファードシェーディングで使用され、G バッファを描画します。
ShadowCaster オブジェクトの深度をシャドウマップや深度テクスチャに描画します。
MotionVectors オブジェクトごとのモーションベクトルを計算するのに使用されます。
Vertex 古い Vertex Lit レンダリングでオブジェクトがライトマップされてない場合に使用され、すべての頂点ライトが適用されます。
VertexLMRGBM 古い Vertex Lit レンダリングで、ライトマップが RGBM エンコードされるプラットフォームでオブジェクトがライトマッピングされている場合に使用されます。
VertexLM 古い Vertex Lit レンダリングで、ライトマップが double-LDR エンコードされるプラットフォーム (モバイルプラットフォーム) でオブジェクトがライトマッピングされている場合に使用されます。
Meta This Pass is not used during regular rendering, only for lightmap baking or Enlighten Realtime Global Illumination. For more information, see Lightmapping and shaders.

PassFlags タグ

ビルトインレンダーパイプラインでは、PassFlags Pass タグを使用して Unity が Pass に提供するデータを指定します。

有効な値

Value 機能
OnlyDirectional ビルトインレンダーパイプラインで、レンダリングパスが Forward に設定されている場合に、LightMode タグの値が ForwardBase の Pass でのみ有効です。

Unity は、メインのディレクショナルライトとアンビエント/ライトプローブのデータのみをこのパスに提供します。つまり、重要ではないライトのデータは、頂点ライトや球面調和関数シェーダーの変数には渡されません。詳細は、フォワードレンダリングパス を参照してください。

PassFlag タグのコード例

Shader "Examples/ExamplePassFlag"
{
    SubShader
    {
        Pass
        {    
              Tags { "LightMode" = "ForwardBase" "PassFlags" = "OnlyDirectional" }
            
              // Pass を定義するコードの残りをここに記述。
        }
    }
}

RequireOptions タグ

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

有効な値

Value 機能
SoftVegetation Render this Pass only if QualitySettings-softVegetation is enabled.

Shader "Examples/ExampleRequireOptions"
{
    SubShader
    {
        Pass
        {    
              Tags { "RequireOptions" = "SoftVegetation" }
            
              //Pass を定義するコードの残りをここに記述。
        }
    }
}
ShaderLab: タグをパスに割り当てる
ShaderLab: シェーダープログラムの追加