Dissolve, fades e scorrimenti a scorrimento rapido (Direct3D 9)

Sempre più spesso, le applicazioni usano effetti speciali che vengono comunemente usati nei film e nei video, ad esempio dissolvenze, scorrimenti e sbiadi.

In una dissolvenza, un'immagine viene gradualmente sostituita da un'altra in una sequenza uniforme di fotogrammi. Sebbene Direct3D fornisca metodi di uso di più blend di trame per ottenere lo stesso effetto, le applicazioni che usano il buffer stencil per le dissolvenze possono usare funzionalità di fusione di trame per altri effetti mentre fanno una dissolvenza.

Quando l'applicazione esegue una dissolvenza, deve eseguire il rendering di due immagini diverse. Usa il buffer stencil per controllare quali pixel da ogni immagine vengono disegnati nella superficie di destinazione del rendering. È possibile definire una serie di maschere stencil e copiarle nel buffer stencil in fotogrammi successivi. In alternativa, è possibile definire una maschera stencil di base per il primo frame e modificarla in modo incrementale.

All'inizio della dissolvenza, l'applicazione imposta la funzione stencil e la maschera stencil in modo che la maggior parte dei pixel dell'immagine iniziale superi il test stencil. La maggior parte dei pixel dell'immagine finale deve non riuscire il test stencil. Nei fotogrammi successivi, la maschera stencil viene aggiornata in modo che meno e meno pixel nell'immagine iniziale superino il test. Man mano che i fotogrammi sono in corso, meno e meno pixel nell'immagine finale hanno esito negativo. In questo modo, l'applicazione può eseguire una dissolvenza usando qualsiasi modello di dissolvenza arbitraria.

Sbiadimento o scolorimento è un caso speciale di dissolvenza. Quando si fading in, il buffer stencil viene usato per dissolversi da un'immagine nera o bianca a un rendering di una scena 3D. La fading out è l'opposta, l'applicazione inizia con un rendering di una scena 3D e si dissolve in bianco o nero. La fade può essere eseguita usando qualsiasi modello arbitrario che si vuole usare.

Le applicazioni Direct3D usano una tecnica simile per lo scorrimento rapido. Ad esempio, quando un'applicazione esegue uno scorrimento rapido a sinistra a destra, l'immagine finale viene visualizzata gradualmente sopra l'immagine iniziale da sinistra a destra. Come in una dissolvenza, è necessario definire una serie di maschere stencil caricate nel buffer stencil in fotogrammi successivi o modificare successivamente la maschera stencil iniziale. Le maschere stencil vengono usate per disabilitare la scrittura di pixel dall'immagine iniziale e per abilitare la scrittura di pixel dall'immagine finale.

Uno scorrimento rapido è leggermente più complesso di un dissolversi in cui l'applicazione deve leggere pixel dall'immagine finale nell'ordine inverso dello scorrimento rapido. Ovvero, se lo scorrimento rapido passa da sinistra a destra, l'applicazione deve leggere i pixel dall'immagine finale da destra a sinistra.

Tecniche del buffer Stencil