Pass はタグを使用して、いつどのようにしてレンダリングエンジンでレンダリングするか指定します。
Tags { "TagName1" = "Value1" "TagName2" = "Value2" }
TagName1 が値 Value1、TagName2 が値 Value2 であることを指定します。タグの数に制限はありません。
タグは基本的に Key-Value ペアです。Pass の中でタグは、当該パスがライティングパイプライン(環境光、頂点ライティング、ピクセルライティング)の中でどの役割であるかを制御したり、他のパラメーターを判定するのに使用します。次のタグは Unity により認識され、SubShader の中でなく 必ず Pass セクションの中とする、ことに注意してください。
LightMode タグはライティングパイプラインでのパスの役割を定義します。詳細は Unity のレンダリングパイプライン を参照してください。これらのタグは手動で使用されることは稀で、ライティングと相互作用のあるほとんどのシェーダーは サーフェスシェーダー で記述され、すべてはその中で処理されます。
LightMode で利用可能なタグは以下の通りです。
パスはフラグを使って、レンダリングパイプライン がどのようにデータをパスに渡すかを変更することができます。これには、スペースで区切られたフラグ名を値としてもつ PassFlags タグが使用されます。現在、以下のフラグがサポートされています。
特定の外部条件が満たされた場合のみレンダリングされることを、パスで指定することができます。これは RequireOptions により実現され、値はスペースで区切られた文字列によるオプションです。現在、以下のオプションがUnityでサポートされています。
SubShader にもタグを指定することが可能です。詳細は ShaderLab: SubShader 内の Tags を参照してください。