ShaderLab文法:サブシェーダ
ShaderLab syntax: Color, Material, Lighting

ShaderLab文法: Pass

Passブロックはオブジェクト形状を一回のみレンダリングするようにします。

文法

    Pass {[Name and Tags\] [RenderSetup\] [TextureSetup] }

基本的なpassコマンドは,レンダリング設定コマンドの任意オプションリストを持ち,続いて任意で使用するテクスチャを指定します。

名前とタグ

PassはName と任意の数のTags ,すなわちPassの意図をレンダリングエンジンに伝達するName/Value文字列,を定義出来ます。

レンダリング設定

Passは様々なグラフィックスハードウェアのState(状態)を設定します,例えばアルファブレンディングを有効化したり,フォグを使用するか,等々。次のコマンドを使用できます:

Material

    Material {Material Block}

頂点ライティングのパイプラインでしようするマテリアルを定義します。詳細についてはMaterial を参照下さい。

ライティング

    Lighting On | Off

頂点ライティングを有効,無効にします。詳細についてはMaterial を参照下さい。

Cull

    Cull Back | Front | Off

Set polygon culling mode. See Cull and Depth page for details.

ZTest

    ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)

Set depth testing mode. See Cull and Depth page for details.

ZWrite

    ZWrite On | Off

Set depth writing mode. See Cull and Depth page for details.

Fog {Fog Block}

Set fog parameters. See Fog page for details.

AlphaTest

    AlphaTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always) CutoffValue

Turns on alpha testing. See Alpha Testing page for details.

Blend

    Blend SourceBlendMode DestBlendMode

Sets alpha blending mode. See Blending page for details.

Color

    Color Color-value

Sets color to use if vertex lighting is turned off. See Material page for details.

ColorMask

    ColorMask RGB | A | 0 | any combination of R, G, B, A

_ColorMask 0_と記載することで全てのカラーチャネルのレンダリングを無効化します。詳細についてはMaterialを参照してください。

Offset

    Offset OffsetFactor, OffsetUnits

Set Z buffer depth offset. See Cull and Depth page for details.

SeparateSpecular

    SeparateSpecular On | Off

頂点ライティングの別の鏡面カラーを有効,無効にします。詳細についてはMaterial を参照下さい。

ColorMaterial

    ColorMaterial AmbientAndDiffuse | Emission

頂点ライティングのときに,各頂点ごとのカラーを使用します。詳細についてはMaterial を参照下さい。

テクスチャの設定

レンダリング状態の設定の後に,いくつかのテクスチャと,SetTexture コマンドを使用して,適用する合成モードを指定できます: SetTexture texture property { [Combine options] }

テクスチャ設定でははfixed function(固定関数)マルチテクスチャパイプラインの設定を行い,カスタムのfragment shaders が使用されている場合は無視されます。

詳細

ピクセルライティング

ピクセルライティングパイプラインはオブジェクトを複数のパスでオブジェクトをレンダリングすることで動作します。Unityは環境光と頂点ライトを取得するために1回オブジェクトをレンダリングします。次にオブジェクトに影響する各ピクセルライトを別の追加パスでレンダリングします。詳細はRender Pipeline を参照下さい。

頂点ライティング

頂点ライティングは各頂点ごとに計算を行う標準的なDirect3D/OpenGLライティングです。Lighting on により有効化されます。 Material ブロック,ColorMaterial ,SeparateSpecular コマンドによりライティングは影響を受けます。詳細についてはMaterial を参照下さい。

関連項目

いくつかの特別なパスで,共通的な機能の再利用やハイエンドのエフェクトの実装が利用可能です。

  • UsePass は名付けされたパスを別のシェーダでインクルードします。
  • GrabPass により,画面のコンテンツをテクスチャとして掴み,後続のパスで使用します。
ShaderLab文法:サブシェーダ
ShaderLab syntax: Color, Material, Lighting