Améliorer le rendu avec le High Level Shader Language
CHAPITRE 13
315
La texture en négatif
À présent, voyons comment modifier le pixel shader de manière à ce que le cube apparaisse en négatif (figure 13-6). Pour cela, vous devez effectuer une simple inversion des
couleurs : soustrayez chacune des composantes de la couleur du pixel à 1.
float4 pixelShader(PixelInput input) : COLOR
{
float4 color = 1 - tex2D(TextureSampler, input.TexCoord);
return( color );
}
Jouer avec la netteté d’une texture
Le pixel shader suivant fait varier la netteté de l’image (figure 13-7). Il suffit de modifier
la couleur du pixel courant en fonction des pixels voisins.
1. Commencez par déclarer une variable globale dans le fichier d’effets.
float SharpAmount;
2. Puis, utilisez le pixel shader suivant.
float4 pixelShader(PixelInput input) : COLOR
{
float4 color = tex2D( TextureSampler, input.TexCoord);
color += tex2D( TextureSampler, input.TexCoord - 0.0001) * SharpAmount;
color -= tex2D( TextureSampler, input.TexCoord + 0.0001) * SharpAmount;
return( color );
}
Figure 13-6
Le cube est maintenant affiché en négatif
=Labat FM.book Page 315 Vendredi, 19. juin 2009 4:01 16
CHAPITRE 13
315
La texture en négatif
À présent, voyons comment modifier le pixel shader de manière à ce que le cube apparaisse en négatif (figure 13-6). Pour cela, vous devez effectuer une simple inversion des
couleurs : soustrayez chacune des composantes de la couleur du pixel à 1.
float4 pixelShader(PixelInput input) : COLOR
{
float4 color = 1 - tex2D(TextureSampler, input.TexCoord);
return( color );
}
Jouer avec la netteté d’une texture
Le pixel shader suivant fait varier la netteté de l’image (figure 13-7). Il suffit de modifier
la couleur du pixel courant en fonction des pixels voisins.
1. Commencez par déclarer une variable globale dans le fichier d’effets.
float SharpAmount;
2. Puis, utilisez le pixel shader suivant.
float4 pixelShader(PixelInput input) : COLOR
{
float4 color = tex2D( TextureSampler, input.TexCoord);
color += tex2D( TextureSampler, input.TexCoord - 0.0001) * SharpAmount;
color -= tex2D( TextureSampler, input.TexCoord + 0.0001) * SharpAmount;
return( color );
}
Figure 13-6
Le cube est maintenant affiché en négatif
=Labat FM.book Page 315 Vendredi, 19. juin 2009 4:01 16
