Синтаксис функции Effect (Direct3D 11)
Функция эффекта написана на языке HLSL и объявляется с помощью синтаксиса, описанного в этом разделе.
Синтаксис
ReturnTypeFunctionName ( [ ArgumentList ] )
{
- \[ *Statements* \]
};
Имя | Описание |
---|---|
ReturnType | Любой тип HLSL |
FunctionName | Строка ASCII, однозначно идентифицирующая имя функции шейдера. |
ArgumentList | Один или несколько аргументов, разделенных запятыми (см. раздел Аргументы функций (DirectX HLSL)). |
Операторы | Один или несколько операторов (см. Инструкции (DirectX HLSL)), которые составляют тело функции. Если функция определена без текста, она считается прототипом; и должны быть переопределены с текстом перед использованием. |
Функция эффекта может быть шейдером или просто функцией, вызываемой шейдером. Функция уникально идентифицируется по имени, типам ее параметров и целевой платформе; поэтому функции могут быть перегружены. Любая допустимая функция HLSL должна соответствовать этому формату; Более подробный список синтаксиса функций HLSL см. в разделе Функции (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;
}
Связанные темы