Siamo vicini a un nuovo salto di generazione nelle librerie DirectX e la versione 11 offre un ulteriore miglioramento di qualità della visualizzazione rispetto alle precedenti versioni 10 e 10.1.
Le novità principali presenti in DirectX 11 sono diverse, come per esempio la tassellazione, gli shader model 5, DirectCompute 11 e la gestione del multithreading. Dal punto di vista della compatibilità , le Gpu DirectX 10 potranno utilizzare solo un subset delle funzionalità DirectX 11. L'uso di tutte le funzionalità , compreso DirectCompute11, della nuova versione sarà possibile solamente con Gpu DirectX11.

Per i sistemi operativi, funzionerà con Windows 7 e Windows Vista con un apposito upgrade. Per i giochi DirectX 11, invece, a settembre è previsto l'arrivo di BattleForge di EA Phenomic, mentre nel quarto trimestre del 2009 dovrebbero essere disponibili S.T.A.L.K.E.R.: Call of Pripyat di GSC Gameworld e DiRT2 di Codemasters. Nel primo trimestre del 2010, invece, si prevede l'arrivo di Lord of the Rings Online di Turbine e Aliens vs. Predator di Rebellion.
[tit:Gli Shader model 5]
Gli Shader utilizzati da DirectX 11 sono quelli model 5 e offrono un nuovo set di istruzioni che aumenta la flessibilità nell'accesso e la manipolazione dei dati.
Un passaggio importante è l'unificazione fra i vari tipi di shader come il Vertex, Geometry, Pixel, Compute e i nuovi Hull e Domain. Il modello è object oriented, con funzioni e routine che semplificano lo sviluppo del codice.
Tra le nuove istruzioni ci sono quelle per convertire i valori dei dati in floating point dal formato a 32 bit a quello a 16 bit, oppure quelle per la manipolazione delle istruzioni per accelerare la compressione e decompressione dei dati. La funzione SV_Coverage, per esempio, fornisce informazioni sui campioni ai pixel shader, cosa che permette di rilevare gli angoli per ottimizzare l'anti aliasing. Sono inoltre facilitate da altre funzioni le operazioni di filtraggio delle ombre e di ambient occlusion.
[tit:DirectCompute 11]
Dal punto di vista degli shader, diamo uno sguardo alle principali differenze fra DirectCompute 10 e DirectCompute 11.
DirectCompute, è un'API (Application Programming Interface) di DirectX come lo sono Direct3D e Direct2D. Questa API consente di sfruttare le capacità di elaborazione parallela delle Gpu, in modo da migliorare le prestazioni.
Tra le principali differenze, occorre segnalare che il numero di thread gestibili simultaneamente passa da 768 dei DirectCompute 10 a i 1024 della versione 11, cosa che si traduce nella possibilità di eseguire
fino al 33% in più di thread per ottenere migliori prestazioni. Anche la memoria disponibile per le comunicazioni fra i thread è stata aumentata, passando da 16 a 32 KByte. Con DirectCompute 11 sono stati introdotti dei miglioramenti anche nella gestione della memoria condivisa, che prima era limitata un'area di 256 KByte, mentre ora è possibile la lettura e la scrittura su tutti i 32 Kbyte, migliorando l'I/O di questa sezione.
Sono stati realizzati dei miglioramenti anche sull'accesso ai buffer.
Con DirectCompute 11 ogni shader può accedere a più buffer, incrementando la flessibilità del sistema. Inoltre, anche i pixel shader possono accedere ai compute shader per l'interoperabilità con la pipeline di rendering.
In DirectCompute 11 ci sono anche delle funzionalità non presenti nella versione precedente. Per esempio ora sono supportati in calcoli floating point in doppia precisione, a 64 bit. Un'altra nuova funzionalità si chiama Atomic Operation permette a ogni thread di operare in locazioni protette di memoria. Questo semplifica notevolmente l'implementazione di algoritmi per Cpu nelle Gpu.

Un ulteriore esempio sono gli append/consume buffer, utili per costruire e accedere a dati in forma di liste o stack. DirectCompute 11 contribuisce anche a semplificare l'Oit (Order indipendent trasparency) ordinando i pixel trasparenti in un solo passaggio degli shader.
[tit:Tessellation]
Uno degli aspetti più innovativi in DirectX 11 è quello definito tassellazione. La pipeline 3D di Direct3D 11 presenta tre stadi aggiuntivi nella pipeline che sono chiamati Tessellator, Hull shader e Domain shader. Questi stadi permettono di realizzare diverse implementazioni fra cui quella nota come suddivisione di Catmull-Clark.

La tassellazione nelle DirectX 11 è programmabile tramite i due nuovi tipi di shader (l'Hull shader e il Domain shader) e il funzionamento adattativo e continuo permette di ottenere un livello dinamico dei dettagli.
In pratica la tassellazione di DirectX 11 permette di avere più poligoni, che offrono la possibilità di avere molti più dettagli e il livello cambia in continuazione. Questo diventa evidente nella riproduzione dei personaggi, oppure in quella dei vestiti (per esempio le pieghe degli abiti) e nelle scene in movimento.
[tit:Le altre novità ]
Fra le altre innovazioni presenti in DirectX 11 c'è la tecnica di Hdao (High definition ambient occlusion) permette di rilevare gli avvallamenti nella geometria delle scene e provvede a scurirle in funzione della profondità . Un'altra funzione dedicata alle ombre provvede a renderle ancora più realistiche rispetto alle DirectX 10.1 diminuendone la nitidezza in funzione della distanza dai punti di contatto.

Un'altra novità di DirectX 11 è la compressione delle texture. La compressione può arrivare sino a un rapporto di 6:1 e il sistema permette di ridurre gli artefatti nelle texture a 8 bit compresse. à‰ stata migliorata anche la gestione delle trasparenze.
Sul versante del multithread, le applicazioni, i moduli runtime DirectX 11 e i driver DirectX 11 possono funzionare in thread separati, mentre task come quelle relative al caricamento di texture possono essere eseguite in parallelo con i thread principale di rendering di DirectX.
Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con le notizie di
BitCity.it iscriviti alla nostra
Newsletter gratuita.