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;
}
相關主題