Pass ブロックはオブジェクト形状を一回のみレンダリングするようにします。
Pass { [Name and Tags] [RenderSetup] }
基本的な Pass コマンドは、レンダリングステートのセットアップコマンドのリストを扱えます。
Pass は Name と任意の数の Tags、すなわち Pass の意図をレンダリングエンジンに伝達する Name/Value 文字列、を定義できます。
Pass はさまざまなグラフィックスハードウェアの State (状態)を設定します、例えばアルファブレンディングを有効化したり、フォグを使用しようしたり、というようにです。他にも以下のコマンドを使用できます。
Cull Back | Front | Off
ポリゴンのカリングモードを設定します。詳細は ShaderLab :カリングと深度テクスチャ ページを参照してください。
ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)
深度バッファーのテストモードを設定します。詳細は ShaderLab :カリングと深度テクスチャ ページを参照してください。
ZWrite On | Off
深度バッファーの書き込みモードを設定します。詳細は ShaderLab :カリングと深度テクスチャ ページを参照してください。
Blend sourceBlendMode destBlendMode
Blend sourceBlendMode destBlendMode, alphaSourceBlendMode alphaDestBlendMode
BlendOp colorOp
BlendOp colorOp, alphaOp
AlphaToMask On | Off
アルファブレンディングモードを設定します。詳細は Blendingのページを参照してください。
ColorMask RGB | A | 0 | any combination of R, G, B, A
マスクであるカラーチャネルの書き込みを設定します。_ColorMask 0_と記載することですべてのカラーチャネルのレンダリングを無効化します。 デフォルトモードは、チャンネル(RGBA)すべてに書き込みしますが、あなたが変更していない特定のチャンネルに残しておきたい特殊効果等がある場合または色 を無効にする場合は完全に記述します。
Offset OffsetFactor, OffsetUnits
Z バッファのデプスオフセットを設定します。詳細は ShaderLab :カリングと深度テクスチャ ページを参照してください。
コマンドは、旧「固定機能スタイル」シェーダー―の書き込み用に使用されます。 これは Surface Shader あるいは シェーダープログラミング がはるかに柔軟に書き込みできるとしてサポートが保障されない機能と考えられています。 しかし、かなりシンプルなシェーダー―に関して固定機能スタイルで書き込みすると、いくぶん簡単になりそうです。では、これがコマンドです。 固定機能シェーダー―を使用しないとき、それらすべてのシェーダー―は無視されます。
Lighting On | Off
Material { Material Block }
SeparateSpecular On | Off
Color Color-value
ColorMaterial AmbientAndDiffuse | Emission
固定機能の頂点単位ライティングの全制御機能を次に示します。ライティングを有効にする、マテリアルのカラーを設定、鏡面反射光ハイライトを有効にする、頂点ライティングを無効にした場合、 カラーにデフォルト値を与える、メッシュの頂点カラーがどうライティングに影響するか計算します。 詳細は、ShaderLab :旧ライティング を参照してください。
Fog { Fog Block }
フォグパラメータを設定します。詳細は ShaderLab: Fog(旧)のページを参照してください。
AlphaTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always) CutoffValue
アルファテストを有効にします。詳細は ShaderLab: 旧 Alpha Testingのページを参照してください。
レンダリングステートのセットアップの設定後に、SetTexture のコマンドを使用して 適用するテクスチャとそのコンバインモードの数を指定することができます。
SetTexture textureProperty { combine options }
シェーダー内パスは、Unityの各種レンダリングパイプラインと相互作用を行います。 例えば、パスは Tags のコマンドを使用してDeferred Shading でのみ使用するよう指示することができます。 一定のパスが同じオブジェクトに複数回実行すること可能です。例えば、Forward Rendering 内で、 オブジェクトに影響を及ぼすライトの数に基づき、“ForwardAdd” パスタイプが複数回実行されます。 詳細は、Unity のレンダリングパイプライン を参照してください。
いくつかの特別なパスで、共通的な機能の再利用やハイエンドのエフェクトの実装が利用可能です。