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.
NV43: NVIDIA GeForce 6600 e 6600 GT PCI-E
Prodotta da Dino Fratelli e Marino Berrè il 08.09.2004

Shader Model 3.0

Vai a 

Come i modelli della serie 6800, la famiglia 6600 supporta i Vertex ed i Pixel Shaders in versione 3.0, introdotti dal rilascio delle DirectX 9.0c. Sostanzialmente il passaggio dalla versione 2.0 alla versione 3.0 permette di scrivere programmi di shader più lunghi, migliorandone l'efficienza ed aumentandone la complessità. E' opportuno fare una differenziazione tra Vertex Shaders 2.0 (introdotti da poco più di un anno) e 3.0.

Vertex Shaders 2.0 vs. Vertex Shaders 3.0
Vertex shader feature Shader 2.0 Shader 3.0 Descrizione

Lunghezza dello Shader

256 istruzioni

65535
istruzioni

Più istruzioni permettono una illuminazione dei soggetti maggiormente dettagliata, idem per l'animazione

Dynamic branching

No

Yes

Migliora le performances perchè il calcolo di vertici irrilevanti e di animazioni irrilevanti viene evitato

Vertex texture

No

Fino ad un max di 4 textures

Permette il displacement mapping ed effetti di particella

Instancing support

No

Richiesta

Permette il disegno di più oggetti tramite un singolo comando

Registri Temporanei 12 32  
Static Flow Control Si Si  
Dinamic Flow Control No Si  
Profondità del controllo di flusso dinamico No 24 stadi  

L'instancing è forse una delle funzioni più importanti dei VS3.0: essa permette infatti di rimuovere il sovraccarico sulla GPU dato da molteplici istanze (oggetti) basati sullo stesso modello tridimensionale. Attualmente ogni modello in una scena 3D necessita di una fase di setup, e dell'invio alla GPU per il rendering. In questo modo invece è possibile creare tutti gli oggetti che si desidera di un modello partendo semplicemente da un flusso di vertici: le istanze (oggetti) potranno essere manipolate dal Vertex Shader per darle caratteristica una per una.

Attualmente i giochi mostrano un importante limite nel numero di oggetti che essi possono visualizzare in una scena 3D a causa del carico sulla CPU di sistema nel gestire e memorizzare oggetti che spesso possono differire di poco. Un esempio calzante è rappresentato da una foresta fatta di alberi che sono simili fra loro ma ognuno di essi può avere caratteristiche differenti come altezza, colore delle foglie e del tronco, larghezza della chioma, posizione e così via. Prima della versione 3.0 degli Shader Model, gli sviluppatori che volevano avere tanti alberi dalle differenti caratteristiche, dovevano scegliere se memorizzare diverse copie degli alberi ognuna con piccole differenze dall'altra oppure se effettuare operazioni di rendering molto pesanti per scalare, ruotare, colorare, etc.

Grazie alla possibilità di creare istanze degli alberi, lo sviluppatore può creare un albero fatto di un certo numero di vertici e poi creare un array di dati per specificare le caratteristiche di altezza, colore, ampiezza della chioma, etc. In questo modo la generazione di 100 alberi per la foresta richiede i soli 100 dati caratterizzanti ogni istanza di un albero, il modello dell'albero stesso (dunque i suoi vertici) ed una sola chiamata per disegnare l'intera foresta.

Mostriamo le differenze tra le due revisioni di Pixel Shader: 2.0 e 3.0

Pixel Shaders 2.0 vs. Pixel Shaders 3.0
Pixel shader feature Shader 2.0 Shader 3.0 Descrizione

Lunghezza dello Shader

96

65535+

Permette una illuminazione più complessa, shading e processo dei materiali

Dynamic branching

No

Si

Permette di alleggerire il carico di lavoro saltando il calcolo di operazioni di Shading complesse su Pixels irrilevanti.

Shader anti-aliasing

No

Integrato

Gli sviluppatori possono calcolare lo spazio su schermo derivato da qualsiasi funzione, permettendogli di variare le frequenze di Shading o di Oversampling, per eliminare artefatti

Back-face register

No

Si

Garantisce l'illuminazione su due lati per singola passata

Interpolated color format

8-bit integer minimo

32-bit floating point minimo

Una maggior ampiezza e precisione dei colori permette una alta dinamica d'illuminazione a livello di vertici

Multiple render targets

Opzionale

4 richiesti

Garantisce algoritmi di illuminazione avanzati per diminuire il carico di lavoro sul filtraggio e sui vertici (più luci a fronte di una minima spesa di prestazioni)

Fog and specular

8-bit a funzione fissa

Custom fp16-fp32 shader program

Il modello 3.0 degli Shader garantisce allo sviluppatore un pieno e preciso controllo per quanto riguarda il calcolo della nebbia e della specularità, prima funzioni fisse

Texture coordinate count

8

10

Più informazioni per pixels garantiscono un rendering più realistico, specialmente per la pelle

Altra grossa innovazione degli Shader 3.0 (sia per vertex shaders che pixel shaders) è la funzione chiamata Dynamic Branching. Semplicemente, questa funzione permette al programmatore dello shader, di creare un vero ciclo e condizioni nel programma di shading. Per esempio, uno può scrivere uno shader che fa un loop di un certo numero di luci sui vertici, e poi passare l'indice di ogni luce rilevante all'unità di pixel shader. Il pixel shader può usare questo indice di luci per determinare il parametro da applicare, per poi tornare in loop sulle luci attive, ed usare il Dynamic Branching per uscire dallo shader stesso prima che tutte le luci siano ancora processate.

La combinazione Vertex e Pixel Branching permette di saltare l'elaborazione di luci che lo shader individua come non soggette alla sorgete di luce. Questo garantisce un minor carico di lavoro, oltre ad accelerare lo Shader.
 


Indietro
Precisione a 32-bit

Avanti
HPDR