Radeon serie X1000: le nuove GPU ATI

Dopo una lunga attesa, ATI presenta le prime soluzioni video basate su architetture R520, RV530 e RV515, destinate a rivoluzionare tutti e 3 i principali segmenti di mercato. Architettura Shadel Model 3.0 e processo produttivo a 90 nanometri caratterizzano queste tecnologie, qui analizzate nell'architettura
di Paolo Corsini , Raffaele Fanizzi pubblicato il 05 Ottobre 2005 nel canale Schede VideoATIRadeonAMD
Alla ricerca della massima qualità d'immagine
La disponibilità di architetture video sempre più complesse ed efficaci non ha quale unica finalità quella di far segnare prestazioni velocistiche elevatissime in assoluto; oltre um certo livello di frames al secondo, infatti, il boost prestazionale ottenibile con una nuova architettura resta fine a se stesso.
Tale potenza viene quindi più correttamente utilizzata migliorando la qualità d'immagine complessiva della scena 3D generata. Tra le innovazioni che più stanno influenzando il mercato delle schede video troviamo sicuramente il supporto all'HDR, High Dynamic Range. La prima volta che abbiamo parlato diffusamente di questa tecnica è stato in occasione della presentazione del chip NVIDIA GeForce 6800 Ultra; di seguito un estratto da quell'articolo, che meglio spiega di cosa si tratti:
Chiunque osservi una scena 3D resta colpito dalla complessità degli oggetti, dall'elevato numero di dettagli visualizzati e dal generale realismo ottenibile. Un elemento estremamente complesso da riprodurre in una scena 3D ma di elevatissima importanza nell'ottenimento di una visualizzazione realistica è sicuramente la corretta riproduzione dell'illuminazione.
Questo è tanto più difficile quanto si alternano parti della scena con forte illuminazione, con altre in ombra se non quasi completamente al buio.In passato è sempre stato molto difficile riuscire a riprodurre al meglio l'illuminazione di una scena che prevedesse un forte contrasto tra parti molto illuminate e parti molto scure. I per-pixel frame buffer standard a 32bit, infatti, permettono di utilizzare solo 255 valori per indicare i differenti livelli d'illuminazione di un oggetto, troppo pochi per poter rappresentare correttamente la dinamica di una scena con forti alternanze di luci e ombre.
L'occhio umano riesce a percepire un dynamic range, tra oggetti illuminati e non , pari a circa 14dB, con andamento logaritmico. Questo vuol dire che vengono meglio definiti i particolari scuri più che quelli illuminati, visti più indistintamente come luce e quindi tendenti al bianco.
Il dynamic range standard di un frame buffer a 32bit per pixel è pari a circa 2,4dB, quindi insufficiente per la percezione dell'occhio umano a distinguere i dettagli.La tecnologia NVIDIA High Precision Dynamic Lightning, implementata nel chip NV40, permette di renderizzare scene così complesse ottenendo una superiore dinamica. Questa tecnica utilizza 3 differenti fasi per ottenere il rendering della scena: light transport, tone mapping e color and gamma correction.
ATI non solo supporta HDR con le proprie architetture R520 e derivate, ma ha implementato il supporto all'anti aliasing congiuntamente con l'HDR; questo permette di ottenere una qualità d'immagine complessivamente ancor superiore a quanto fornibile con l'utilizzo del solo HDR, anche perché il superiore contrasto garantito dall'HDR rende ancor più evidenti i difetti propri dell'aliasing negli oggetti 3D generati nella scena.
ATI ha introdotto anche supporto all'Adaptive Anti Aliasing, già visto nell'implementazione NVIDIA con le schede GeForce 7800 GTX e GT. Questa tecnica permette di migliorare la qualità d'immagine con quelle scene nei quali alcuni oggetti, come i contorni delle piante o le inferriate, non sono composti da triangoli ma da semplici pixel su texture trasparenti. L'estratto seguente, preso dall'analisi tecnica delle architetture G70 di NVIDIA, spiega in dettaglio di cosa si tratti:
La tecnica di antialiasing più diffusa al momento attuale è basata sul multisampling. Questa ha il vantaggio di eseguire un antialiasing utilizzando un singolo pixel sample e si applica a tutte le primitive, cioè a tutti i triangoli. Il risultato è una riduzione dell’effetto di aliasing concentrato sui contorni poligonali. Esistono, tuttavia, delle situazioni in cui può essere utile applicare l’antialiasing non solo ai contorni poligonali, ma anche in altre porzioni dello schermo. Pensiamo ad esempio alla vegetazione presente in moltissimi videogames: poiché sarebbe troppo complessa da rappresentare utilizzando tanti piccoli triangoli, questa viene spesso resa attraverso texture sulle quali sono disegnate le foglie ed il cui sfondo è dotato di un canale alpha (trasparenza) impostato in maniera da rendere quella porzione della texture completamente trasparente. Con questa tecnica un albero, ad esempio, può essere reso con pochissimi poligoni (spesso rettangoli) incastrati tra di loro. Un altro esempio è rappresentato dalle inferriate: invece di rendere singolarmente ogni elemento di metallo con poligoni, questi vengono disegnati su una texture e, tra una sbarra e l’altra, il canale alpha è impostato in maniera da rendere trasparente quella zona.
In questi casi l’antialiasing di tipo multisampling non esegue alcuna riduzione dell’aliasing in quanto i contorni delle piante o delle inferriate non sono composti da triangoli, ma semplicemente da pixel su texture con elementi trasparenti. Per ovviare a questa situazione NVIDIA ha ideato il transparency adaptive antialiasing implementato in due modalità: supersampling e multisampling. L’idea di base è quella di riconoscere le texture dotate di texel con un canale alpha impostato in maniera da renderli trasparenti e di applicare un antialiasing di tipo supersampling o multisampling. Nel primo caso poiché vengono acquisiti quattro samples per pixel, la qualità della riduzione dell’aliasing sarà superiore, ma nelle applicazioni shader o texture bound (cioè particolarmente affamate di texture o pixel shaders complessi) potrebbe comportare un degrado delle prestazioni. Il multisampling, invece, pur non riuscendo ad ottenere la medesima qualità del supersampling, ha il vantaggio di richiedere un solo sample per pixel e, pertanto, soffre in misura minore del calo delle prestazioni. In ogni caso NVIDIA tiene a precisare che, trattandosi di una tecnica adattiva, applicata cioè solo nelle zone di schermo dove è necessaria, l’impatto sulle prestazioni di entrambe le modalità è molto contenuto.
Il filtraggio anisotropico è stato migliorato ai fini qualitativi, introducendo nella modalità 16x un nuovo algoritmo di filtraggio per area; analizzeremo in dettaglio questa nuova modalità all'interno della seconda parte di questa recensione, inserendo anche analisi prestazionali sugli impatti di questa nuova tecnologia. L'immagine qui sopra riportata mostra il risultato dell'AA tester utilizzando questa nuova modalità
ATI ha implementato una nuova versione della propria tecnica di compressione delle normal map, chiamata 3DC, all'interno delle architetture Radeon X1000. Nuovamente ricorriamo ad un precedente articolo, quello di analisi delle architetture ATI Radeon X800, per meglio spiegare cosa siano le normal map e come la tecnica 3DC operi:
Come operano le normal map? Ad un oggetto 3D costruito con pochi poligoni viene applicata una normal map, ottenuta come differenza tra la rappresentazione dell'oggetto con un elevato numero di poligoni (nell'esempio precedente, 15.000) e una con pochi poligoni (1.000). I differenti colori applicati alla normal map indicano le direzioni delle normali. Quando l'oggetto dev'essere generato a video sul modello con pochi poligoni, elaborato in real time, viene applicata la normal map in abbinamento alle informazioni sull'illuminazione della scena, utilizzando i pixel shader. Il risultato che si ottiene è un oggetto che per livello qualitativo si avvicina moltissimo a quello originario, con molti poligoni.
Perché le normal map vengono utilizzate in modo limitato all'interno dei giochi, pur essendo un valido strumento per bilanciare precisione negli oggetti e numero di poligoni? Per un semplice problema d'ingombri. Le normal map devono essere caricate all'interno della memoria della scheda video e questo implica l'utilizzo di un ampio quantitativo di memoria. Qualora la memoria disponibile venga tutta saturata si otterrebbe un impatto negativo sulle prestazioni tale da pregiudicare il risultato finale. Per risolvere questo problema si può ricorrere a tecniche di compressione delle normal map, al pari di quanto avviene per le textures.
Le tradizionali tecniche di compressione, come quella DXTC o S3TC, non permettono di ottenere un risultato qualitativamente valido. Nella compressione delle normal map, infatti, queste tecniche portano alla generazione di scalettature assolutamente poco gradevoli, che vanificano il beneficio qualitativo dato dall'utilizzo delle normal map. Per ovviare a questo problema ATI ha sviluppato un particolare algoritmo di compressione, chiamato 3Dc, specificamente pensato per comprimere le normal map senza ottenere penalizzazioni dal punto di vista qualitativo.
Utilizzando 3Dc ATI permette di ottenere un rapporto di compressione pari a 4:1 nell'utilizzo delle normal map. Questo ha due possibili riflessi:
- i games developer possono utilizzare un maggiore quantitativo di normal map rispetto ad una tecnica che non ne preveda la compressione, oppure
- i games developer possono utilizzare normal map a risoluzione superiore rispetto a quanto accessibile senza compressione, aumentando di conseguenza il dettaglio degli oggetti ai quali le normal map vengono applicate.
3DC+ migliora la precedente implementazione, supportando anche le texture a singolo canale permettendo di ottenere un rapporto di compressione 2:1. Questa caratteristica si rivela, stando a quanto dichiarato da ATI, particolarmente utile in presenza di luminance e shadow maps, oltre che con con textures HDR.