Développement XNA pour la XBox et le PC
308
Les structures de contrôle
Les structures de contrôle vous permettont d’effectuer des traitements avancés pour
aboutir à des effets encore plus réussis. Vous retrouvez en HLSL une grande partie des
structures de contrôle que vous connaissiez déjà en C# et qui s’utilisent de la même manière,
à savoir :
• If (si condition vérifiée, alors) ;
• While (tant que condition vérifiée, faire) ;
• Do (faire tant que condition vérifiée) ;
• For (pour X de I a J, faire).
Les fonctions fournies pas le langage
Le langage HLSL fournit une très longue liste de fonctions faciles à utiliser dans les shaders.
Le tableau 13-1 en cite quelques-unes. La liste complète se trouve dans la documentation
de DirectX, à laquelle vous accéderez via la bibliothèque MSDN (voir annexe B).
Sémantiques et structures pour formats d’entrée et de sortie
Les sémantiques servent à lier les entrées et sorties d’une fonction. Par exemple, elles
servent à lier la sortie de l’application XNA à l’entrée du vertex shader. Dans le processus
de rastérisation, d’autres sémantiques lient la sortie du vertex shader avec l’entrée. Pour
finir cette courte présentation, signalons également que le pixel shader reçoit et renvoie
lui aussi des sémantiques.
Vous déclarez vos propres formats d’entrée et de sortie en utilisant les structures. L’exemple
ci-dessous définit le format d’entrée pour un vertex shader.
Attention à l’erreur !
L’exemple de code suivant est invalide : vous ne pouvez pas mélanger les noms des deux groupes de
noms de composantes.
float2 redGreen = color.xg;
Tableau 13-1 Exemples de fonctions fournies pas le langage
Fonction
Description
Cos(x)
Cosinus de x.
Sin(x)
Sinus de x.
Mul(a,b)
Multiplication de la matrice a avec la matrice b.
Pow(x,y)
Retourne x à la puissance y.
=Labat FM.book Page 308 Vendredi, 19. juin 2009 4:01 16
Précédent

- 329/366

Suivant