Version: 2017.3
ShaderLab: Blending
ShaderLab: ステンシル

ShaderLab: Pass 内のタグ

Pass はタグを使用して、いつどのようにしてレンダリングエンジンでレンダリングするか指定します。

構文

    Tags { "TagName1" = "Value1" "TagName2" = "Value2" }

TagName1 が値 Value1TagName2 が値 Value2 であることを指定します。タグの数に制限はありません。

詳細

タグは基本的に Key-Value ペアです。Pass の中でタグは、当該パスがライティングパイプライン(環境光、頂点ライティング、ピクセルライティング)の中でどの役割であるかを制御したり、他のパラメーターを判定するのに使用します。次のタグは Unity により認識され、SubShader の中でなく 必ず Pass セクションの中とする、ことに注意してください。

LightMode タグ

LightMode タグはライティングパイプラインでのパスの役割を定義します。詳細は Unity のレンダリングパイプライン を参照してください。これらのタグは手動で使用されることは稀で、ライティングと相互作用のあるほとんどのシェーダーは サーフェスシェーダー で記述され、すべてはその中で処理されます。

LightMode で利用可能なタグは以下の通りです。

  • Always: 常にレンダリングされ、ライティングは適用されません。
  • ForwardBase: フォワードレンダリング で使用され、環境光、メインのディレクショナルライト、頂点/SH ライト、ライトマップが適用されます。
  • ForwardAdd: フォワードレンダリング で使用され、付加的なピクセルごとのライトが、ライトごとに 1 パス適用されます。
  • Deferred : Deferred Shading で使用され、g-bufferを描画します。
  • ShadowCaster: オブジェクトの深度をシャドウマップや深度テクスチャに描画します。
  • MotionVectors: オブジェクトごとのモーションベクターを計算するのに使用されます。
  • PrepassBase: 古い非推奨のライティング で使用され、法線やスペキュラー指数をレンダリングします。
  • PrepassFinal : 旧 Deferred Lighting で使用され、最終的なカラーについて、テクスチャ、ライト、発光を合成することでレンダリングします。
  • Vertex: 古い Vertex Lit レンダリング でオブジェクトがライトマップされてない場合に使用され、すべての頂点ライトが適用されます。
  • VertexLMRGBM: 古い Vertex Lit レンダリング でオブジェクトがライトマッピングされてる場合、ライトマップが RGBM エンコードされるプラットフォームで使用されます。
  • VertexLM : Vertex Lit レンダリング でオブジェクトがライトマップされてる場合に、ライトマップが double-LDR エンコードされるプラットフォームにおいて(一般にモバイル向けに)使用されます。

PassFlags タグ

パスはフラグを使って、レンダリングパイプライン がどのようにデータをパスに渡すかを変更することができます。これには、スペースで区切られたフラグ名を値としてもつ PassFlags タグが使用されます。現在、以下のフラグがサポートされています。

  • OnlyDirectional ForwardBase パスで使用される場合、このフラグはメインのディレクショナルライトとアンビエント/ライトプローブのデータのみをシェーダーに渡します。つまり、あまり重要でないライトは頂点ライトや球面調和のシェーダー変数に 渡されません。詳細は Forward rendering を参照してください。

RequireOptions タグ

特定の外部条件が満たされた場合のみレンダリングされることを、パスで指定することができます。これは RequireOptions により実現され、値はスペースで区切られた文字列によるオプションです。現在、以下のオプションがUnityでサポートされています。

  • SoftVegetation : もし 画質設定 で Soft Vegetation が有効である場合のみ、このパスをレンダリングします。

関連項目

SubShader にもタグを指定することが可能です。詳細は ShaderLab: SubShader 内の Tags を参照してください。

ShaderLab: Blending
ShaderLab: ステンシル