ShaderLab文法:Passタグ
Passはタグを使用していつどのようにしてレンダリングエンジンによりレンダリングすべきかを指定します。
文法
Tags { "TagName1" = "Value1" "TagName2" = "Value2" }
タグの TagName1 が値として Value1 ,タグの TagName2 が値として Value2 であることを指定します。タグは好きなだけ指定できます。
詳細
タグは基本的にKey-Valueペアです。Pass の中でタグは,当該パスがライティング パイプライン(環境光,頂点ライティング,ピクセルライティング)のなかでどの役割であるかを制御したり,他のパラメータを判定するのに使用します。次のタグはUnityにより認識され,SubShaderの中でなく 必ず Passセクションの中とする,ことに留意下さい。
LightModeタグ
LightMode タグはライティング パイプラインでのパスの役割を定義します。詳細についてはrender pipeline を参照下さい。これらのタグは手動で使用されることは稀で,ライティングと相互作用のあるほとんどのシェーダはSurface Shaders で記述され,そういった詳細はその中で処理されます。
LightModeで利用可能なタグは:
-
Always: 常にレンダリングされ,ライティングは適用されません。
-
ForwardBase: Forward rendering で使用され,環境光,メイン指向性ライト,頂点/SHライトが適用されます。
-
ForwardAdd: Forward rendering で使用され,ライトごとに一つのパスで,Additive ピクセルライティングが適用されます。
-
PrepassBase: Deferred Lighting で使用され,法線や鏡面指数をレンダリングします。
-
PrepassFinal: Deferred Lighting で使用され,最終的なカラーについて,テクスチャ,ライト,および自己発光,を合成することでレンダリングします。
-
Vertex: Vertex Lit rendering でオブジェクトがライトマップされてない場合に使用され,全ての頂点ライトが適用されます。
-
VertexLMRGBM: Vertex Lit rendering でオブジェクトがライトマップされてる場合,ライトマップがRGBMエンコードされるプラットフォームにおいて使用されます。
-
VertexLM: Vertex Lit rendering でオブジェクトがライトマップされてる場合に,ライトマップがdoub-LDRエンコードされるプラットフォームにおいて(一般にモバイル向けプラットフォームや古いデスクトップ向けGPUにて)使用されます。
-
ShadowCaster: オブジェクトを,Shadow Casterとしてレンダリングします。
-
ShadowCollector: Forward Renderingのために,オブジェクトの影をScreen-Spaceバッファに集めます。
RequireOptionsタグ
特定の外部条件が満たされた場合のみレンダリングされることを,パスで指定することが出来ます。これは RequireOptions により実現され,値はスペースで区切られた文字列によるオプションです。現在,Unityでサポートされているオプションは:
関連項目
SubShadersにタグを割り当てることが可能であり,SubShader Tags を参照下さい。