Home Page Home Page News DirectX 9 Summer Update

DirectX 9 Summer Update

Una breve panoramica delle novità introdotte in questa release di DirectX a distanza di 9 mesi dalla precedente. High Dynamic Range, Spherical Harmonics e molto altro.
Recentemente Microsoft ha rilasciato la nuova release del DirectX SDK chiamata http://msdn.microsoft.com/library/default.asp?url=/downloads/list/directx.asp ">"Summer Update".
Non sono stati introdotti cambiamenti sull?API, oramai stabilizzata dai tempi di DirectX8, ma solo aggiunte alla libreria ufficiale "di supporto" D3DX.
E' davvero riduttivo definire D3DX una libreria di supporto, perché nelle ultime release è stata enormemente ampliata. Oltre a forti migliorie/bugfix dell'HLSL (High Level Shading Language), un linguaggio ad alto livello finalmente mette fine al supplizio di dover scrivere i vertex e pixel shader in ASM, sono davvero tante le novità.

High Dynamic Range Rendering
E? stato aggiunto il supporto per il loading di immagini in formato HDR. Per avere più informazioni so cos'è l'HDR, non c'è niente di meglio che visitare il sito del ?papà? di questa tecnica applicata alla Computer Grafica: www.devebec.org.
D3DX ora si occuperà di gestire il loading di queste immagini, creando le apposite texture in formato A32R32G32B32 dove ogni canale è rappresentato da un valore in floating point, e non più da un semplice byte. Per chi non ha voglia di visitare il sito citato sopra, si capisce da dove deriva il nome di questa tecnica "High Dynamic Range", ora i calcoli di illuminazione possono essere fatti in uno spazio più ampio (un high range appunto) e si possono rappresentare valori di illuminazione molto alti o molto bassi. Le tecniche HDR sono fondate sulla natura fisica della luce. Per i calcoli si utilizzano le stesse unità di misura della fotometria, dove, per esempio, al sole viene assegnato un valore di luminosità milioni di volte più grande di quello del monitor del vostro PC.
L?SDK contiene anche un?applicazione di prova chiamata HDRLighing che utilizza tecniche abbastanza avanzate di HDR (Tone Mapping Etc), che vedrete nei tanto acclamati giochi di prossima generazione (Half Life 2 in particolare).

ScreenShot Preso dalla demo di High Dynamic Range della Ati Radon 9700
ScreenShot Preso dalla demo di High Dynamic Range della Ati Radon 9700



Spherical Harmonics
L?altro versante sul quale Microsoft ha ampliato D3DX sono state le Spherical Harmonics. Per chi volesse conoscere bene tale tecnica rimando all?home page di uno dei suoni "inventori" http://research.microsoft.com/~ppsloan/ ">http://research.microsoft.com/~ppsloan/  e ad un documento più leggero matematicamente http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.html  ">http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.html 
Per chi si accontenta di una spiegazione "alla buona"(data la vastità dell'argomento) posso dirvi che le Spherical Harmonics sono uno strumento matematico che permette di ricostruire una funzione bidimensionale a bassa frequenza partendo da una matrice di coefficienti. Si può pensare ad essa come ad una specie di serie di Fourier a 2 dimensioni per ricostruire dei "segnali" (fermo restando che sono strumenti matematicamente diversi). Esse sono nate durante lo studio della teoria degli orbitali in chimica ma, come spesso accade, la computer grafica prende in prestito quello che gli serve e lo usa.
I "segnali" che vengono ricostruiti, sono le funzioni di "Radiance Transfer" su ogni vertice di una mesh, che calcolano quanta luce arriva e quanta ne riparte da ogni punto di una mesh. Matematicamente questo si fa con un integrale emisferico su ogni punto (o vertice) della mesh in questione. La novità delle Spherical Harmonics è che sono invarianti alla rotazione (la rotazione della funzione sotto l'integrale è uguale alla rotazione dell'integrale sotto la funzione) e quindi l'integrale può essere calcolato con un prodotto scalare a più dimensioni (dipendente dal numero di bande che si decide di creare). In soldoni questo vuol dire che si può avere un moto rotativo relativo tra la luce (che dev'essere per forza direzionale, questa è una delle assunzioni di partenza della teoria) e la mesh, senza bisogno di ricalcolare tutti i coefficienti.
Gli esempi dell'SDK che usano questa tecnica sono SHIrradianceEnvMap e SHPRTVertex.
SHIrradianceEnvMap costruisce una mappa di environment che da all?oggetto un'illuminazione "indiretta" proveniente da una mappa di environment HDR. Vedete alcuni esempi di irradiance Environment Mapping qui sotto. Guardate come l'oggetto prende un'illuminazione diversa in base all?ambiente nel quale si trova.



Immagine presa dal paper :
"Fast, Arbitrary BRDF Shading for Low-Frequency Lighting Using Spherical Harmonics" di
Jan Kautz, Peter-Pike Sloan2 and John Snyder2
Max-Planck-Institut für Informatik, Saarbrücken, Germany
Microsoft Research, Redmond, WA, USA

Exporters
Gli esportatori in formato .X per Maya e 3DStudio Max sono stati aggiornati, per eliminare i numerosissimi bug presenti nelle vecchie versioni.

Animazioni
Le interfacce per l'animazione e lo skinning dei personaggi di D3DX è stata anche ampliata, permettendo l'uso di animazioni multiple e il blending, per rendere più naturali le transizioni tra un?animazione ed un?altra. L'esempio MultiAnimation comprende queste migliorie.
Aggiunto il supporto per la compressione delle animazioni, il looping e la gestione di eventi associati a particolari keyframes attraverso l?utilizzo di callback registrabili.

Effect Files
LìEffect File Framework diventa migliore ad ogni release, questa volta è stato introdotto il concetto di Parameter Blocks e il tracking degli stati, per evitare di impostare renderstate ridondanti, causa di notevole degrado delle performance soprattutto sui PURE DEVICE.

.NET
La documentazione per l'interfaccia Managed è stata notevolmente migliorata (non che ci volesse molto dato che era inesistente nella release ufficiale di DirectX9). Ovviamente potete usare tutte le bellezze di cui abbiamo prima anche nel vostro linguaggio managed preferito.

News Collegate


Non è presente nessuna news collegata. Torna all'elenco news 
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5