Version: 2021.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 オブジェクトごとのモーションベクトルを計算するのに使用されます。
PrepassBase 古い非推奨のライティングで使用され、法線やスペキュラー指数を描画します。
PrepassFinal 古い非推奨のライティングで使用され、テクスチャ、ライト、発光を合成することで最終的な色を描画します。
ShadowCaster オブジェクトの深度をシャドウマップや深度テクスチャに描画します。
Vertex 古い Vertex Lit レンダリングでオブジェクトがライトマップされてない場合に使用され、すべての頂点ライトが適用されます。
VertexLMRGBM 古い Vertex Lit レンダリングで、ライトマップが RGBM エンコードされるプラットフォームでオブジェクトがライトマッピングされている場合に使用されます。
VertexLM 古い Vertex Lit レンダリングで、ライトマップが double-LDR エンコードされるプラットフォーム (モバイルプラットフォーム) でオブジェクトがライトマッピングされている場合に使用されます。
Meta この Pass は、通常のレンダリングでは使用されず、ライトマップのベイクやリアルタイムグローバルイルミネーションにのみ使用されます。詳細については、ライトマップと Meta Pass タグ を参照してください。

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 QualitySettings-softVegetation が有効な場合にのみ、この Pass をレンダリングします。

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