NVIDIA GeForce 7800 GTX: arrivano le 24 pipeline

NVIDIA GeForce 7800 GTX: arrivano le 24 pipeline

Alla presentazione di una nuova generazione di processori grafici il primo quesito che gli appassionati si pongono riguarda essenzialmente la portata delle innovazioni: “evoluzione o rivoluzione ?”. Quest'oggi NVIDIA presenta la scheda GeForce 7800 GTX: anche noi ci poniamo tale interrogativo al quale, nel corso di questa analisi, daremo una risposta.

di Paolo Corsini, Raffaele Fanizzi pubblicato il nel canale Schede Video
 

Analisi qualità: filtro anisotropico - parte 1

Il filtro anisotropico è una funzionalità presente nel bagaglio tecnologico dei processori grafici da diverse generazioni ormai. Evoluzione dello storico filtro trilineare, il suo obiettivo è quello migliorare la qualità delle texture eseguendo un filtraggio che sia in grado di visualizzare una texture nel pieno del suo dettaglio anche quando questa è posta su una superficie poligonale molto distante dal punto di vista: in tal caso la risoluzione della texture conta un numero di texel superiore al numero di pixel usati dallo schermo per visualizzarla ed è quindi necessario ricampionarla. Sia ATI che NVIDIA hanno lavorato alacremente per sviluppare di generazione in generazione questa funzionalità e per migliorarne la qualità e le prestazioni. Le prime implementazioni del filtro anisotropico, infatti, pur garantendo una qualità simile (se non superiore) a quella disponibile con tutti i più recenti processori grafici, abbattevano letteralmente le prestazioni. Oggi ci troviamo di fronte ad implementazioni che, pur non essendo più completamente fedeli a quella classica (il filtro anisotropico è matematicamente definito), riescono a raggiungere livelli velocistici eccellenti a fronte di una qualità estremamente appagante.

Per valutare l’implementazione del filtro anisotropico del processore grafico G70 oggetto di questa recensione abbiamo utilizzato il Texture Filter Analyzer sia in versione Direct3D che OpenGL. Questa piccola utility visualizza un cilindro cavo impostando il punto di vista al suo interno con la camera che punta in direzione parallela all’altezza del cilindro. Questo cilindro è tappezzato all’interno con una texture a scacchiera, bianca e nera. L’immagine risultante non è altro che l’interno del cilindro che, a causa della prospettiva, si restringe man mano che le pareti si allontanano dalla camera. Il Texture Filter Analyzer consente di visualizzare i livelli di mipmapping, cioè i livelli di dettaglio (LOD) con cui la scheda video disegna le texture, colorandoli. In particolare la banda più vicina (che per effetto della prospettiva è più esterna) è rossa e rappresenta il primo LOD, cioè la prima ricampionatura (di minor dettaglio) della texture rispetto all’originale. I restanti livelli di mipmap sono più interni e vengono evidenziati con altri colori. Nella valutazione della qualità del filtro anisotropico sono essenzialmente due gli aspetti che ci interessa osservare: la variazione tra un livello di dettaglio e l’altro ed il dettaglio stesso. Il primo lo estrapoliamo osservando come viene effettuato il passaggio da una fascia colorata ad una adiacente, mentre il dettaglio può essere valutato dalla vicinanza della banda rossa al bordo.

NVIDIA GeForce 7800 GTX

P1x_s.jpg (5037 bytes) HQ1x_s.jpg (4872 bytes) Q1x_s.jpg (4982 bytes) HQ1x_s.jpg (4872 bytes)
Performance 1x High Performance 1x Quality 1x High Quality 1x
P2x_s.jpg (5211 bytes) HP2x_s.jpg (5282 bytes) Q2x_s.jpg (5143 bytes) HQ2x_s.jpg (4977 bytes)
Performance 2x High Performance 2x Quality 2x High Quality 2x
P4x_s.jpg (5152 bytes) HP4x_s.jpg (5302 bytes) Q4x_s.jpg (5016 bytes) HQ4x_s.jpg (4917 bytes)
Performance 4x High Performance 4x Quality 4x High Quality 4x
P16x_s.jpg (5302 bytes) HP8x_s.jpg (5351 bytes) Q8x_s.jpg (5098 bytes) HQ8x_s.jpg (4965 bytes)
Performance 8x High Performance 8x Quality 8x High Quality 8x
P16x_s.jpg (5302 bytes) HP16x_s.jpg (5356 bytes) Q16x_s.jpg (5147 bytes) HQ16x_s.jpg (4981 bytes)
Performance 16x High Performance 16x Quality 16x High Quality 16x

NVIDIA GeForce 6800 Ultra

P1x_s.jpg (5037 bytes) HQ1x_s.jpg (4872 bytes) Q1x_s.jpg (4982 bytes) HQ1x_s.jpg (4872 bytes)
Performance 1x High Performance 1x Quality 1x High Quality 1x
P2x_s.jpg (5211 bytes) HP2x_s.jpg (5282 bytes) Q2x_s.jpg (5143 bytes) HQ2x_s.jpg (4977 bytes)
Performance 2x High Performance 2x Quality 2x High Quality 2x
P4x_s.jpg (5152 bytes) HP4x_s.jpg (5302 bytes) Q4x_s.jpg (5016 bytes) HQ4x_s.jpg (4917 bytes)
Performance 4x High Performance 4x Quality 4x High Quality 4x
P16x_s.jpg (5302 bytes) HP8x_s.jpg (5351 bytes) Q8x_s.jpg (5098 bytes) HQ8x_s.jpg (4965 bytes)
Performance 8x High Performance 8x Quality 8x High Quality 8x
P16x_s.jpg (5302 bytes) HP16x_s.jpg (5356 bytes) Q16x_s.jpg (5147 bytes) HQ16x_s.jpg (4981 bytes)
Performance 16x High Performance 16x Quality 16x High Quality 16x

ATI Radeon X850XT PE

Q1x_s.jpg (5597 bytes) Q2x_s.jpg (5582 bytes) Q4x_s.jpg (5617 bytes)
1x disabled 2x disabled 4x disabled
Q8x_s.jpg (5681 bytes) Q16x_s.jpg (5687 bytes)
8x disabled 16x disabled

 

Q1x_s.jpg (5597 bytes) Q2x_s.jpg (5582 bytes) Q4x_s.jpg (5617 bytes)
1x standard 2x standard 4x standard
Q8x_s.jpg (5681 bytes) Q16x_s.jpg (5687 bytes)
8x standard 16x standard
Q1x_s.jpg (5597 bytes) Q2x_s.jpg (5582 bytes) Q4x_s.jpg (5617 bytes)
1x advanced 2x advanced 4x advanced
Q8x_s.jpg (5681 bytes) Q16x_s.jpg (5687 bytes)
8x advanced 16x advanced

Le impostazioni legate al filtro anisotropico riguardanti la scheda GeForce 7800 GTX sono le medesime viste con tutte le schede NV4x. Gli screenshots sopraesposti visualizzano le immagini ottenute con il Texture Filter Analyzer in Direct3D in tutte le modalità qualitative disponibili sulle schede NVIDIA e ATI. In particolare per le GPU GeForce sono stati eseguiti i rilevamenti con il filtro trilineare ed il filtro anisotropico a 2, 4, 8 e 16 samples, il tutto per ogni modalità: High Quality, Quality, Performance e High Performance. Per R480 le modalità prese in considerazione, invece, sono quelle legate al Catalyst IA: Disabled, advanced e Advanced. Non considereremo in questo articolo le modalità disponibili con i driver Catalyst privi di Catalyst Control Center.

Come primo elemento valido per tutti i processori grafici segnaliamo che maggiore è il numero di samples del filtro anisotropico, maggiore sarà il dettaglio delle texture: il bordo rosso del primo livello di dettaglio si allontana all’aumentare del numero di samples. Inoltre tutte le GPU implementano un’ottimizzazione consistente nel variare il livello di dettaglio a seconda dell’angolazione della superficie poligonale considerata. Il filtro anisotropico completo è applicato solo ai triangoli posti a 0°, 45°, 90°, ecc…, cioè ai multipli di pi/4. L’assunzione alla base di questa ottimizzazione è la seguente: la maggioranza dei videogames propongono texture in alta definizione solo a quelle determinate angolazioni (pavimento e pareti per lo più).

Al di là del numero di samples, l’implementazione del filtro trilinare e anisotropico è pesantemente dipendente dalla modalità qualitativa presa in considerazione.

Per le schede NVIDIA il passaggio dalla modalità High Quality a Quality consiste, sia per il filtro trilineare che anisotropico, essenzialmente nell’abilitazione del campionamento tramite filtraggio brilineare, approssimazione del filtro trilineare, e, conseguentemente, in un passaggio meno morbido da un LOD all’altro. Inoltre rileviamo anche un maggior pixel popping, artefatto grafico che riduce il dettaglio delle texture, dovuto ad una maggiore approssimazione nell’eseguire il campionamento anisotropico. In modalità Performance e High Performance il fenomeno di pixel popping si accentua ulteriormente e le transizioni diventano sempre più nette. Ciò significa che queste modalità offrono la peggiore qualità delle texture sia in termini di dettaglio, che di passaggio da un livello di dettaglio all’altro.

Per la Radeon X850 XT PE il passaggio dal Catalyst IA Disabled (in cui tutte le ottimizzazioni sono disattivate, eccetto quella legata all’angolazione delle superfici poligonali) alle altre modalità è indolore sia per quanto riguarda il filtro trilineare che per il filtro anisotropico. La motivazione alla base di questo comportamento è da ricercare all’interno della tecnica adattiva sviluppata da ATI. La società canadese ha implementato una tecnologia in grado di rilevare se esiste una considerevole differenza tra una texture appartenente ad un LOD e quella appartenente ad un LOD adiacente. Se tale differenza non è marcata, applica un filtro anisotropico ottenuto mediante campioni elaborati con un filtro brilineare simile a quello visto in modalità Quality con le schede NVIDIA, mentre se la differenza è molto evidente, elabora i campioni con un filtro trilineare. Il Texture Filter Analyzer, visualizzando ogni LOD con un colore differente, ricade in quest’ultimo caso e, pertanto, il driver applica un filtro anisotropico di qualità elevata. Come vedremo successivamente, tale comportamento è esclusivo delle applicazioni Direct3D e non si ripete in OpenGL.

Effettuando un confronto tra NV40 e G70 ci sorprende vedere come quest’ultimo offra una qualità dell’immagine leggermente inferiore. Se in modalità High Quality il comportamento dei due processori grafici è il medesimo, in tutte le altre modalità la GeForce 7800 GTX tende a soffrire in maggior misura di problemi di pixel popping rispetto alla GeForce 6800 Ultra.