Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

Oltre a ottimizzare il modo in cui Turing processa la geometria, Nvidia supporta anche un meccanismo per scegliere la velocità alla quale i pixel sono ombreggiati (shading) in diverse parti di una scena per migliorare le prestazioni. Naturalmente l'hardware può comunque fare lo shading di ogni singolo pixel di un modello 1x1. Ma l'architettura facilita anche opzioni 2x1 e 1x2, insieme a blocchi 2x2 e 4x4.

full rate shading

Shading a piena velocità - clicca per ingrandire

content adaptive shading color coded

Content-adaptive shading, codificato con i colori - Clicca per ingrandire

content adaptive shading final output

Content-adaptive shading, risultato finale - Clicca per ingrandire

Nvidia ha illustrato diversi casi in cui uno shading a velocità variabile è funzionale - non bisogna applicarlo ovunque influenzando negativamente la qualità d'immagine. Il primo è definito "content-adaptive shading", dove le parti meno dettagliate di una scena non cambiano così tanto e possono essere ombreggiate a velocità inferiore.

Esiste una build di Wolfenstein II con ombreggiatura a tasso variabile attiva. In questa build potete attivare la visualizzazione della velocità di shading per osservare come gli oggetti complessi non sono affatto influenzati da questa tecnologia, mentre le aree a minor frequenza sono ombreggiate a una risoluzione inferiore. Un numero di passaggi intermedi facilita una maggiore velocità.

Immaginiamo che gli sviluppatori di giochi che cercheranno di sfruttare lo shading a velocità variabile adattandolo al contenuto (content-adaptive) daranno priorità alla qualità rispetto alle prestazioni. Ci piacerebbe tuttavia vedere questa soluzione abilitata come opzione selezionabile in modo che le terze parti possano fare confronti tra la funzione abilitata e disabilitata.

pattern

Clicca per ingrandire

Lo shading "motion-adaptive" è un'altra interessante applicazione della tecnologia di ombreggiatura a velocità variabile di Nvidia, dove gli oggetti che passano rapidamente sono percepiti a una risoluzione inferiore rispetto a qualsiasi soggetto su cui ci stiamo concentrando. In base al vettore di movimento di ogni pixel, gli sviluppatori di giochi possono determinare quanto aggressivamente ridurre la velocità di shading e applicare gli stessi modelli visti nell'esempio sul content-adaptive. Farlo in modo corretto richiede un accurato modello di risposta in frequenza per garantire che vengano usate le giuste velocità quando ci si muove, si accelera, si rallenta.

Nvidia ha presentato una demo di Wolfenstein II con content e motion-adaptive shading abilitati. L'aumento prestazionale attribuito allo shading a velocità variabile in quel titolo è stato nell'ordine del 15%, ma solo perché il gioco girava già a frame rate elevati. Su una scheda video più lenta con un gioco più esigente, sarebbe possibile andare oltre il 20%. Cosa più importante, non c'è un calo percepibile della qualità d'immagine.

Anche se Nvidia non ha detto molto su come queste funzionalità hardware saranno usate dagli sviluppatori, si può assumere che la demo di Wolfenstein II funzionasse sotto Vulkan usando le estensioni dell'API e che Nvidia stia lavorando con Microsoft per l'integrazione nelle DirectX. Fino ad allora esporrà la funzionalità Adaptive Shading tramite l'SDK NVAPI, che permette accesso diretto alle caratteristiche della GPU più di quanto permesso da DirectX e OpenGL.