Syntaxe des fonctions Effect (Direct3D 10)
Une fonction Effect est écrite en langage HLSL et est déclarée avec la syntaxe suivante.
Syntaxe
Nomdefonction nomfonction ( [ argumentlist ] )
{
- \[ *Instructions* \]
};
| Nom | Description |
|---|---|
| ReturnType | Tout 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 (consultez arguments de fonction (DirectX HLSL)). |
| Instructions | Une ou plusieurs instructions (consultez 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 l’utilisation. |
Une fonction Effect peut être un nuanceur ou il peut simplement s’agir d’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 respecter ce format ; pour obtenir une liste plus détaillée de la syntaxe des fonctions HLSL, consultez fonctions (DirectX HLSL).
Exemple
L' exemple BasicHLSL10 utilise à la fois un nuanceur de pixels et un nuanceur de sommets. La fonction de nuanceur de pixels est appelée RenderScenePS et est illustrée ci-dessous.
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;
}