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;
}

Format de l’effet