10.1. Dissolvenza verso un colore (fading)

0
Il tuo voto: Nessuno

L'effetto presentato qui esegue una transizione da un'immagine sorgente ad un colore omogeneo per tutta la superficie del viewport corrente; operazione conosciuta come fading. I colori destinazione più utilizzati sono ovviamente il bianco ed il nero o comunque uno dei colori principali dell'interfaccia utente.

  1 // Sampler dell'immagine sorgente
  2 sampler2D sourceSampler;
  3 
  4 // Colore di destinazione
  5 float4 destColor;
  6 
  7 // Posizione della transizione 0.0 ... 1.0
  8 uniform float transition;
  9 
 10 float4 ps_main(float2 TexCoords : TEXCOORD0) : COLOR0
 11 {
 12     // Recupero le informazioni dai render-targets per il pixel corrente
 13     float4 srcColor = tex2D(sourceSampler, TexCoords);
 14 
 15     // Interpolazione tra colore ed immagine
 16     return lerp(srcColor, destColor, transition);
 17 }

Come visibile tutto l'effetto è racchiuso nella funzione lerp(a, b, interval).

Visualizzazione dell'effetto:

Anche se di implementazione immediata e privo di caratteristiche che posso attirare l'attenzione, non deve essere sottovalutato soprattutto quando viene integrato in effetti più complessi che altrimenti risulterebbero meno fluidi ed efficaci.