Che cos'è il Variable Rate Shading (VRS)

Che cos'è il Variable Rate Shading (VRS)

Il Variable Rate Shading (VRS) rappresenterà una delle tecnologie cardine dei videogiochi dei prossimi anni. Supportata dalle nuove console come Playstation 5 e Xbox Series X, ma anche dalle GPU desktop di Nvidia, AMD e Intel, permetterà di avere maggiori prestazioni senza perdere qualità grafica in modo visibile. In questo articolo vi spieghiamo di cosa si tratta.

di pubblicato il nel canale Schede Video
NVIDIAAMDMicrosoftSonyXboxPlaystationIntelXeTuring
 

Variable Rate Shading è un termine che nei prossimi mesi entrerà nel lessico dei videogiocatori. L'abbiamo sentito per la prima volta da Nvidia, alla presentazione delle schede video basate su GPU Turing, e in seguito da Microsoft, che ha implementato la tecnologia dapprima nelle API DirectX 12 su PC e successivamente annunciato il supporto da parte di Xbox Series X.

"La nostra forma brevettata di VRS permette agli sviluppatori di usare in modo più efficiente la piena potenza di Xbox Series X. Anziché spendere cicli di calcolo della GPU per ogni singolo pixel sullo schermo, gli sviluppatori possono dare priorità ai singoli effetti sui personaggi di un gioco o importanti oggetti ambientali. Questa tecnica porta a frame rate più stabili e maggiore risoluzione, senza impatto sulla qualità d'immagine finale".

AMD ha successivamente confermato il pieno supporto al Variable Rate Shading (VRS) con l'architettura grafica RDNA 2, che sarà sia alla base delle future GPU dell'azienda in arrivo entro fine anno che delle nuove console di Microsoft e Sony. La spiegazione tecnica data da Microsoft per quanto concerne Xbox Series X è ancora "all'acqua di rose", ma in occasione dell'implementazione nelle DirectX 12 la casa di Redmond è stata senz'altro più dettagliata. Spieghiamo quindi cos'è questo Variable Rate Shading e come può cambiare la vita di sviluppatori e giocatori.

Variable Rate Shading spiegato in modo facile

Il Variable Rate Shading è una nuova API che permette agli sviluppatori di usare le GPU in modo più intelligente. Gli sviluppatori possono allocare la potenza della GPU su aree specifiche dell'immagine di gioco, ad esempio determinati personaggi, un veicolo e la pista su cui si muove o altro, e meno su altre aree che si possono definire "secondarie".

Clicca per ingrandire

Il resto dell'immagine fuori dal focus del videogiocatore può essere riprodotto con un livello grafico leggermente inferiore, permettendo così alle GPU di raggiungere FPS, frame rate al secondo, più elevati. Non bisogna dimenticare che infatti che su una schermata di gioco solo una frazione delle aree richiede il massimo dettaglio, mentre le altre possono anche perdere qualche "sfumatura" poco importante ai fini della qualità complessiva, ma importante per guadagnare prestazioni.

Prendete ad esempio un gioco di corse automobilistiche: è necessario riprodurre al massimo del dettaglio grafico le vetture e la strada, ma al tempo stesso non è importante se il pubblico sugli spalti è leggermente meno definito. D'altronde le auto si muovono rapidamente e l'attenzione dei nostri occhi è su altri aspetti. L'impatto visivo per il videogiocatore è di conseguenza nullo o quasi, ma le prestazioni migliorano sensibilmente.

Variable Rate Shading spiegato in modo difficile

Per molti l'articolo potrebbe concludersi qui, ma passiamo a una spiegazione leggermente più tecnica. D'altronde il Variabile Rate Shading (anche noto come coarse pixel shading) è l'unione di termini ben precisi, e la traduzione è "shading a tasso variabile". Shading vuol dire "ombreggiatura", e si tratta di un'operazione alla base della computer grafica che descrive come le superfici (mesh poligonali) rispondono alla luce in base alle proprie caratteristiche, l'angolo di impatto della luce, di visione di chi osserva e altri aspetti. Insomma, lo shading definisce i livelli appropriati di luce, oscurità e colore in un'immagine renderizzata dalla vostra GPU.

Qui entra in gioco il termine "rate", ossia tasso o velocità. Unitamente a "variable", VRS descrive un tasso di ombreggiatura variabile, ossia la risoluzione alla quale gli shader vengono "chiamati", da non confondere con la risoluzione dello schermo. Uno shader è un insieme di algoritmi che durante il processo di rendering svolgono, per l'appunto, l'operazione di shading.

Per ogni pixel sullo schermo, gli shader sono chiamati a calcolare come dovrebbe apparire il colore di un pixel. Maggiore è il tasso di ombreggiatura, più alta è la fedeltà visiva, ma anche l'impatto sulle prestazioni di calcolo, di cui si occupa la GPU. Un minor tasso di shading significa l'opposto, ossia minore fedeltà visiva e impatto prestazionale più contenuto.

Tradizionalmente, la velocità di shading stabilita dagli sviluppatori a un gioco viene applicata su tutti i pixel di un'immagine. Il problema, se così vogliamo definirlo, è che "non tutti i pixel sono uguali". Con il VRS gli sviluppatori hanno la facoltà di ridurre selettivamente il tasso di shading nelle aree dell'immagine che non influenzano la qualità visiva, guadagnando così prestazioni. In questo modo non solo una GPU può raggiungere velocità più alte, per esempio 90 anziché 65 fps, ma allo stesso tempo anche hardware di fascia più bassa (meno potente) è in grado di far girare un gioco più rapidamente dello stesso titolo senza supporto VRS.

Illustrando l'integrazione nella API DirectX 12, Microsoft ha parlato di tre modi differenti per impostare il tasso di shading: "per draw", "in un draw (within-draw) usando una screenspace image" e "all'interno di un draw, per primitiva". Un "draw" non è altro che l'operazione di disegno degli oggetti a schermo. Un'immagine screenspace è lo spazio delle coordinate dell'immagine 2D risultante durante il rendering 3D, ovvero il risultato della proiezione 3D sulla geometria nello spazio della telecamera. La primitiva rappresenta invece l'oggetto geometrico più semplice che un sistema può gestire.

Ci sono inoltre due versioni, chiamate Tier, per identificare i differenti tipi di hardware e supporto al Variabile Rade Shading (VRS). L'hardware che può supportare in hardware il VRS per draw è indicato come Tier 1. Il Tier 2 è invece l'hardware compatibile anche con il VRS per-draw e within-draw.

Implementazione Tier 1. Una parte ha il VRS, l'altra no: quale? La differenza è impercettibile - Clicca per ingrandire

Permettendo agli sviluppatori di stabilire il tasso di ombreggiatura per draw, differenti draw call - chiamate che vengono fatte alla API grafica (Direct3D in questo caso) al fine di riprodurre gli oggetti - possono avere diversi tassi di shading. In questo modo uno sviluppatore può creare asset ambientali di grandi dimensioni o altri elementi con un tasso di shading inferiore, mantenendo invece un tasso di shading più alto per asset più dettagliati di una scena.

Come scritto prima, l'hardware Tier 2 dà agli sviluppatori ulteriore flessibilità. "Consentendo agli sviluppatori di indicare il tasso di shading usando una screenspace image, si aprono le possibilità per una varietà di tecniche. Per esempio", spiega Microsoft, "il foveated rendering renderizza gran parte del dettaglio nell'area in cui l'utente ripone attenzione e riduce gradualmente il tasso di shading fuori da quell'area per migliorare le prestazioni. In un FPS, l'utente probabilmente presta molta attenzione al mirino e poca ai bordi estremi dello schermo, il che rende gli FPS un candidato ideale per questa tecnica".

Il tasso di shading per primitiva significa che gli sviluppatori possono indicare, all'interno di un draw, il tasso di shading per triangolo. Tale tecnica può essere applicata dagli sviluppatori che sanno che andranno ad applicare una sfocatura della profondità di campo per renderizzare con un tasso di shading più basso i triangoli oltre una certa distanza. Ciò non porterà a una riduzione della qualità visiva ma a un aumento delle prestazioni, in quanto i triangoli lontani risulteranno comunque sfocati.

Implementazione Tier 2. La parte sinistra è quella con VRS attivo - Clicca per ingrandire

Gli sviluppatori non devono scegliere tra queste tecniche, in quanto Microsoft consente di combinarle allo stesso tempo. Microsoft ha illustrato l'impatto del VRS sui giochi collaborando con Firaxis e sfruttando dell'hardware Nvidia esistente. La software house ha aggiunto sia il supporto per draw che per screenspace image a Civilization.

Prima di implementare il VRS, il sistema con una GeForce RTX 2060 a 4K ha raggiunto un frame rate di circa 53 fps. Aggiungendo il supporto Tier 1, riproducendo terreno e acqua con un tasso di shading inferiore e gli altri asset più piccoli come veicoli, interfaccia utente e costruzioni con un tasso di shading maggiore, le prestazioni sono cresciute del 20% con un peggioramento della qualità pressoché nullo.

Il rosso indica le aree dove il tasso di shading è impostato su 1x1 (più ombreggiatura, maggiori dettagli), quelle blu invece dove è 2x2 (meno shading, dettagli minori)

Con Tier 2, Firaxis ha implementato la screenspace image riducendo molto l'impatto negativo sulla qualità dell'immagine e registrando un aumento degli FPS del 14%. VRS sarà supportato non solo da Nvidia e AMD ma anche da Intel. L'azienda ha già mostrato un primo test con l'hardware grafico integrato Gen11 e una demo chiamata Sun Temple realizzata con l'Unreal Engine 4, quindi aspettiamoci il supporto anche sulla nuova architettura Xe delle future schede video dedicate.

Per quanto concerne i motori di gioco e titoli, realtà come Ubisoft, Activision, Epic Games, 343 Industries, Unity, Playground Games, Massive Entertainment e Turn10 stanno già lavorando da mesi sul VRS, che quindi diventerà, complici le nuove console, una caratteristica pressoché standard dei giochi dei prossimi anni.

VRS in salsa Nvidia? Nvidia Adaptive Shading (NAS)

Nvidia è stata la prima con le GPU Turing a implementare il Variable Rate Shading sotto forma di Nvidia Adaptive Shading (NAS), tramite due algoritmi che prendono il nome di Content Adaptive Shading (CAS) e Motion Adaptive Shading (MAS). Nel primo caso il tasso di shading è legato alla coerenza spaziale e temporale dei colori tra i frame, nel secondo alla quantità di movimento presente in una particolare parte della scena.

NAS è stato implementato in Wolfenstein: Youngblood con tre impostazioni qualitative chiamate Quality, Balanced e Performance, con ognuna che ha differenti compromessi in termini di qualità e prestazioni. Usando Balanced o Quality il calo qualitativo è limitato, che invece si fa leggermente più aggressivo in Performance, anche se è visibile a un occhio allenato e principalmente confrontando immagini statiche. NAS, secondo Nvidia, può accelerare le prestazioni del gioco di MachineGames fino al 15%.

Content Adaptive Shading prevede l'impatto dell'ombreggiatura a velocità ridotta e lo fa solo se ci si aspetta che l'impatto sia impercettibile. Grazie alla funzione VRS sulle GPU Turing, il tasso dell'ombreggiatura può essere impostato affinché vari in modo indipendente per ogni riquadro 16x16 sullo schermo (pensate alla schermata come una scacchiera), consentendo una distribuzione attenta dello shading sulle decine di migliaia di tile che compongono la schermata. In generale, minore è il contrasto e la variazione degli oggetti che c'è in una scena, inferiore è il tasso di shading che può essere fatto senza ridurre la qualità visiva.

Il Motion Adaptive Shading si avvantaggia di effetti in stile motion blur per ridurre il tasso di shading quando ci si sposta e gira all'interno di un gioco. Nvidia ha spiegato che il Motion Adaptive Shading si ispira a un fenomeno chiamato "LCD persistence blur" legato ai monitor. Fino a poco tempo fa, tutti gli schermi potevano essere aggiornati solo a intervalli fissi (refresh rate fisso), quindi gli oggetti erano visualizzati con movimenti a scatti (seppur veloci e in genere non percettibili). Allo stesso tempo, i nostri occhi cercavano di seguire l'oggetto con un movimento lineare e sulla nostra retina l'immagine "tremava" rapidamente, portandoci a percepire un'immagine sfocata. Oltre alla sfocatura dello schermo, diversi motori di gioco aggiungevano del motion blur al rendering, raddoppiando così l'effetto di sfocatura.

LCD persistence blur e motion blur nascondevano le imperfezioni dell'immagine legate a una riduzione del tasso di shading. La sfocatura non celava però tutti i livelli di imperfezione dell'immagine in modo simile, ridimensionando la perdita in modo proporzionale. Usando teorie sull'elaborazione del segnale ed eseguendo simulazioni per assicurarsi di applicare i migliori fattori di ridimensionamento a ogni velocità di movimento, Nvidia è in grado di ridurre con MAS il tasso di shading degli elementi sfocati del gioco senza che gli occhi notino alcuna differenza, garantendo così migliori prestazioni.

19 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Paganetor01 Aprile 2020, 16:49 #1
interessante!
Per restare in tema di corse automobilistiche, è la versione evoluta delle texture degli spettatori "appiccicate" lungo la pista. Ti accorgevi che erano dei cartonati solo mettendo in pausa, altrimenti nemmeno ci facevi caso.

Questo però va un po' in controtendenza rispetto ai fanatici della qualità assoluta, che fanno uno screenshot di un videogioco e analizzano pixel per pixel la scena commentando questo o quel difetto. Un po' come avviene con la fotografia digitale: ormai ci si concentra più sulla perfezione tecnica (accettabile ad esempio con lo still life) che sul soggetto vero e proprio (in un momento particolare ripreso al volo si può evitare di guardare il micromosso e ci si può concentrare sull'avvenimento).

E in tutto questo come si inserisce il ray tracing?
dwfgerw01 Aprile 2020, 16:50 #2
@redazione

Dove avete letto esattamente che ps5 supporterá questa tecnologia? Non è scritto da nessuna parte mi pare.
matsnake8601 Aprile 2020, 17:09 #3
Tira via di qui... tira via di là...
Checkerboard a manetta e voilà... 4k 60fps sulle prossime consoles. .

Non credo che siano tecnologie che interessano alla master race.
davi9201 Aprile 2020, 18:45 #4
Originariamente inviato da: matsnake86
Non credo che siano tecnologie che interessano alla master race.


La master race oramai è roba per ricchi e youtuber che spammano pubblicità di hw, agli altri gli toccherà giocare con un PC scassone peggiore delle console
jepessen01 Aprile 2020, 19:03 #5
Gia' immagino la moltitudine di ragazzi che analizzeranno i fermo immagine per dimostrare quanto faccia cagare la grafica andando ad ingrandire queli 16 pixel all'angolino...
aldo87mi01 Aprile 2020, 20:02 #6
Io abilitando il NAS in Wolfenstein Youngblood sinceramente non ho notato differenze grandi in termini di prestazioni però ho riscontrato alcuni difetti, come i lampeggiamenti o fasci di luce. Ad esempio ho notato che mettendomi di fronte a una superficie riflettente, spesso si vedono lampeggiamenti che non ci sono se disabilito il NAS. Stessa cosa l'ho notata con il DLSS 2.0 su On.
Inoltre, quando il NAS è attivo, il ray tracing spesso riflette in modo "tagliato" gli oggetti, cioè con delle lievi imperfezioni.
La cosa migliore in base alle varie prove che ho fatto è stata quella di mettere NAS su off, DLSS su off e TAA su on. Odio la TAA (con tutto me stesso) perché rende i colori sbianditi, annacquati e cartooneschi però la cosa è risolvibilissima aumentando il valore dell'Image sharpening dal pannello di controllo Nvidia: mettendolo tra 0.50 e 0.70 ho risolto gran parte dei problemi
Gyammy8502 Aprile 2020, 09:30 #7
Originariamente inviato da: matsnake86
Tira via di qui... tira via di là...
Checkerboard a manetta e voilà... 4k 60fps sulle prossime consoles. .

Non credo che siano tecnologie che interessano alla master race.


Mannaggia oh, ma tornassimo alle dx7 con tutto nelle texture e via, che tanto a de wiccer si gioca lo stesso!!

Ma quali console che ora mi attacco la 2080ti ai a ci metto dlss3,9.9 che con ia mi downscala a 320x200 quello che non serve e mi guardo i raggi rimbalzare!

Non sia mai che si fermi il damage control sulle console, aspetta ma mica sarà perché montano da anni solo hardware amd? mmmhhh fammi pensare……..

Originariamente inviato da: jepessen
Gia' immagino la moltitudine di ragazzi che analizzeranno i fermo immagine per dimostrare quanto faccia cagare la grafica andando ad ingrandire queli 16 pixel all'angolino...


Vuoi mettere col dlss3,9.9 che con ia mi downscala a 320x200 quello che non serve e mi guardo i raggi rimbalzare a 43,2 fps per secondo?
mircocatta02 Aprile 2020, 10:34 #8
dlss, vrs, risoluzioni dimaniche, mesh shading* ecc ecc...boh, solo a me ste cose fanno venire l'orticaria?
seriamente spendiamo fior di centoni in hardware per poi ritrovarci ad utilizzare dei compromessi?







*su questa tecnologia mi riservo ancora qualche dubbio
Legolas8402 Aprile 2020, 12:04 #9
Dal mio punto di vista è come per il DLSS 2.... se non presenta differenze con l'originale e fa schizzare in alto gli FPS ben venga.

Se invece degrada (anche di poco) non fa per me.

Poi, scusate, ma se come nel caso del DLSS 2 non ci sono differenze tra immagine trattata ed originale 4K il problema dove sta?

Alla fine quello che conta è la resa finale....
noppy102 Aprile 2020, 14:29 #10
Tutti guardano filmati che usano codec video che prevedono la perdita di informazioni e nessuno grida allo scandalo, il VRS è qualcosa che si può accostare come concetto, se implementato nel modo corretto perchè lamentarsi ?
Anche il nostro occhio cala di qualità allontanandosi dal centro, ha pure una zona "buia" ( https://it.wikipedia.org/wiki/Punto_cieco ) che viene colmata attraverso una ricostruzine fatta dal nostro cervello, per non parlare del fatto che vediamo solo 25 immagini al secondo, a quanto pare il compromesso fa parte della natura di questo universo.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^