Version: 2017.4
ShaderLab: Properties
ShaderLab: Pass

ShaderLab: SubShader

Unity の各シェーダーは、一群の SubShader (サブシェーダー) で構成されます。Unity がメッシュを表示する場合に、使用するシェーダーを見つけ、ユーザーのグラフィックスカードで実行する最初のサブシェーダーを選択します。

構文

Subshader { [Tags] [CommonState] Passdef [Passdef ...] }

サブシェーダーをオプションのタグ、通常の状態、パス定義として定義します。

詳細

サブシェーダーは レンダリングパス を定義し、オプションで、すべてのパスに共通の状態を設定します。さらに、サブシェーダーの特有の タグ を設定できます。

Unity がレンダリングに使うサブシェーダーを選択する場合、定義された各パスごとに 1 回 (可能な場合は、ライトの相互作用のためにさらに多く) オブジェクトをレンダリングします。オブジェクトの各レンダリングはコストのかかる操作であるため、可能な限り最小限のパスでシェーダーを定義する必要があります。もちろん、一部のグラフィックスハードウェアでは、必要な効果を 1 回のパスで実行できない場合があります。その場合、複数のパスを使用する以外に選択肢はありません。

各パスの定義は 通常パスUsePassGrabPass のいずれかです。

パス定義で許可されるステートメントは、サブシェーダーの記述ブロックでも表示されます。これにより、すべてのパスでこの “共有の” 状態を使用することができます。

// ...
SubShader {
    Pass {
        Lighting Off
        SetTexture [_MainTex] {}
    }
}
// ...

このサブシェーダーではひとつのパスを定義し、すべてのライティングをオフにして、単に _MainTex という名前のテクスチャをもつメッシュを表示します。

ShaderLab: Properties
ShaderLab: Pass
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961