computer,hardware,software,gaming,notebook,portatile,home theater,htpc,windows,overclock
    Ricerca avanzata
 
pecora nera
 

 categorie categorie del sito
 Schede madri separatore
 Processori separatore
 Bios separatore
 Schede video e monitor separatore
 Chipset separatore
 Memorie RAM separatore
 Storage separatore
 Dissipazione separatore
 Accessori, case e sistemi separatore
 HTPC e alta definizione separatore
 Notebook, netbook e phone separatore
 Sicurezza e reti separatore
 Software e videogame separatore
 Web e gossip separatore
 Overclock e modding separatore
 HowTo separatore
 Elettronica e informatica separatore
 
 Guida al bios separatore
 FAQs separatore
 Windows Vista FAQ & Tips separatore
||
 servizi servizi del sito
 Iscrizione ai servizi separatore
 Iscrizione a Daily Dinox's separatore
 Informazioni newsletter separatore
 Pubblicità su Dinox PC separatore
Tool ricerca per Firefox 2 Tool ricerca per Firefox 2 separatore
Tool ricerca per IE7 Tool ricerca per IE7 separatore
Preferiti Dinox PC nei preferiti separatore
Imposta come homepage Dinox PC come homepage separatore
Links utili
 Aziende ITC separatore
 Partners di Dinox PC separatore
 Mr.Webmaster separatore
 Neo Hardware separatore
 DevSpy.com separatore
 MPEGX.com separatore

www.aruba.it
www.
Point Of View Radeon 9700 PRO
Prodotta da Dino Fratelli il 30.09.2002

DirectX 9 Pipeline

Vai a 

La piena compatibilità con le DirectX 9.0 di Microsoft ha implicato il ridisegno ed il miglioramento della pipeline grafica. Perciò ATi, e lo stesso sta facendo nVidia con il prossimo NV30, ha dovuto apportare delle modifiche anche sostanziali rispetto al vecchio disegno del chip R2xx.

La pipeline inizia dalla connessione AGP 8x di cui abbiamo già parlato nella pagina precedente. Attraverso questo canale avviene la comunicazione di dati e istruzioni da parte della CPU passando per il Northbridge della scheda madre.

Le informazioni che arrivano dalla CPU, in forma di vertici, passano attraverso l'interfaccia di memoria per essere immagazzinate nella memoria video e/o elaborate direttamente dal Vertex Processing Engine, meglio noto come T&L. Le prime operazioni che la pipeline deve compiere sui vertici sono quelle di trasformazione: queste includono numerose operazioni matriciali eseguite su numeri in virgola mobile e sono necessarie per calcolare spostamenti e ridimensionamenti (trasformazioni affini) oltre che rotazioni dell'oggetto 3D:

Una tipica trasformazioni affine

L'elaborazione di tutti questi calcoli è davvero molto pesante, soprattutto se deve essere realizzata su variabili floating point. Basta guardare come sono fatte le matrici che regolano il comportamento degli oggetti (soprattutto quelle di rotazione):

Matrici di trasformazione

Lo stadio successivo è quello di illuminazione dei vertici che andranno a comporre la scena 3D. Il chip R300 offre la totale programmabilità di questa unità e, grazie a questa opportunità, si ha la possibilità di cambiare le forme, le caratteristiche, la "pelle", etc.

La pipeline del chip R300

Il chip R300 è stato dotato di 4 pipelines programmabili di vertex shader:

Le pipelines programmabili di vertex shader

Il passo successivo alle operazioni di T&L è il setup dei triangoli, operazione realizzata attraverso il Triangle Setup Engine. ATi, con la GPU R300, è in grado di fornire un throughput rate dei triangoli di oltre 300 milioni di triangoli/s. Per avere un'idea, il chip GeForce4 Ti 4600, riesce ad avere un throughput rate pari a meno della metà (circa 140 milioni di triangoli/s).

Fra le altre cose in cui ATi ha reso il chip R300 un avversario da battere, occorre prendere in considerazione la pipeline di Pixel Rendering. ATi, infatti, è il primo produttore ad implementare una pipeline di Pixel Rendering ad otto stadi a 128-bit di tipo floating point che rappresenta una notevole tappa in avanti rispetto alle 4 pipeline di Pixel Rendering a 64-bit di tipo integer integrate nei chip Radeon 8500 e GeForce 4. Dunque non solo potenza (le 8 pipeline offrono un notevole boost prestazionale nel fill rate della scheda) ma anche precisione maggiore!

8 pipeline di Pixel Rendering

L'impiego di una pipeline di Pixel Rendering completamente floating point e con una precisione di 128-bit porta notevoli benefici in termini di immagini realistiche anche con i giochi attuali, dato che la scheda video stessa evita innaturali arrotondamenti sulle cifre meno significative del risultato delle operazioni di Pixel Rendering.

Il chip R300 supporta anche le specifiche Vertex Shader 2.0 e Pixel Shader 2.0 implementate nelle specifiche DirectX 9. I maggiori benefici dell'uso del Vertex Shader 2.0 stanno nella possibilità di usare istruzioni di controllo del flusso (ad esempio i cicli for, i salti, le subroutine, etc.) e nell'incremento del numero di istruzioni (fino a 1024 istruzioni per ciclo di clock) che possono essere eseguite per ogni ciclo di clock. Inoltre, il chip R300 supporta anche la tecnologia Hardware Displacement Mapping introdotta con il chip Matrox Parhelia.

Il supporto al Pixel Shader 2.0 include numerosi miglioramenti rispetto alla precedente versione. Nella tabella qui sotto potete leggerne i dettagli, oltre a quelli relativi al Vertex Shader ed alle High Order Surface:

Dettagli Pixel Shader 2.0
  DirectX 8.0 DirectX 8.1 DirectX 9.0
Vertex Shaders 1.1 1.1 2.0
Massimo numero Istruzioni 128 128 256
Massimo numero Costanti 96 96 256
Controllo di flusso No No Si
Pixel Shaders 1.1 1.4 2.0
Texture in ingresso 4 6 16
Massimo istruzioni Indirizzamento 4 8 32
Massimo istruzioni Colore 8 8 64
Tipo di dati Interi Interi Virgola mobile
Precisione dei dati 32-bit 32-bit 128-bit
Render Targets 1 1 4
High Order Surface      
N-Patches Si Si Si
Tessellation continua No No Si
Adaptive Tessellation No No Si
Displacement Mapping No No Si

Come è possibile leggere dalla tabella, le nuove specifiche sul Pixel Shader permettono di avere 16 textures in ingresso. Questo vuol dire poter applicare 16 textures per ciclo di clock, mentre GeForce4 e Radeon 8500 ne possono applicare solo 6! Inoltre le specifiche 2.0 del Pixel Shader offrono una maggiore flessibilità nella programmabilità dello stesso, grazie al supporto di un maggior numero di istruzioni.

Grazie all'uso di registri in virgola mobile per contenere i dati ed una precisione incrementata di ben 4 volte (da 32-bit a 128-bit), le scene potranno avere un realismo decisamente maggiore. Una delle più importanti cause di non realismo delle scene 3D che escono fuori dagli attuali chip video è quella dell'illuminazione della scena stessa. Le specifiche Pixel Shader 1.4 offrono un massimo di 256 possibili valori interi (32-bit / 4 canali) per ogni canale RBGA della scena. Questo fa sì che una scena illuminata in un certo modo debba subire per forza una illuminazione uniforme senza poter distinguere bene le sorgenti di luce. Ad esempio, si abbia una scena complessa come quella qui sotto:

Scena 3D illuminata

Sovraesponendo o sottoesponendo la scena 3D, attraverso un controllo di luminosità, di un valore pari a 64x, si ottengono i seguenti risultati:

Scena 3D sovraesposta (64x)

Scena 3D sottoesposta (64x)

Come vedete l'aumento della luminosità non riesce a distinguere i vari punti della scena ma esegue una modifica uniforme alla luce di tutta la scena. Questo a causa del numero limitato di livelli disponibili per ogni canale RBGA. Passando a dati in virgola mobile con precisione a 128-bit, ogni canale avrà a disposizione ben 32-bit per immagazzinare valori; dunque 4.294.967.296 valori possibili! Il risultato, per una sottoesposizione di 64x è il seguente:

High Dynamic Range

Infine, nella tabella si fa riferimento ai Render Targets. Come vedete, le nuove specifiche prevedono fino a 4 Render Targets, il che vuol dire avere la possibilità di gestire oggetti specifici della scena 3D per applicare gli algoritmi di pixel shader. Questa possibilità è chiamata, all'interno delle DirectX 9, supporto per Multiple Render Targets.

Indietro
Il chip R300

Avanti
Nuove caratteristiche