Parhelia-512: la nuova GPU Matrox

Parhelia-512: la nuova GPU Matrox

Dopo aver fatto attendere gli appassionati di grafica 3D per più di 2 anni, Matrox introduce una GPU rivoluzionaria, Parhelia-512. Analizzate tutte le innovazioni tecnologiche introdotte, perno di un nuovo approccio alla grafica 3D che mette velocità è qualità d'immagine al primo posto

di pubblicato il nel canale Schede Video
 

16x Fragment Antialiasing (FAA-16x)

La ricerca della migliore qualità possibile con applicazioni 3D, in particolare con i videogiochi, è negli ultimi anni passata anche attraverso l'utilizzo di tecniche di Anti Aliasing, che hanno l'obiettivo di ridurre le scalettature delle linee diagonali che compongono gli oggetti 3D. Come operano, in estrema sintesi, le tecniche di AntiAliasing? La scena viene renderizzata ad una risoluzione superiore rispetto a quella visualizzata: i pixel ulteriori che si ottengono vengono utilizzati per ottenere una migliore rapprersentazione della scena finale. Per ogni pixel originale, a seconda della modalità di antialiasing utilizzata, si possono ottenere 2 oppure 4 sub-pixel associati; ogni sub-pixel viene associato al pixel originario attraverso varie tecniche di filtraggio così da ottenere un output che è una sorta di media tra il pixel originario e i vari sub-pixel. Se il pixel originario era responsabile di difetti di aliasing, con questa procedura se ne riduce la portata del difetto in misura maggiore al crescere del livello di antialiasing applicato.

I migliori risultati con Anti Aliasing, in termini di superiore qualità d'immagine, si ottengono generalmente abilitando la modalità 4x, cioè con precisione di 4 subpixel; tale precisione ha, però, un considerevole impatto negativo sui frames al secondo generati, soprattutto quando si utilizzano risoluzioni video elevate. Per ovviare a questi limiti Matrox ha sviluppato una nuova tecnica, nota con la sigla di FAA-16x (16x Fragment Antialiasing).

main_noaa.jpg (7890 byte) main_faa16x.jpg (7053 byte)
No Anti Aliasing 16x Fragment Antialiasing

Il punto di partenza è una considerazione molto semplice: quando si utilizzano tradizionali tecniche di anti aliasing tutti i pixel che compongono una scena vengono processati, con una notevole mole di operazioni svolte dalla GPU e la richiesta di una elevata bandwidth della memoria video. Non tutti i pixel devono però essere processati, in quanto solo una piccola parte di quelli che compongono una scena 3D (mediamente tra il 5 e il 10%) necessitano di un filtraggio correttivo. Matrox è partita da questo presupposto: il 16x Fragment Antialiasing, infatti, ricerca proprio i pixel frammentati, quelli cioè che devono essere processati con tecniche di antialiasing, e solo su questi effettua una tecnica di antialiasing, con precisione di 16 subpixel, quindi ad un livello ancor più dettagliato rispetto a quello disponibile con le attuali tecniche di antialiasing implementate nelle GPU in commercio.

figure_4_faa16x.jpg (38432 byte)

Come opera all'atto pratico la GPU Matrox? I pixel che compongono i triangoli di vertice degli oggetti rappresentati in una scena 3D vengono ispezionati dalla GPU determinando se questi vengano o meno visualizzati, oppure se siano parzialmente visualizzati e quindi richiedano tecniche di antialiasing. Tutti i pixel frammentati, che quindi devono essere processati, vengono inviati in un apposito buffer, il fragment buffer, e in quest'ultimo memorizzati; quelli non frammentati vengono immediatamente scritti nel frame buffer. Nel fragment buffer viene mantenuta una lista di pixel da frammentare, composta per ogni pixel dall'insieme dei suoi sub-pixel e dalle informazioni sul colore di ogni vertice che va ad intersecare quel particolare pixel. L'unità di elaborazione FAA-16x verifica in continuazione il contenuto del fragment buffer, così da determinare quali pixel frammentati siano richiesti per la corretta rappresentazione di ogni frame che compone la scena. Se un pixel viene richiesto, l'unità FAA-16x lo processa e lo invia al frame buffer, dove verrà associato agli altri pixel che non richiedono frammentazione così da comporre il frame finale.

Nella figura qui sopra raffigurata questi sono, in dettaglio, i passaggi:

4a) particolare del corno del drago, che dev'essere processato con tecniche di antialiasing;
4b) l'unità di calcolo FAA-16x identifica i pixel non frammentati da quelli frammentati. I pixel non frammentati vengono scritti direttamente nel frame buffer;
4c) i pixel frammentati vengono individuati e scritti nel fragment buffer;
4d) i frammenti sono individuati ispezionando, con precisione a 16 subpixel, i vertici dei triangoli;
4e) i dati sui frammenti, nonchè le corrispondenti informazioni sui colori, vengono memorizzate nel fragment buffer;
4f) i dati frammentati vengono scritti nel frame buffer, se necessari per generare quello specifico frame che dev'essere visualizzato.

 
^