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

Radeon 9700

Anteprima

Radeon 9700 - L'architettura - Prima Parte

Il nuovo chip di ATi DirectX 9.0 compliant è stato da poco annunciato e da pochi giorni è arrivato sul mercato portando con sé una serie di caratteristiche innovative con un salto tecnologico dalla generazione precedente, forse paragonabile solo a quello avvenuto con l'introduzione del primo chip Voodoo. Vediamo in dettaglio cosa offre il nuovo chip e su quali tecnologie si basa.

di Antonino Tumeo, pubblicato il

Con Radeon 9700 il concetto di motore geometrico programmabile introdotto con GeForce 3 e Radeon 8500 viene ulteriormente potenziato ed esteso. Potenziato, perchè nel nuovo chip ATi troviamo ben quattro Vertex Shader pipeline, contro l'unica di GeForce 3 e le due di Radeon 8500 e di GeForce 4, che accoppiate all'ottimo motore di setup dei triangoli, permettono adesso di fornire un triangolo e un vertice per ciclo di clock.
Forse rimarrete stupiti del fatto che si sono citate due unità di Vertex Shading anche per Radeon 8500. Non è un errore, sono veramente due le unità presenti nel vecchio chip di casa ATi, ma la rivelazione è stata solo recente, probabilmente dovuta principalmente a cause di marketing. E' infatti da sottolineare che molto diverse sono le implementazioni delle unità di Vertex Shading utilizzate da nVidia per le sue GeForce, e da ATi per Radeon 8500: non per niente, pur avendo in effetti due unità atte a "gestire" Vertex Shader, come GeForce 4, a causa di unità aritmetiche meno efficienti e un'organizzazione nel modo di procedere nell'elaborazione sostanzialmente differente Radeon 8500 fornisce prestazioni geometriche sì superiori a GeForce 3, ma nettamente inferiori quelle di GeForce 4.
Ragionevole quindi il fatto che la cosa sia stata tenuta il più possibile riservata. Tale discorso, comunque, non toccherà certamente Radeon 9700: per chi ama i meri numeri, possiamo dire che il nuovo chip promette di arrivare a sputare (a seconda della frequenza finale che avrà il chip), oltre 300 milioni di triangoli al secondo. Il supporto ai Vertex Shader è anche stato esteso, perché le quattro pipeline implementano completamente (e migliorano lievemente) le attuali specifiche 2.0 dei Vertex Shader di DirectX 9.0. Le specifiche richiedono 1024 istruzioni massime, con 256 costanti e controllo di flusso, contro le sole 128 istruzioni con 96 costanti e senza controllo di flusso di DirectX 8 e 8.1; Radeon 9700 con i suoi 32 registri temporanei (contro i 12 richiesti) può arrivare fino a 65026, numero dato dalle 255 instruzioni massime con loop * i 255 loop massimi + l'ultima istruzione. Numeri che in buona sostanza significano un netto aumento di flessibilità e quindi la possibilità per i programmatori di creare effetti molto più complessi.
Come abbiamo già lasciato intuire, dunque, non si tratta di un mero "raddoppio" del numero di Vertex Shading unit rispetto al Radeon 8500, ma di una completa riprogettazione delle medesime. Ognuna delle quattro pipeline è infatti adesso disegnata per trattare simultaneamente operazioni su valori di tipo vettoriale (cioè composte da più parti, come le coordinate tridimensionali, formate dalle componenti x, y e z, o i dati di colore, formati dalle componenti rosso, verde e blu) e di tipo scalare (cioè formate da un'unica componente). Poiché un Vertex Shader include operazioni sia di tipo scalare che di tipo vettoriale, la possibilità di portare avanti i due tipi di operazioni in parallelo fornisce un ottimo vantaggio prestazionale.

TRUFORM 2.0

Il motore geometrico di Radeon 9700 supporta anche la nuova versione 2.0 di Truform, la tecnologia per superfici di ordine superiore (superfici cioè trattate e gestite, tramite apposite funzioni, come vere e proprie superfici curve piuttosto che come giustapposizione di vari triangoli), supportata da ATi. Per inciso, le superifici "curve" utilizzate dai due approcci contemplati nelle specifiche DirectX (n-patch e polynomial surface) sono le cosiddette "superfici di Bezier", dove la curvatura delle piccole zone che la compongono è determinata da particolari punti detti di "controllo".
Come discusso al momento della presentazione della prima versione della tecnologia, TRUFORM, facendo uso delle cosiddette n-patch, permetteva di aumentare "automaticamente" la tessellation (cioè il numero di triangoli) di una superficie, aumentandone l'effetto e l'idea di "curvatura". In base a precisi calcoli, infatti, una volta specificato dal programmatore il livello di tessellation desiderata, il motore geometrico di Radeon 8500 si prendeva l'incarico di calcolare, tramite appunto l'applicazione di una n-patch, da un singolo triangolo del modello di partenza un'approssimativa superficie di bezier e da questa una serie di sottotriangoli (a seconda del livello di tessellation specificato) con orientamento tale da approssimare la curvatura della superficie calcolata. Da notare anche che un problema non proprio "irrilevante" di tutte le tecnologie di "higher order surface" è che devono comunque essere esplicitamente supportate dal software (non basta il supporto dato dalle DirectX), anche se con le n-patch il lavoro da fare per supportarle è veramente pochissimo (soprattutto se rapportato alle polinomial surfaces).
La versione 2.0 presente in Radeon 9700, però, va molto oltre alla prima implementazione, offrendo oltre alle "semplici" n-patch delle modalità di tessellation più flessibili negli standard richiesti da DirectX 9.0. Prima di tutto, viene supportata la Continuous tessellation: i livelli di tessellation non sono più fissi e interi (1, 2, 3...), ma possono essere anche frazionari e in virgola mobile, quindi con una gradazione nettamente superiore. Direttamente collegata alla Continuous Tessellation, è l'Adaptive Tessellation, cioè la possibilità di determinare e impostare dinamicamente il livello di tessellation di una superficie in base alla distanza dall'osservatore nella scena 3D: le superfici in primo piano avranno più poligoni e appariranno molto dettagliate, mentre in quelle più lontane, dove tale dettaglio non è necessario poiché ininfluente per via della distanza, si potrà risparmiare un po' di potenza poligonale della scheda sfruttando un numero più limitato di triangoli. E gradualmente, avvicinandosi alle superifici prima distanti, il loro numero di triangoli aumenterà, mentre allontanandosi da quelle che prima ci erano subito davanti, il loro numero di poligoni diminuirà. Il tutto avverrà in maniera assolutamente trasparente all'utente finale e al programmatore.