シェーダーオブジェクトには、1 つ以上の SubShader が含まれます。SubShader により、異なるハードウェア、レンダリングパイプライン、ランタイム設定に応じて、異なる GPU 設定とシェーダープログラムを定義することができます。一部のシェーダーオブジェクトには 1 つの SubShader のみが含まれており、その他のシェーダーオブジェクトには、さまざまな構成をサポートするために複数の SubShader が含まれています。
シェーダーオブジェクトの仕組みや、シェーダーオブジェクト、SubShader、Pass の関係については、シェーダーオブジェクトの基礎を参照してください。
ShaderLab では、SubShader ブロックを Shader ブロック内に配置して SubShader を定義します。
このサンプルコードは、1 つの SubShader を含むシェーダーオブジェクトを作成するための構文を示しています。SubShader には 1 つのパスが含まれます。
Shader "Examples/SinglePass"
{
SubShader
{
Tags { "ExampleSubShaderTagKey" = "ExampleSubShaderTagValue" }
LOD 100
// ShaderLab commands that apply to the whole SubShader go here.
Pass
{
Name "ExamplePassName"
Tags { "ExamplePassTagKey" = "ExamplePassTagValue" }
// ShaderLab commands that apply to this Pass go here.
// HLSL code goes here.
}
}
}