Genere
ND
Lingua
ND
PEGI
ND
Prezzo
ND
Data di uscita
ND

Radeon X800

Anteprima

Radeon X800: la risposta di ATI

nVidia ha fatto la prima mossa, ma ATI non si è scomposta. Ha semplicemente atteso pochi giorni per definire gli ultimi dettagli ed è oggi pronta a presentare al mondo il suo nuovo chip, Radeon X800. Il prodotto parte da una concezione piuttosto diversa rispetto a quello della concorrenza: performance, prima di tutto, e solo dopo caratteristiche nuove. Vediamo nel dettaglio cosa ci viene proposto.

di Antonino Tumeo, pubblicato il

3Dc opera la sua compressione in una maniera sorprendentemente semplice. Innanzitutto considera blocchi di 4x4 pixel, ciascuno rappresentato da 32 bit, per un totale di 512 bit. Di ciascun pixel, poi, elimina il valore che rappresenta la coordinata Z, che può essere ricostruita applicando una semplicissima formula nel pixel shader. Tale eliminazione è permessa dal fatto che si passa dallo spazio del modello (dove sono necessarie tutte e tre le coordinate), al cosiddetto "spazio tangente" di ciascun triangolo, nel quale le coordinate descrivono uno spazio emisferico attorno al triangolo stesso. Appare quindi ovvio come la semplice formula da calcolare per ottenere Z non sia nient'altro che sqrt(1-x^2-y^2), cioè la radice quadrata del quadrato delle due coordinate rimaste sottratte all'unità.
A questo punto, 3Dc può calcolare e salvare i valori minimi e massimi che assumono le coordinate x e y nel blocco, e tra ogni minimo e massimo calcola altri sei valori intermedi, per un totale di 8 valori (rappresentabili con 3 bit). Non resta poi da far altro che, per ciascun valore X e Y dei singoli elementi (o se vogliamo pixel) del blocco originale scegliere quale, tra gli otto valori a disposizione, si avvicina di più. Il totale di bit da salvare rimane così di 32 (8 per ciascun massimo e minimo delle due coordinate rimaste) più i 6 per ciascuno dei 16 elementi di ciascun blocco, per un totale di 32+16x6=128 bit. Esattamente un quarto dei 512 bit di partenza.
La sostanza di tutta questa tiritera è il fatto che, con molta semplicità, grazie a 3Dc diventa possibile salvare velocemente normal map ad alta risoluzione, utilizzando solo un quarto dello spazio necessario. Ciò significa che, con la stessa quantità di memoria, una scheda grafica veloce sia nella gestione delle texture che nell'esecuzione delle istruzioni di shading, ed il supporto hardware per la decompressione 3Dc, sarà possibile utilizzare normal map ben più complesse e ricche di dettaglio che consentiranno, senza appesantire il dettaglio geometrico dei modelli, di aumentare comunque in maniera significativa il realismo, grazie a superfici ancora più ricche di particolari. Interessatissimi a questa tecnica di compressione si sono già detti Valve Software (ovviamente), Croteam con il suo Serious Sam 2 in arrivo (ATI, tra l'altro, mostra proprio un interessantissimo dimostrativo basato su questo engine che sfrutta pienamente 3Dc), Ritual, al lavoro su Quake 4, la Firaxis di Sid Meier con il suo Pirates ormai in arrivo ed altri. La tecnologia, tra l'altro, non dovrebbe lasciare indifferente neanche id Software, visto che John Carmack può a buon ragione essere considerato uno tra i primi programmatori a spingere per l'utilizzo delle normal map, delle quali Doom 3 farà ampissimo uso.
Da sottolineare, per chiudere il discorso su 3Dc, che la tecnologia, oltre ad essere pronta per il supporto nelle varie interfacce di programmazione, è comunque libera e può essere implementata dalla concorrenza senza royalties ed eventualmente può essere anche sfruttata semplicemente via software (con evidenti penalità prestazionali), nel caso che gli sviluppatori volessero evitare di dover inserire due set diversi di normal map, compresse ad alta risoluzione e non compresse.

SMOOTHVISION HD

Se da un lato, come abbiamo visto, sono state le performance l'aspetto principale curato da ATI nel definire l'architettura di Radeon X800, con però l'importante eccezione di 3Dc, dall'altro non possiamo non ricordare che nelle precedenti soluzioni l'altro punto forte è sempre stato costituito dalla qualità grafica. E', anche questo, un ambito dove probabilmente non servivano grosse rivoluzioni. L'Antialiasing in SuperSampling sulle architetture derivate da R300 si è rivelato sempre velocissimo e di alta qualità, con l'importantissima caratteristica di potersi avvalere di griglie di ricostruzione non fisse, ma di tipo "sparso" e programmabile. L'Anisotropic Filtering, per quanto la tecnica adattativa abbia fatto discutere, opportunamente corretta proprio con le architetture DirectX 9.0 ha sempre fornito prestazioni ineguagliate rendendolo uno dei filtri "attivi" per default.
Crediamo, però, che ATI si sia fatta una domanda ad un certo punto dello sviluppo del nuovo chip: "non si può, comunque, in qualche modo sfruttare tutta la potenza di rendering messa a disposizione da Radeon X800 per migliorare ulteriormente la qualità grafica?". Posto, infatti, che gli obiettivi per questa architettura erano quelli di utilizzare le altissime risoluzioni con gli engine attuali e di prossima uscita, e verificato che, come del resto nel caso della concorrenza, per ora di velocità ne avanza anche con i filtri più penalizzanti attivati, ATI ha effettivamente pensato che qualcosa in più si potesse fare, ed ha aggiornato anche il suo caro SmoothVision.
Con Radeon X800, infatti, fa la sua comparsa quello che è stato denominato Temporal AntiAliasing. La cosa più interessante è che, in fondo in fondo, non si tratta di nulla di particolarmente "complesso", ma che è per certi versi geniale per come faccia pienamente leva sulla possibilità offerta dalle unità di R420 di programmare e variare la posizione dei campioni generati per realizzare l'antialising. Sfruttando il tempo di persistenza delle immagini sulla retina, e il fatto che un monitor esegue il compito di "ricostruttore" del segnale analogico, il Temporal Antialiasing di Radeon X800 fa variare completamente la griglia di campioni presi da ciascun pixel da un frame al successivo. In questa maniera, generando fotogrammi al quale viene applicato, per esempio, un AntiAliasing 2X, al nostro occhio sembrerà che, nella successione di 2 fotogrammi consecutivi, sia stato applicato un AntiAliasing 4X, in quanto i pixel, nelle due immagini successive, sono generati a partire da campioni posti in posizioni completamente differenti e che dunque a livello subpixel non si sovrappongono. La persistenza delle immagini sulla nostra retina, e il fatto che l'occhio ricostruirà l'immagine "unitaria" faranno poi il resto, dando l'impressione che sia stato applicato un AntiAliasing di livello superiore rispetto a quello reale. Il tutto con il solo costo computazionale (bassissimo, dato il fatto che la scheda è stata progettata per gestire campioni in posizione programmabile) di dover variare la locazione dei campioni. Da notare che, per usufruire dei benefici effettivi del Temporal AntiAliasing, è consigliabile avere un frame rate decisamente superiore a quello del refresh rate del monitor, tenendo attivato il VSync. Ed è altrettanto ovvio che i suoi effetti non possono essere catturati tramite nessun programma di grabbing di immagini, visto che quello che apparirebbe sarebbe sempre e comunque un'immagine con l'AntiAliasing del singolo fotogramma.
Altra caratteristica da sottolineare nell'ambito dell'AntiAliasing è poi quella del Centroid Sampling. Tale tecnica di campionamento fa parte delle specifiche dello Shader Model 3.0, non era inclusa nelle GeForce FX (mentre è chiaramente presente nella GeForce 6800), ma è stata supportata dall'hardware ATI fin dall'inizio dell'era R300 ed è oggi naturalmente ancora presente in Radeon X800. Il Centroid Sampling è diventato famoso negli ultimi mesi per via delle dichiarazioni di Valve, secondo la quale sarebbe stato una delle poche tecniche utilizzabili, forse l'unica supportata a livello nativo da qualche hardware (le altre sono più delle soluzioni "ibride"), per fare in modo che l'AntiAliasing in MultiSampling funzionasse adeguatamente in Half-Life 2. In buona sostanza, poiché come più volte abbiamo visto, il MultiSampling riutilizza sempre le stesse informazioni di colore per tutti i campioni che vengono presi di uno stesso pixel (ricalcolando quelli di Stencil e di Z Buffer), andando poi a posizionarli secondo le varie griglie supportate, l'informazione di colore, cioè il texel della texture da applicare sul pixel, viene dunque campionato sempre dalla stessa posizione, come se ci trovassimo, a livello "subpixel", sempre al centro del pixel stesso, e viene poi replicata nelle diverse posizioni nell'immagine sovracampionata (cioè a risoluzione maggiorata) che stiamo generando.
Ciò significa però che se a quella risoluzione avessimo un poligono di un altro oggetto, magari di colore completamente diverso, che va a sovrapporsi proprio nella locazione dove sta venendo collocato uno dei campioni calcolati, siccome il colore del campione è preso da una posizione diversa tale poligono non sarebbe per nulla considerato. Ciò significa che, in fase di interpolazione, mentre si procederà a generare il pixel da visualizzare effettivamente, del colore di tale poligono non ci sarà traccia, con la conseguente generazione di un antiestetico artefatto al confine tra i due oggetti. Il Centroid Sampling, avendo verificato che il nuovo poligono si trova sopra una zona di allocazione dei campioni, fa sì che il suo colore venga comunque campionato anche se non si trova nella zona dove il MultiSampling campionerebbe, eliminando così ogni possibile artefatto.
Di questo, naturalmente, ringrazia Gabe Newell e tutto il team di Half Life 2.

HYPERZ HD

Naturalmente, per poter realizzare un adeguato AntiAliasing e supportare risoluzioni sempre più alte, pur con memorie ad altissima frequenza e l'ormai indispensabile bus di memoria da 256 bit, è impensabile non offrire adeguate tecniche per ridurre al minimo lo spreco di banda. Naturale, quindi, che in Radeon X800 ATI provvedesse a migliorare anche l'ormai affermatissimo HyperZ, adattandolo al meglio per supportare adeguatamente le 12/16 pixel pipeline di rendering che dovranno essere gestite e ponendo le condizioni per farlo rendere al meglio soprattutto in alta risoluzione, a 1600x1200 e a 1920x1080.