Asus Extreme N6800GT
Pag. 5 - Intellisample3.0
Direttamente connessa con la qualità d’immagine, è la capacità elaborativa della GPU in quanto tanto migliori sono gli effetti realizzabili quanto maggiore è la potenza a disposizione. Tutte le GPU della serie GeForce6xxx possiedono una architettura dal miglior impatto scalare in quanto l’unità di shader giova di un raddoppio delle prestazioni. La seconda unità di shader permette il raggiungimento di ben 8 operazioni per ciclo su ciscun pixel che, calcolate su tutte e 16 le pipeline a disposizione, sono 128 operazioni per ciclo di clock.
Come nella passata generazione della GPU,nVidia conferma il doppio supporto alle modalità di calcolo del colore a 16 e 32bit: la seconda per la massima qualità a video e la prima in caso il programmatore voglia rinunciare alla qualità al fine di rendere migliore la gestione della memoria. Tale precisione è naturalmente conservata per l’intera pipeline di calcolo.
Importante è il passo in avanti fatto dalla casa canadese per quanto concerne la precisione di filtraggio e fuzione delle texture, ora arricchite dal supporto all’High Dynamic Range, per i relativi dettagli vi rimandiamo al seguente articolo.
In NV40, nVidia introduce l’High Precision Dynamic Lightning per permettere la giusta resa a scene che richiedono maggiore dinamica luminosa al fine di una corretta visualizzazione. Partiamo dall’immagine di cui sopra, scena molto ricca di particolari luminosi in quanto si alternano dettagli molto ricchi di luce e altri molto bui. La GPU è costretta a diverse elaborazioni di peso notevole pur di assicurare una buona resa e presenta delle limitazioni nelle capacità dei frame buffer con i loro 255 valori di colore per via della precisione a 32bit. Come sempre in questi casi, si cerca di portare il sistema al limite percepibile dall’uomo, cioè al limite dell’occhio umano che percepisce sfumature di luce pari a 14dB. Tale ampiezza di dynamic range ha andamento logaritmico, per cui l’occhio umano percepisce meglio le zone di buio e tende a confondere la luce come bianco. Pur con questo limite, l’occhio umano risulta di gran lunga superiore ad un frame buffer a 32bit, il cui dymanic range è pari a 2,4dB.
Da qui la risposta di nVidia per estendere tale valore con la tecnica hardware di cui prima e che consta di 3 step intermedi: light transport, tone mapping e color and gamma correction. Nel primo passo si vanno a considerare tutti i contributi di luce su un pixel che, oltrea ad avere propria luminosità, è investito da riflessione e rifrazione di luci che interagiscono nella scena. La fase di “trasporto di luce” è poi conclusa con la generazione di un valore HDR che viene salvato in un buffer specifico. A questo punto la GPU esegue una sorta di controllo dell’esposizione al fine di ottimizzare il range di colori da visualizzare nella scena. Infine la correzione dei colori e del gamma meglio consente la rappresentazione della scena sul proprio video. Naturalmente la tecnica, tenendo conto del comportamento dell’occhio umano, favorisce le zone scure e meno quelle luminose, dove minore ampiezza di distinzione è richiesta. nVidia afferma di poter supportare il formato dati in virgola mobile sull’intero iter di formazione del colore, così come durante gli shader e l’applicazione delle texture.
Una tecnica spesso utilizzata per rendere la dinamica di luce è l’sRGB, uno standard avanzato rispetto al classico RGB che consente calcoli semplici ed una buona resa. Il problema sta nella somma delle componenti di luce che, non essendo consentita, va ad essere sostituita da una semplice e spesso inadeguata conversione dei colori. Anche se questo è lo standard usato da Microsoft in Windows, nVidia ha deciso di dare alla sua nuova linea di chip video il supporto ad uno standard commerciale di notevole impatto visivo: l’OpenEXR, sviluppato da Industrial Light and Magic. In questo caso 1 bit è utilizzato per il segno, 10 bit per la mantissa e 5 bit per l’esponente, per una precisione finale a 16 bit. Durante la fase di trasformazione della luce, si adopera un frame buffer che possa anche accettare e “ospitare” questo nuovo formato di dati, da conservare anche in fase di tone mapping (generazione dell’immagine 2D); infine la correzione gamma e del colore vengono applicate per la migliore resa visiva a video. Per la memorizzazione dei dati di colore, Microsoft ha da sempre adottato lo standard ad 8bit denominato sRGB che sposa bene la caratteristiche di un monitor CRT e adottato anche dal GeForce 6xxx. In realtà tale formato non è sufficiente nel momento in cui si va a descrivere traformazioni di luce in quanto a precisione, migliore è il risultato per OpenEXR, mentre risulta buono il risultato per correzioni di colore o rendering in HDR. nVidia ha aggiunto il supporto ai 64bit di calcolo al fine di rendere la proprie immagini più ricche e dettagliate. In questo modo i programmatori potranno trattare queste texture come tutte le altre (in quanto a formato) e risparmiare passi di rendering in alcuni casi. Il formato adoperato è basato sulle specifiche OpenEXR
Per quanto concerne l’applicazione del FSAA, importanti sono i passi in avanti fatti dall’azienda californiana nella nuova GPU. Finalmente viene supportato il Rotated Grid Anti-Aliasing, un pattern di campionamento a griglia rotata che, come noto dall’esperienza Ati, permette una migliore distribuzione del colore, cioè i subpixel riescono a “riempire” meglio l’area di visualizzazione tanto in orizzontale che in verticale, consentendo di rendere un colore al meglio e, quindi, di meglio sfumare le zone di seghettatura dei pixel che si vengono a creare sul video.
Detto in altre parole, è come se la GPU ha a disposizione ben 4 subpixel (in caso di FSAA 4X) tanto in orizzontale che in verticale, a differenza della griglia classica in cui si hanno solo 2 subpixel nelle 2 direzioni.
Infine vogliamo scendere in un dettaglio dell'architettura con il Render output, responsabile di operazioni base come il controllo degli z-value (se un pixel è nascosto e quindi non è necessaria la sua elaborazione), come scrivere o fondere pixel all'interno del frame buffer, operazioni necessarie alla generazione del Full Scene Anti-Aliasing. Le Z-Rop si occupano esclusivamente dei valori z, mentre le C-Rop anche del colore. In questo modo quando non vi sono informazioni sul colore, questa può essere impiegata a scrivere valori z, raddoppiando il relativo output. Questo significa che anche NV40 può generare in maniera nativa il FSAA 2X in un unico ciclo di clock, mentre sono necessarie 2 passate per il 4X. Visti anche i limiti della banda di memoria, è questo il motivo per cui modalità di maggiore impatto non sono supportate in modalità MS; infatti la modalità 8XS è di tipo ibrido: multi-sample e super-sample.