Come abbiamo visto, Nvidia con il chip GF100 ha migliorato l'architettura grafica, sconvolgendo in parte o potenziando le sue precedenti soluzioni grafiche. Essendo la nuova Gpu GF100 studiata per supportare le nuove API DirectX 11, andiamo a vedere quali innovazioni tecnologiche offrono per rendere gli ambienti di gioco sempre più dettagliati e coinvolgenti.
I tre elementi "cardine” delle directX11 sono:
- Tessellation: Direttamente implementata nella GPU per calcolare superfici curve in modo più armonioso, consentendo quindi di ottenere immagini graficamente più dettagliate.
- Multi-Threading: Maggior supporto e scalabilità per le CPU multi-core.
- DirectCompute: La possibilità di usare schede video discrete per accelerare videogiochi e applicativi d'uso comune.
Il funzionamento dell'unita di Tessellation non è complicata e permette di partire da un modello 3D poco complesso, per arrivare ad uno molto complesso senza appesantire troppo la GPU.
Un tessellatore prende un poligono e lo suddivide in molti triangoli per amplificare il dettaglio dell'oggetto, applicando ricorsivamente una regola di suddivisione.
Con la tecnologia tessellation si potranno introdurre nei giochi dei personaggi ultra dettagliati e renderizzati in tempo reale che ricorderanno molto quelli dei film di animazione. Tutto è gestito via hardware. I benefici di questa tecnologia paiono evidenti, più poligoni significano maggiori dettagli e perciò maggiore realismo.
In poche parole, questa tecnica consente di aumentare in maniera esponenziale il numero di triangoli per la sua riproduzione, con un livello di dettaglio che è variabile a seconda del punto di osservazione (più questo è vicino, maggiori saranno i triangoli generati così da incrementare il realismo dell'oggetto).
Vediamo di seguito come il tessellation lavora durante una sessione di Heaven Benchmark v2.0 e Stone Giant :
Le DirectX 11 introducono anche lo Shader Model 5.0 offrendo cosi agli sviluppatori un approccio di programmazione ben indirizzato. Questa è l'ultima evoluzione dello shader model, dopo quello 4.0 implementato con le API DirectX 10 e lo shader model 3.0 delle prime architetture DirectX 9.0c.
Interessante è la Gestione Multi-threading: Le nuove directX 11 gestiscono in modo più efficiente rispetto alle precedenti i processi multithreading. Le applicazioni DirectX runtime e DirectX driver possono ora essere eseguite in threads separati. Altre operazioni, come il caricamento di una texture, possono avvenire in parallelo con il principale task di rendering della scena. Questa nuova implementazione nelle API permetterà agli sviluppatori di "ottimizzare" al meglio le cpu Multi-threading, dosando in maniera omogenea il carico di lavoro. In questa maniera si potranno ottenere prestazioni decisamente più elevate con le cpu multi-core.
Le nuove directX 11 implementano la possibilità di usare schede video discrete per accelerare videogiochi e applicativi d'uso comune. Questa nuova funzione, prende il nome di DirectCompute.
Le applicazioni di DirectCompute includono la fisica, il ray-tracing, l'intelligenza artificiale, il post processing dell'immagine, la trasparenza order-independent e il rendering delle ombre, oltre alla transcodifica video con Cuda di Nvidia e Stream di ATi.