Syntaxe de la fonction d’effet (Direct3D 11)
Une fonction d’effet est écrite en HLSL et est déclarée avec la syntaxe décrite dans cette section.
Syntaxe
ReturnTypeFunctionName ( [ ArgumentList ] )
{
- \[ *Instructions* \]
};
Nom | Description |
---|---|
ReturnType | N’importe quel type HLSL |
FunctionName | Chaîne ASCII qui identifie de façon unique le nom de la fonction de nuanceur. |
ArgumentList | Un ou plusieurs arguments, séparés par des virgules (voir Arguments de fonction (DirectX HLSL)). |
Instructions | Une ou plusieurs instructions (voir Instructions (DirectX HLSL)) qui composent le corps de la fonction. Si une fonction est définie sans corps, elle est considérée comme un prototype ; et doivent être redéfinis avec un corps avant utilisation. |
Une fonction d’effet peut être un nuanceur ou simplement une fonction appelée par un nuanceur. Une fonction est identifiée de manière unique par son nom, les types de ses paramètres et la plateforme cible ; Par conséquent, les fonctions peuvent être surchargées. Toute fonction HLSL valide doit correspondre à ce format ; Pour obtenir une liste plus détaillée de la syntaxe des fonctions HLSL, consultez Fonctions (DirectX HLSL).
Exemple
Voici un exemple de fonction de nuanceur de pixels.
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;
}
Rubriques connexes