Partager via


Syntaxe de la fonction d’effet (Direct3D 10)

Une fonction d’effet est écrite en HLSL et est déclarée avec la syntaxe suivante.

Syntaxe

ReturnTypeFunctionName ( [ ArgumentList ] )

{

\[ *Instructions* \]

};

Nom Description
ReturnType N’importe quel type HLSL
FunctionName Chaîne ASCII qui identifie de manière 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

L’exemple BasicHLSL10 utilise à la fois un nuanceur de pixels et un nuanceur de vertex. 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;
}

Format d’effet