Effect 関数の構文 (Direct3D 10)
効果関数は HLSL で記述され、次の構文で宣言されます。
構文
ReturnTypeFunctionName ( [ ArgumentList ] )
{
- \[ *Statements* \]
};
Name | 説明 |
---|---|
ReturnType | 任意の HLSL 型 |
FunctionName | シェーダー関数の名前を一意に識別する ASCII 文字列。 |
ArgumentList | コンマで区切られた 1 つ以上の引数 ( 「関数引数 (DirectX HLSL)」を参照してください)。 |
ステートメント | 関数の本体を構成する 1 つ以上のステートメント (「ステートメント (DirectX HLSL)」を参照)。 関数が本体なしで定義されている場合は、プロトタイプと見なされます。と は、使用する前に本文で再定義する必要があります。 |
効果関数はシェーダーでも、単にシェーダーによって呼び出される関数でもかまいません。 関数は、その名前、パラメーターの型、およびターゲット プラットフォームによって一意に識別されます。そのため、関数をオーバーロードできます。 有効な HLSL 関数は、この形式に適合する必要があります。HLSL 関数の構文の詳細な一覧については、「 Functions (DirectX HLSL)」を参照してください。
例
BasicHLSL10 サンプルでは、ピクセル シェーダーと頂点シェーダーの両方を使用します。 ピクセル シェーダー関数は RenderScenePS と呼ばれ、次に示します。
PS_OUTPUT RenderScenePS( VS_OUTPUT In,
uniform bool bTexture )
{
PS_OUTPUT Output;
// Lookup mesh texture and modulate it with diffuse
if( bTexture )
Output.RGBColor = g_MeshTexture.Sample(MeshTextureSampler, In.TextureUV) *
In.Diffuse;
else
Output.RGBColor = In.Diffuse;
return Output;
}
関連トピック