Niente displacement mapping per le GeForce FX

Aperto da Neo, 22 Novembre 2002, 13:04:42

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Neo

La nuova GPU nVidia, meglio nota anche con il nome in codice di NV30, non sembra vantare supporto hardware per il displacement mapping, funzionalità richiesta per le API DirectX 9 e introdotta per la prima volta con la scheda video Matrox Parhelia.

Del displacement mapping abbiamo a lungo discusso nella preview tecnologica sulla scheda Matrox Parhelia, pubblicata on line a questo indirizzo :http://www.hwupgrade.it/articoli/608/5.html Vediamo in dettaglio cosa era stato scritto in quell'occasione:
Una delle più interessanti funzionalità implementate nella GPU Parhelia-512 è l'Hardware Displacement Mapping, tecnologia che verrà implementata nelle API DirectX 9 di Microsoft e che permette di generare nuovi scenari 3D estremamente realistici. L'Hardware Displacement Mapping si compone di due distinte parti, il Depth-Adaptive Tessellation e il Vertex Texturing: vediamo in dettaglio di cosa si tratti e come operino.

La geometria di una scena 3D è definita da una mesh, cioè dall'insieme dei triangoli che connessi tra di loro rappresentano la superficie degli oggetti 3D che compongono la scena. Le tecniche di tessellazione (Tessellation) permettono di generare un maggior numero di triangoli a partire dai triangoli base che compongono gli oggetti 3D: aumentando il numero dei triangoli aumenta il numero di elementi che compongono la mesh, di conseguenza il dettaglio con il quale i singoli oggetti 3D vengono costruiti nella scena.

Sulla tessellated mesh viene applicata una displacement map: questa è niente altro che una immagine bitmap, tipicamente di dimensioni 64 x 64 x 8bit, con vari livelli di colore per ogni pixel (in toni di grigio, per la precisione); in base all'intensità del colore, più chiaro o più scuro, corrisponde una specifica altezza nello spazio del pixel corrispondente sulla tessellated mesh. In altre parole, le informazioni contenute nella displacement map servono per trasferire in piano tridimensionale i triangoli che compongono la tessellated mesh.

Una volta applicata la displacement mesh l'immagine finale viene renderizzata, applicandone le varie textures ed eventualmente vertex shaders e pixel shaders, ottenendo la scena finale che appare a monitor.

Le mesh possono essere di vario tipo, come chiaramente illustrato nello schema sottostante. Nella figura a è raffigurata una base mesh, composta da due soli triangoli; nella figura b la mesh di partenza viene processata in modo da ottenere, per interpolazione, una linear tessellated mesh, che rispetto alla originaria è composta da un numero ancor più elevato di triangoli. La linear tessellated mesh può essere a sua volta elaborata con un procedimento di N-Patch, così da ottenerne una superficie curva, oppure su di essa può essere applicata una displacement map così da ottenere una vertex textured mesh, nella quale i vari pixel hanno altezza variabile a seconda dei dati contenuti nella displacement map.

L'operazione di tessellation permette, come facilmente osservabile, di arricchire le informazioni di natura geometrica che compongono la scena 3D riprodotta. In base al punto di osservazione dell'utente, la maggiore geometria fornita con l'operazione di tessellation permette di arricchire notevolmente i dettagli degli oggetti in primo piano. Allo stesso modo, però, viene influenzata la geometria anche degli elementi in secondo piano, che per la loro particolare posizione all'interno della scena non richiedono un dettaglio così elevato.
Il mancato supporto hardware al displacement mapping, presente invece nelle schede ATI basate su chip R300 (Radeon 9700 e Radeon 9500) metterebbe, in teoria, in una posizione problematica le schede GeForce FX con riferimento alla piena compatibilità hardware con le API DirectX 9. Non è, infatti, ancora ben chiaro se il supporto hardware a questa funzionalità sia richiesto per avere pieno supporto alle nuove API Microsoft.

Ulteriori informazioni sono disponibili sul sito xbitlabs, a questo indirizzo :http://www.xbitlabs.com/news/story.html?id=1037838967, oppure sul sito reactorcritical, a questo indirizzo :http://www.reactorcritical.com/#l1270