Directx 12 Ultimate, il futuro ha inizio

directx 12 ultimate

Il 19 Marzo scorso, durante il DirectX Developer Day, Microsoft ha finalmente svelato le nuove librerie DirectX 12 Ultimate. L’obiettivo è principalmente quello di unificare sempre di più l’esperienza di gaming tra PC e Xbox.
Oltre che a integrare il massimo supporto alla tecnologia del Ray Tracing, conferiscono anche una maggiore libertà di manovra agli sviluppatori, che potranno contare su delle nuove tecniche.
Questo potrebbe essere davvero un punto di svolta per le console next-gen, con la Xbox Series X in pole position.
Iniziamo con ordine e vediamo queste nuove tecniche in dettaglio .

IL RAY TRACING

Cos’é il Ray Tracing? Detto molto semplicemente, il Ray Tracing è una tecnica di Rendering che punta a simulare realisticamente il percorso della luce in una scena, conferendo illuminazione, ombreggiature e effetti di riflessione molto naturali.
Questa tecnica è relativamente nuova nell’industria del gaming, ma non in quella cinematografica.
Per esempio il film Cars. realizzato da Disney Pixar nel 2006, utilizzava già la tecnologia del Ray Tracing per gli effetti di ombreggiatura e illuminazione.
E qui la domanda sorge spontanea: Perché non lo hanno implementato prima?
Semplice (in realtà no), perché nel gaming è richiesto il Ray Tracing in tempo reale, cosa che richiede grandissimo sforzo computazionale.


Esempio di RTX su METRO Exodus direttamente dal canale YouTube di Nvidia GeForce

VARIABLE RATE SHADING

Il VRS è la prima delle tre tecniche introdotte da Microsoft durante la diretta streaming del 19 Marzo.
Permette agli sviluppatori di poter scegliere come rendere parti diverse di una scena con livelli di qualità differenti. In pratica potranno decidere in che parti della scena ridurre il tasso di Shading e in quali parti invece aumentarlo. Ciò significa che le prestazioni saranno maggiori e, allo stesso tempo, il carico di lavoro della GPU verrà ridotto.

geforce vrs
Esempio di VRS fatto da Nvidia applicato a un frame di un gioco di corsa

L’esempio mostra il frame di un gioco di corsa nella quale sono evidenziate le aree visive più e meno importanti. Le parti azzurre in alto e al centro sono le aree dove si concentra di più lo sguardo, e che quindi richiedono un maggior dettaglio, mentre ai lati e in basso, dove si concentra meno l’attenzione, i valori di Shading sono inferiori, permettendo così di alleggerire il carico di lavoro.

MESH SHADING

Con il Mesh Shading la GPU controlla in modo intelligente il livello dei dettagli, riducendo il lavoro della CPU e facendosi carico di calcoli molto complessi.
Nella demo qui sotto ci sono 350mila asteroidi, ciascuno composto da 10 milioni di poligoni al massimo. Facendo un rapido calcolo ci sono circa 3.5 milioni di poligoni da processare.
Per avere un po’ più di dettagli tecnici a riguardo vi lascio il link all’articolo (in inglese) dedicato di Nvidia.

Demo dedicata alla spiegazione del Mesh Shading sul canale YouTube NvidiaGameWorks

SAMPLER FEEDBACK

Un po’ come il VRS, visto in precedenza, il Sampler Feedback punta a ridurre il carico di lavoro della GPU e migliorare le prestazioni. Gli sviluppatori lo possono sfruttare per implementare nei loro giochi algoritmi di streaming delle texture.
Il risultato? Mondi aperti con texture ad alta risoluzione senza “pop-in” o saltellamenti di qualche tipo.
Il Sampler Feedback può essere utilizzato anche per implementare lo shading dell’area della texture, per un rendering più efficiente.

Qui trovate anche l’articolo pubblicato da Nvidia.
Per concludere, vi lascio questo video preso dal canale YouTube di Nvidia per un recap completo e generale riguardo gli argomenti trattati.