效果函数语法 (Direct3D 11)
效果函数以 HLSL 编写,并使用本节中所述的语法进行声明。
语法
ReturnTypeFunctionName ( [ ArgumentList ] )
{
- \[ *Statements* \]
};
名称 | 说明 |
---|---|
ReturnType | 任何 HLSL 类型 |
FunctionName | 唯一标识着色器函数名称的 ASCII 字符串。 |
ArgumentList | 一个或多个参数,用逗号分隔, (请参阅 函数参数 (DirectX HLSL) ) 。 |
语句 | 一个或多个语句 (请参阅构成函数主体 的语句 (DirectX HLSL) ) 。 如果函数是在没有主体的情况下定义的,则它被视为原型;在使用之前,必须使用正文重新定义 和 。 |
效果函数可以是着色器,也可以只是着色器调用的函数。 函数由其名称、参数类型和目标平台唯一标识;因此,函数可以重载。 任何有效的 HLSL 函数都应符合此格式;有关 HLSL 函数语法的更详细列表,请参阅 Functions (DirectX HLSL) 。
示例
下面是像素着色器函数的示例。
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;
}
相关主题