效果函数语法 (Direct3D 10)
效果函数以 HLSL 编写,并使用以下语法进行声明。
语法
ReturnTypeFunctionName ( [ ArgumentList ] )
{
- \[ *Statements* \]
};
名称 | 说明 |
---|---|
ReturnType | 任何 HLSL 类型 |
FunctionName | 唯一标识着色器函数名称的 ASCII 字符串。 |
ArgumentList | 一个或多个参数,用逗号分隔 (请参阅 函数参数 (DirectX HLSL) ) 。 |
语句 | 一个或多个语句 (请参阅构成函数主体 的语句 (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;
}
相关主题