Output real-time con posizionamento e modifica di oggetti 2D

Abbiamo creato un benchmark e confrontato 15 schede grafiche per analizzare i problemi.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Output real-time con posizionamento e modifica di oggetti 2D

Se volete usare il mouse per muovere una forma geometrica, come un poligono, dalla posizione A alla B di una superficie di disegno, non ha senso ridisegnare quell'oggetto per ogni punto lungo la traiettoria del cursore tra due punti, dove ciascuno di questi rendering richiede il riempimento del buffer, renderizzando poi i suoi contenuti. Con l'aiuto di un ROP (raster operator), è molto più semplice procedere usando tecniche di rendering XOR (exclusive OR).

png

Anzitutto dovete ridisegnare l'oggetto nella sua precedente posizione usando XOR direttamente sul dispositivo di visualizzazione. Ciò fa sì che l'oggetto originale scompaia dalla superficie dello schermo, come per magia. Poi dovete disegnare quell'oggetto in una nuova posizione senza XOR per farlo apparire nella nuova posizione. Ripetete questo processo per ognuno dei movimenti del mouse potrete renderizzare in qualsiasi luogo da 10-50 cambiamenti di posizioni al secondo. L'occhio umano vede questo tipo di movimento in modo fluido e senza fluttuazioni di luminosità. Solo quando viene raggiunta la posizione finale, il buffer sarà completamente riempito e poi ridisegnato a schermo.

Questo metodo è chiamato "floating drawing". Prendete nota di questo processo, dato ne parleremo in questo articolo quando dovremo spiegare il comportamento 2D delle schede video ATI Radeon HD 5000.

Un altro punto di discussione deriva dal rendering dei cosiddetti "floating objects". Questo termine include tutti i punti di contrassegno usati per guidare come vengono visualizzati i disegni e orientati quando sono renderizzati a schermo, insieme con le primitive grafiche coinvolte. All'aumentare progressivo di questi oggetti o valori, potrebbero manifestarsi problemi grafici. Non sono un elemento costante per il disegno su schermo e non sono messi in un buffer nella vasta maggioranza dei programmi.

Conclusioni

Osservando i vari diagrammi nella precedente sezione possiamo vedere che l'accelerazione hardware 2D è supportata su Windows XP e non coinvolge deviazioni per l'output diretto della grafica. In Vista non importa se usiamo un buffer o tentiamo di inviare ogni istruzione disegnata direttamente al dispositivo di visualizzazione. L'intera finestra viene, in ogni caso, immagazzinata lungo la traiettoria di output. Per Windows 7 con driver WDDM 1.1, abbiamo perso il secondo buffer affinché debbano essere aggiornati a schermo solo i cambiamenti.