Share via


Effect 函式語法 (Direct3D 10)

效果函式是以 HLSL 撰寫,並以下列語法宣告。

Syntax

ReturnTypeFunctionName ( [ ArgumentList ] )

{

\[ *語句* \]

};

名稱 描述
ReturnType 任何 HLSL 類型
FunctionName 可唯一識別著色器函式名稱的 ASCII 字串。
ArgumentList 一或多個以逗號分隔的引數, (請參閱 DirectX HLSL (函 式引數) ) 。
陳述式 一或多個語句 (請參閱組成函式主體的 語句 (DirectX HLSL) ) 。 如果函式未定義主體,則會將其視為原型;和 必須先以本文重新定義,才能使用。

 

效果函式可能是著色器,也可能只是著色器所呼叫的函式。 函式會以其名稱、其參數的類型和目標平臺唯一識別;因此,函式可以多載。 任何有效的 HLSL 函式都應該符合此格式;如需 HLSL 函式語法的詳細清單,請參閱 (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;
}

效果格式