次の方法で共有


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;
}

効果の形式