PDA

View Full Version : directx 10: technology preview


shinya
14-12-2005, 15:11
Incuriosito dal link postato da fek in una discussione scaturita da una notizia su non mi ricordo nemmeno cosa, che però riguardava tutt'altro, ho scaricato il nuovo aggiornamento del directx sdk, e mi sto leggendo un pò la documentazione di quelle che saranno le directx 10.

A parte il fatto che sono annichilito dalle novità dello shader model 4.0, con questo geometry shader di cui non riesco ancora ad afferrare le potenzialità, mi sono sorte alcune domande durante la lettura.

In particolare, e spero possiate illuminarmi - soprattutto fek, che magari ne sa un pelo di più (senza doppi sensi sui peli; mi dispiace se tra voi c'è qualche feticista con un fervido immaginario, ma escludo il doppio senso):

1- per scrivere applicazioni directx 10 ho bisogno sia di windows vista (o comunque di quel modulo che i doc chiamano Windows Vista Display Driver Model (WDDM) infrastructure, e/o (e vorrei sapere se è 'e' od 'o', perchè per me fa molta differenza) di una scheda video - inesistente - che supporta in hardware dx10?

Questa seconda parte della domanda in particolare è scaturita da questo periodo trovato nei doc, che con una leggerezza che nasconde tonnellate di piombo recita:

"A full set of required functionality: legacy hardware capability bits (caps) have been removed in favor of a rich set of guaranteed functionality. To enable this and other design improvements, the Direct3D 10 API only targets Direct3D 10-class hardware and later. "

2- (legata alla precedente) posso provare questo famoso geometry shader con questo sdk installato? O meglio, cosa si può sperimentare delle dx10 con questo sdk su una macchina con win xp e una normale nvidia 6600??

3- non proprio una domanda. Avete considerazioni da fare su questa nuova API? Ho notato una novità interessante e piuttosto utile che può essere usata anche con le dx9, ovvero questo toolkit chiamato dxut - che suona molto similmente a glut (se non altro per quell'"utility toolkit" alla fine, accorpato in un sintetico "ut"), e ci assomiglia pure nell'utilizzo. Una bella aggiunta.

shinya
15-12-2005, 11:05
up!

fek
15-12-2005, 11:20
A parte il fatto che sono annichilito dalle novità dello shader model 4.0, con questo geometry shader di cui non riesco ancora ad afferrare le potenzialità, mi sono sorte alcune domande durante la lettura.

Il geometry shader (sarebbe piu' corretto chiamarlo primitive shader) e' un'unita' logica che accetta in input una primitiva, ovvero tre vertici, e fornisce in output da 0 a N primitive di 3 vertici ciascuna. Per dirla in parole povere ora si puo' programmare il tassellatore, quindi a partire da un triangolo, lo si puo' modificare avendo accesso a tutti e tre i vertici, se ne possono creare di nuovi, lo si puo' eliminare. Il modello di programmazione e' il medesimo di vertex e pixel shader, perfetta ortogonalita', quindi anche accesso alle texture .

Possibili usi: displacement mapping adattativo, a seconda della distanza del triangolo lo si puo' tassellare maggiormente, oppure subdivision surfaces, sostanzialmente lo stesso principio.

Prima di eccitarsi troppo, ad avere un fan out maggiore di 1 (escono piu' primitive di quante ne entrano) il rischio e' di inchiodare la GPU ed andare molto piano.

1- per scrivere applicazioni directx 10 ho bisogno sia di windows vista (o comunque di quel modulo che i doc chiamano Windows Vista Display Driver Model (WDDM) infrastructure, e/o (e vorrei sapere se è 'e' od 'o', perchè per me fa molta differenza) di una scheda video - inesistente - che supporta in hardware dx10?

Il rasterizzatore di riferimento software e' perfettamente funzionante e puoi usare quello, sebbene le prestazioni saranno quello che saranno.

"A full set of required functionality: legacy hardware capability bits (caps) have been removed in favor of a rich set of guaranteed functionality. To enable this and other design improvements, the Direct3D 10 API only targets Direct3D 10-class hardware and later. "

Questa e' la vera rivoluzione che "potrebbe" salvare il gaming su PC: un set di funzionalita' garantito, limitando di molto le possibili incompatibilita' fra differenti GPU. Le differenze sarebbero piu' in termini di prestazioni che non di funzionalita'.


2- (legata alla precedente) posso provare questo famoso geometry shader con questo sdk installato? O meglio, cosa si può sperimentare delle dx10 con questo sdk su una macchina con win xp e una normale nvidia 6600??


Puoi sperimentare l'intero set di API, ma girera' tutto in software qualunque scheda grafica hai installata.

shinya
15-12-2005, 19:01
Puoi sperimentare l'intero set di API, ma girera' tutto in software qualunque scheda grafica hai installata.
Alcune demo presenti nell'sdk girano, ma la maggior parte di quelle nella sezione directx 10 non ne vuol sapere.

Per adesso sto giocando con DXUT, che porta con sè anche tutta una serie di widget grafici da poter utilizzare nelle mie demo, molto fighi!
L'unica pecca è che un sorgente directx per me è quasi illeggibile con tutte quelle macro del piffero!
Preferisco OpenGL, ma quando DirectX ti arriva con tutte queste comodità che opengl si sogna, come fai a dir di no?? :)