Développement XNA pour la XBox et le PC
310
Ce premier vertex shader multiplie les différentes matrices (World, View et Projection)
pour transformer la position du vertex, puis recopier les coordonnées de textures.
Écrire un pixel shader
Le pixel shader est une fonction qui retourne une couleur, c’est-à-dire un vecteur à
4 dimensions.
float4 pixelShader(PixelInput input) : COLOR
{
return tex2D(TextureSampler, input.TexCoord);
}
Le pixel shader ci-dessus retourne la couleur de la texture aux coordonnées de texture de
l’objet PixelInput.
Finaliser un effet : les techniques et les passes
Comme nous l’avons au chapitre précédent, un fichier d’effets peut contenir plusieurs
techniques. Une technique n’est rien de plus qu’un nom et un conteneur de passes. Une
passe définit quel vertex shader et quel pixel shader doivent être utilisés. C’est aussi ici
que vous choisissez la version des shaders (dans le cas présent, version 1 pour les deux).
technique Default
{
pass P0
{
VertexShader = compile vs_1_1 vertexShader();
PixelShader = compile ps_1_1 pixelShader();
}
}
Vous savez à présent ce qui se cache derrière les termes de vertex shader ou pixel shader.
Vous connaissez également la syntaxe du langage HLSL. Bref, vous avez toutes les clés
en main pour écrire vos premiers fichiers d’effet.
Créer le fichier d’effet
En reprenant les différents éléments de base d’un fichier d’effets que nous avons vus dans
la première partie de ce chapitre, vous reconstituez le fichier suivant. Ce premier fichier
d’effet affiche le modèle à l’écran, ni plus, ni moins.
Fichier d’effet basique
float4x4 World : WORLD;
float4x4 View;
float4x4 Projection;
float4x4 WorldViewProjection : WORLDVIEWPROJECTION;
texture Texture;
=Labat FM.book Page 310 Vendredi, 19. juin 2009 4:01 16
310
Ce premier vertex shader multiplie les différentes matrices (World, View et Projection)
pour transformer la position du vertex, puis recopier les coordonnées de textures.
Écrire un pixel shader
Le pixel shader est une fonction qui retourne une couleur, c’est-à-dire un vecteur à
4 dimensions.
float4 pixelShader(PixelInput input) : COLOR
{
return tex2D(TextureSampler, input.TexCoord);
}
Le pixel shader ci-dessus retourne la couleur de la texture aux coordonnées de texture de
l’objet PixelInput.
Finaliser un effet : les techniques et les passes
Comme nous l’avons au chapitre précédent, un fichier d’effets peut contenir plusieurs
techniques. Une technique n’est rien de plus qu’un nom et un conteneur de passes. Une
passe définit quel vertex shader et quel pixel shader doivent être utilisés. C’est aussi ici
que vous choisissez la version des shaders (dans le cas présent, version 1 pour les deux).
technique Default
{
pass P0
{
VertexShader = compile vs_1_1 vertexShader();
PixelShader = compile ps_1_1 pixelShader();
}
}
Vous savez à présent ce qui se cache derrière les termes de vertex shader ou pixel shader.
Vous connaissez également la syntaxe du langage HLSL. Bref, vous avez toutes les clés
en main pour écrire vos premiers fichiers d’effet.
Créer le fichier d’effet
En reprenant les différents éléments de base d’un fichier d’effets que nous avons vus dans
la première partie de ce chapitre, vous reconstituez le fichier suivant. Ce premier fichier
d’effet affiche le modèle à l’écran, ni plus, ni moins.
Fichier d’effet basique
float4x4 World : WORLD;
float4x4 View;
float4x4 Projection;
float4x4 WorldViewProjection : WORLDVIEWPROJECTION;
texture Texture;
=Labat FM.book Page 310 Vendredi, 19. juin 2009 4:01 16
