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 separatore
 Opensource 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.
Hercules 3D Prophet 4500 64MB Kyro II
Prodotta da Dino Fratelli il 25.06.2001

Architettura TBR

Vai a 

Abbiamo capito all'incirca come funziona e che cosa significa architettura Tile Based, ora vogliamo entrare un pochino più nello specifico ed analizzare pregi e difetti di questa modo di pensare.

Partiamo a tal proposito dalla generazione della scena 3D che si compone, di solito, di diverse fasi. Queste sono, nell'ordine: trasformazione, illuminazione, setup, rendering e Z-buffering.

La prima fase di trasformazione della scena serve a determinare la posizione di tutti i vertici dei triangoli che andranno a comporre la scena 3D, siano essi in movimento che fermi. Dopo questa fase si passa alla costruzione di uno scheletro della scena mediante l'uso di poligoni che dovranno essere, quindi, illuminati. A questo pensa la seconda fase, quella di illuminazione della scena, che calcola le ombre e le zone in luce di tutta la scena. Queste prime due operazioni vengono svolte dalla CPU oppure dalla scheda video a seconda se quest'ultima non possiede oppure possiede una unità di T&L hardware.

Il setup dei triangoli costituisce il terzo passo nella costruzione della scena 3D. In questa fase vengono creati i veri e propri triangoli a partire dalla posizione dei vertici assegnata nella prima fase. Tutti i triangoli generati verranno, poi, renderizzati, cioè, verranno vestiti (applicazione delle textures "addosso" agli oggetti). Questa è la quarta fase, quella di rendering.

L'ultima fase, quella sulla quale ci concentreremo maggiormente, serve ad elaborare la posizione degli oggetti creati finora nello spazio tridimensionale. Lo Z-Buffering, infatti, serve a calcolare la posizione all'interno della scena di tutti gli oggetti; questa operazione si avvale di un buffer di memoria chiamato appunto Z-Buffer, nel quale troviamo tutti gli oggetti necessari alla corretta visualizzazione della scena in ordine di profondità. Il suo funzionamento è di facile comprensione: una volta disegnato un triangolo della scena viene calcolata, per ogni pixel, la distanza dall'osservatore. Tutti questi dati vengono poi inseriti nello Z-Buffer che se opportunamente dimensionato offre sempre una perfetta visualizzazione della scena. Ogni volta che viene generato un nuovo triangolo, prima di renderlo visibile all'osservatore, vengono eseguiti i calcoli sulla coordinata z e questi vengono confrontati con le coordinate degli oggetti che già si trovano all'interno dello Z-Buffer. I pixel cha hanno una coordinata z minore di altri sono quelli che si trovano più vicini all'osservatore e dunque davanti ad altri pixel: questi vanno disegnati. Viceversa si tratta di pixel nascosti da altri e quindi non visibili e da non disegnare sullo schermo. Finora il semplice uso di uno Z-Buffer accurato ha fornito prestazioni più che accettabili. Adesso, che i giochi (e anche i giocatori) sono sempre più affamati di risorse, la larghezza di banda delle memorie grafiche non riesce più a garantire prestazioni ottimali per il passaggio di tutti i dati indistintamente attraverso tutte le fasi di costruzione dell'immagine.

Ecco come viene costruita la scena 3D dalle GPU tradizionali

Dunque, come avete capito, è proprio nello Z-Buffer che si scopre quali sono i pixel che verranno coperti da altri che gli stanno davanti. Qualcuno a questo punto si è chiesto: ma perché portarsi dietro una marea di informazioni inutili che poi non verranno affatto viste dall'utente sul suo monitor?

La risposta a questa domanda non è data solo dal chip PowerVR, ma anche da ATI e nVidia. Chiaramente ognuno sta procedendo per la sua strada diversa da quella dell'altro ma sempre con lo stesso obiettivo: ottimizzare l'occupazione delle risorse. Basti pensare che almeno il 50% dei calcoli sviluppati per la costruzione dei triangoli si materializza poi in pixel nascosti e quindi da buttare via. Ecco perché c'è molta attenzione verso le tecniche atte ad eliminare l'OverDrawing. Quelle di ATI e nVidia, comunque, non sono tecniche molto distanti dal classico uso dello Z-Buffering tanto che possiamo indicare queste tecniche come una ottimizzazione dello Z-Buffer stesso (Hyper-Z è la tecnologia usata da ATI e Z-Occlusion Culling quella usata da nVidia nel GeForce 3). Inoltre queste tecniche richiedono anche una parte di sviluppo software per avere una reale ottimizzazione e dunque non sono "retroattive".

Altro discorso è quello che sta dietro le tecnologie sviluppate da PowerVR e introdotte nel chip Kyro II. Queste tecniche hanno un approccio sulle operazioni da compiere nella creazione della scena 3D molto più radicali che non quelle introdotte dai concorrenti. L'idea che sta nel PowerVR è proprio quella di eliminare alla fonte le parti della scena che non verranno visualizzate perché coperte da altre, in modo da evitare di portarsi dietro un fardello di informazioni che poi verranno buttate ed evitare il collo di bottiglia causato dalla larghezza di banda della memoria.

Innanzi tutto, il fatto di splittare la scena in tanti piccoli pezzi, permette di effettuare la maggior parte delle operazioni on-chip evitando l'accesso alla memoria esterna (ogni singolo tassello è molto leggero, dunque richiede buffer altrettanto piccoli per essere memorizzato durante le varie operazioni che la GPU deve compiere). Anche le funzioni di HSR sono fatte tutte attraverso lo Z-Buffer integrato nel chip, oltre che quelle di processamento dei pixel e di blending che vengono svolte on-chip mediante l'uso di un Frame Buffer interno. Già questo fatto permette un elevato risparmio sulla bandwidth della memoria perché la maggior parte degli accessi alla memoria, in sistemi convenzionali, avvengono proprio per le operazioni sopra citate. Ma i vantaggi offerti dal Kyro II non finiscono qui. Infatti tutte le operazioni interne al chip vengono fatte a 32-bit senza perdita di performance dato che non c'è bisogno di attendere le risposte da Frame Buffer e/o Z-Buffer esterni. Questo fa sì che anche una visualizzazione finale della scena a profondità di colore e texture di soli 16-bit, sia di ottima qualità.

Passiamo, poi, alla tecnica di Hidden Surface Removal adottata in questo chip. Intanto osserviamo la figura qui sotto in contrapposizione con quella vista precedentemente:

Ecco come viene costruita la scena 3D dal chip Kyro II

Come vedete, stavolta la prima fase consiste nel calcolo della distanza sull'asse z, che permette di sapere già dal primo stadio della pipeline grafica quello che accade ad ogni pixel e dunque la sua visibilità o meno. Solo i pixel che saranno visibili verranno inviati alle unità di Texture e Shade per essere resi, infine, visibili sul monitor.

1. Nella prima fase non si fa nessun accesso all'area di memoria esterna dedicata allo Z-Buffer ma si usa lo Z-Buffer interno al chip per la misura della coordinata z di ogni pixel. Come si evita di accedere alla memoria video esterna? Il discorso lo abbiamo già affrontato precedentemente ma ora potrebbe risultare ancora più chiaro. Questo può accadere grazie alla suddivisione della scena in blocchetti di 32x16 pixel. Ad esempio una schermata di 1024x768 punti verrà diviso in 1536 mattoncini e ognuno di essi entra perfettamente nello Z-Buffer interno evitando l'operazione di copia da questo buffer in quello esterno con un notevole risparmio di banda passante!

2. Nella seconda fase si applicano le texture solo sulle superfici visibili determinate nella prima fase.

3. Nella terza fase tutti i dati vengono immagazzinati in un Frame Buffer e poi spediti sul display per essere visualizzati.

L'ultimo pregio da citare riguarda la scalabilità del chip che offre una facile opportunità di essere connesso in parallelo con altri chip Kyro II. Questo grazie all'architettura Tile Based Rendering che permette di lavorare indipendentemente su ogni singolo tassello della scena.

A questo punto le differenze fra le due architetture si fanno evidenti: mentre nella visione tradizionale tutta l'elaborazione è effettuata su ogni singolo triangolo senza considerare l'interazione esistente fra questi oggetti, nella visione Tile Based Rendering si effettuano tutti i calcoli relativi alla geometria della scena (posizione, colore, ...) e si memorizzano questi in una lista chiamata Triangle-List. Ogni Tile avrà la sua Triangle-List sulla quale vanno effettuati i confronti di profondità per determinare i triangoli visibili e dunque viene considerata la posizione reciproca di ogni triangolo rispetto all'altro. Chiaramente l'architettura del Kyro II permette di eseguire tutte le operazioni da fare per ogni pixel in parallelo in modo da smaltire un tassello in pochi colpi di clock. 

Naturalmente bisogna tenere in considerazione anche alcuni aspetti negativi. E' vero che si risparmiano numerosi accessi in memoria grazie alla suddivisione della scena ma è pur vero che le Triangle-List vanno memorizzate da qualche parte! Inoltre questa architettura rende di difficile realizzazione una unità T&L ottimale che dovrebbe essere ristudiata appositamente.

Infine c'è da dire che a causa dell'ordinamento dei poligoni che la scheda deve fare prima di renderizzare la scena, si ha un elevato degrado delle prestazioni quando il numero di poligoni che compone la scena è molto elevato. Ma vedremo queste cose all'interno dei test.

Indietro
Caratteristiche tecniche

Avanti
Hercules 3D Prophet 4500