Dynamic Super Resolution, MFAA, VR Direct, VXGI e DX12

Nvidia ha creato una nuova GPU, GM204, basata sull'architettura Maxwell. Da questa soluzione sono nate GeForce GTX 980 e GeForce GTX 970, due schede video che sfidano le Radeon R9. Abbiamo effettuato benchmark e test di ogni genere per scoprire come si comportano le due nuove arrivate.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Dynamic Super Resolution, MFAA, VR Direct, VXGI e DX12

La GPU GM204 include una grande gamma di nuove funzionalità, davvero tante. Alcune offrono un beneficio immediato agli utenti, altre guardano più al futuro, sia per scopo che implementazione. Partiamo dai benefici immediati.

Dynamic Super Resolution

Dynamic Super Resolution (DSR) è una soluzione che ha il potenziale di ridurre le scalettature ai bordi dei pixel, un effetto noto come "aliasing". In poche parole DSR può essere visto come una forma di "anti-aliasing".

Chi di voi ha familiarità con l'anti-aliasing dovrebbe conoscere la più vecchia forma di anti-aliasing, il Super-Sampling Anti-Aliasing (SSAA). Si tratta della tecnica più antica, probabilmente anche la più esigente, ma è quella visivamente più appagante. L'SSAA renderizza un gioco a risoluzione superiore rispetto a quella a cui è stato impostato il titolo, e fa un down-sampling del risultato a una risoluzione target. Il risultato è che gli artefatti legati all'aliasing sono drasticamente ridotti. Il problema più grande con l'SSA è che è così esigente dal punto di vista delle risorse hardware che la maggior parte dei motori di gioco lo ignorano completamente. A volte può essere forzato dai driver, ma talvolta si tratta di una soluzione instabile.

Ciò che Nvidia offre con DSR è un modo per fornire il super-sampling anti-aliasing aggirando totalmente le limitazioni dell'anti-aliasing integrate nel gioco. Con DSR il motore grafico renderizza a una risoluzione superiore a quella del monitor dell'utente. Le GeForce GTX 970/980 prendono quell'informazione e ne fanno il down-sampling alla risoluzione nativa del monitor - il tutto in tempo reale. Questo permette di avere il beneficio dell'anti-aliasing SSA senza le limitazioni imposte dal gioco, seguendo una via completamente trasparente al motore grafico. Nvidia sostiene che se un motore di gioco è in grado di renderizzare a risoluzioni più alte rispetto a quella nativa, DSR funzionerà senza problemi.

Qual è il lato negativo? Bene, SSAA "ammazza" le prestazioni e anche DSR non è da meno. Selezionando in un gioco una risoluzione virtuale 4K per vederla su un monitor Full HD impartisce un penalty prestazionale pari a quello che avreste renderizzando davvero su un monitor 4K. Ciò potrebbe comportare anche una leggera latenza aggiuntiva durante il downsampling - faremo dei test in merito prossimamente per scoprirlo. In base a tutto questo, DSR si presenta come una soluzione maggiormente indicata per motori di gioco leggeri o vecchi titoli. Se giocate a Counter-Strike a 120 FPS e dettagli massimi, ad esempio, DSR potrebbe essere una modalità eccellente per avere una maggiore qualità visiva senza pregiudicare l'esperienza di gioco.

L'altro fattore limitante di DSR è il fatto che i giochi capaci di gestire una modalità 4K potrebbero non esserlo per quanto concerne l'interfaccia utente. Gran parte dei giochi moderni ha un'interfaccia utente flessibile, con scaling persino selezionabile dall'utente, ma i giochi più vecchi che beneficerebbero di DSR potrebbero rivelarsi inusabili per via dei testi a schermo e degli indicatori troppo piccoli da usare a 3840x2140. DSR non è limitato a quella particolare risoluzione, quindi gli utenti possono optare per risoluzioni come 2560x1440, anche se non sarà così efficace da una prospettiva di anti-aliasing.

DSR è abilitato dal software GeForce Experience e applica risoluzioni personalizzate al gioco che non sono disponibili al monitor. Il pannello di controllo dei driver fornisce controlli per intervenire sulla nitidezza del filtro down-sampling. Questa tecnologia debutta con la GeForce GTX 970 e la GTX 980, ma sarà estesa al resto della gamma di prodotti GeForce nel corso del tempo.

Riteniamo che nonostante i problemi esposti DSR sia una caratteristica fantastica che potrebbe portare i miglioramenti visivi di cui molti giochi graficamente meno avanzati avevano bisogno, specialmente se è retrocompatibile come ci ha detto Nvidia. Dedicheremo a Dynamic Super Resolution dei test specifici in futuro.

Multi-Frame Sampled Anti-Aliasing

Multi-Frame Sampled Anti-Aliasing (MFAA) è un altro metodo di anti-aliasing introdotto con la GeForce GTX 970 e la GTX 980. Come DSR, è basato su una vecchia tecnica e parte del suo appeal è il modo in cui Nvidia l'ha implementato, ovvero è trasparente al motore di gioco e ciò assicura un'ampia compatibilità. La differenza chiave è che mentre DSR è pensato per aumentare la fedeltà nei giochi che sono graficamente al massimo, MFAA è progettato per aumentare le prestazioni senza sacrificare la fedeltà visiva.

Abbiamo scritto che questa tecnica è basata su una soluzione preesistente, e il cuore di MFAA è molto simile a una modalità anti-aliasing introdotta con la Radeon X800 chiamata Temporal MSAA. AMD ha abbandonato questa modalità perché la sua implementazione non era ineccepibile, ma Nvidia sembra averla riportata in vita con un semplice miglioramento che potrebbe rendere MFAA una soluzione di maggiore successo: un filtro di sintesi temporale.

Se non avete familiarità con il Temporal MSAA, si tratta di una tecnica che cambia il modello di filtro MSAA ogni frame alternato. Grazie alla persistenza visiva nell'occhio umano, con frame rate elevati questo comportamento ha l'effetto di apparire simile al risultato generato da un filtro che esegue un campionamento a livelli superiori. Per esempio, il Temporal MSAA 2x può apparire simile all'MSAA 4x, che dal punto di vista delle risorse di calcolo è più pesante e porta ad avere un frame rate inferiore. Il problema con il Temporal MSAA implementato nelle schede Radeon, però, è che si possono palesare artefatti visivi durante movimenti contenuti. Inoltre, avere frame rate elevato è un "must", e quando le prestazioni scendono sotto i 60 FPS l'effetto viene disattivato.

Nvidia dovrebbe aver risolto entrambi questi problemi con l'uso di un filtro di sintesi temporale che tiene conto sia del campionamento dei pixel nel tempo che del movimento nella scena, e poi fa una media per ottenere un risultato. Questo permette a MFAA di lavorare a frame rate sotto i 60 FPS minimizzando gli artefatti in presenza di spostamenti della videocamera del gioco.

Quando la videocamera - ovvero la prospettiva di visione - dell'utente si muove rapidamente MFAA non sarà in grado di tenere il passo, ma la bellezza di questo scenario è che in tale frangente gli artefatti dovuti all'aliasing non emergeranno. In poche parole quando MFAA smette di funzionare per via di molti movimenti, non avrà importanza perché non sarete in grado di notarlo. Se funziona come dice Nvidia, questa modalità fornisce un risultato visivo indistinguibile dall'MSAA 4x con un costo prestazionale simile all'MSAA 2x. MFAA non è presente al debutto di queste nuove schede. Avremo maggiori dettagli sul debutto e l'implementazione a breve.

VR Direct

Spiegati DSR e MFAA, iniziamo a considerare alcune caratteristiche che sono un "work in progress" e che probabilmente non vedranno una grande disponibilità e adozione per alcuni mesi. La prima si chiama VR Direct, ed è un insieme di tecnologie Nvidia che migliorano l'esperienza del giocatore con un head mounted display (HMD) per la realtà virtuale. Avete presente l'Oculus Rift? Sì, una soluzione come quella.

Se siete appassionati di realtà virtuale forse avrete già capito che DSR potrebbe - potenzialmente - offrire un grande beneficio all'Oculus Rift, un prodotto limitato sul fronte della risoluzione. È un prodotto dotato di un singolo schermo 1080p (960x1080 per occhio) e il potenziale di minimizzare l'aliasing a questa risoluzione ridotta è lampante. Anche usare l'MFAA potrebbe aver senso, dato il carico minore sull'hardware. D'altronde l'MFAA 2x ha un impatto sulla latenza più basso rispetto al vero MSAA 4x.

Parlando di latenza, Nvidia ha già iniziato a lavorare sulla riduzione della latenza della pipeline grafica della realtà virtuale. La latenza può essere un fattore che distrugge l'esperienza quando si tratta di HMD perché disaccoppia l'utente dal proprio movimento e inficia l'esperienza. Asynchronous Warp è una tecnologia progettata per combattere la latenza in ambito HMD, eseguendo quanto più lavoro grafico possibile prima del tempo, ricontrollando la posizione dell'HMD in prossimità del momento di rendering e modificando non appena possibile il frame per una migliore sincronia con l'orientamento dell'utente.

Infine, Nvidia ha parlato della possibilità di creare un driver "autostereoscopico". Una delle prime cose che abbiamo pensato osservando l'Oculus Rift è stata che sarebbe stato bello se Nvidia avesse codificato il supporto per gli HMD all'interno dei driver 3D Vision, permettendo agli utenti di sperimentare con giochi esistenti che non hanno un supporto nativo. Qualcuno in Nvidia ha avuto la stessa idea, ma dovremo aspettare per vedere che cosa riuscirà a fare l'azienda.

DirectX 12

Microsoft si è impegnata a garantire la distribuzione della nuova API grafica in tempo per la stagione natalizia 2015. L'implementazione completa è quindi lontana, ma Nvidia afferma che le schede GeForce GTX 970 e GTX 980 sono già compatibili con le DirectX 12.

Se avete sentito parlare della futura implementazione delle Direct3D, probabilmente saprete che una delle caratteristiche chiave delle DirectX 12 è l'overhead ridotto sulla CPU che dà agli sviluppatori un maggiore controllo sulle risorse. Tutto questo include caratteristiche come la "pipeline state simplification" e il "command multithreading" che favoriscono una migliorata allocazione delle operazioni di calcolo tra diversi core della CPU.

Le DirectX 12 però non si limiteranno a sfruttare le risorse della CPU in modo più efficiente, ma offriranno nuove e più efficienti caratteristiche di rendering e tecniche per gli sviluppatori. Tra queste troviamo "rasterizer ordered views", che consente un rendering costante di oggetti semitrasparenti sovrapposti; tiled resources, che abilita la tecnica "megatexture" per la riduzione dell'uso di memoria e la conservative rasterization, un metodo per testare i contenuti di un intero pixel piuttosto che un singolo punto campione, utile per scenari come il rilevamento delle collisioni.

Nvidia ha condiviso molti dati tecnici interessanti su queste caratteristiche, ma considerando il poco tempo offertoci per testare GeForce GTX 970 e 980 non abbiamo molto tempo di entrare nei dettagli. Ci concentriamo piuttosto sulle nuove schede video e torneremo a parlare di DirectX 12 in futuro. Molte di queste caratteristiche saranno distribuite con le DirectX 11.3, un aggiornamento che coinciderà con le DirectX 12 per portare questi aggiornamenti ai videogiocatori che usano ancora Windows 7.

Voxel Global illumination

La Voxel Global Illumination (VXGI) di Nvidia è forse la caratteristica più ambiziosa inclusa nella GPU GM204 - non fa parte del GM107 della serie GTX 750. VXGI rappresenta un ripensamento complessivo al modo in cui sono fatti i giochi, una transizione verso un modello di illuminazione globale realistico che i giocatori non hanno mai sperimentato prima in tempo reale.

VXGI usa voxel space e voxel cone tracing per fornire un'approssimazione realistica dell'illuminazione, molto più veloce da calcolare rispetto ai metodi di ray tracing 3D standard. Iniziamo definendo alcuni termini. "Voxel" è un combinazione delle parole "volume" e "pixel", e rappresenta un volume in una griglia tridimensionale nello spazio. Immaginate la stanza in cui vi trovate ora completamente piena di box invisibili impilati strettamente tra loro fino al soffitto. Ognuno di questi box rappresenta un voxel, un volume in uno spazio 3D. La griglia voxel è usata come una struttura dati per immagazzinare l'emissione di luce e i dati di opacità.

Cone tracing è una tecnica che usa differenti risoluzioni di voxel lungo un percorso di luce per archiviare dati su come la luce impatta sugli oggetti in questo percorso. Tutto questo è efficiente dal punto di vista dei calcolo all'aumentare della dimensione dei voxel (la risoluzione cala) con la luce nel cono che si muove più lontano rispetto al suo ultimo rimbalzo.

Il rendering è eseguito in tre passi: la "voxelizzazione" della scena, l'iniezione della luce e infine il risultato finale. Durante quest'ultima fase la geometria viene renderizzata, la luce valutata e la luce indiretta è raccolta per produrre un risultato fotorealistico.

Nvidia ha dimostrato VXGI con l'uso di una demo di un atterraggio lunare. Questa demo ricrea realisticamente una famosa immagine dell'allunaggio originale: sembra autentica ed è davvero stupenda per una demo in tempo reale. Detto questo, è stata dimostrata su un sistema con due GeForce GTX 980 in SLI, aveva un numero di modelli 3D ridotto situati in uno spazio aperto e una singola sorgente di luce. I requisiti di calcolo effettivi di VXGI sono elevatissimi.

Sotto molti aspetti VXGI è una tecnologia più orientata agli sviluppatori che ai consumatori, almeno in questo momento. Potenzialmente semplifica il modo in cui i giochi vengono creati: con gli attuali motori di gioco, gli effetti di luce devono essere apposti sulle texture in una scena. Con VXGI tutto verrebbe renderizzato in tempo reale, rimuovendo importanti passaggi nel processo di creazione e permettendo agli sviluppatori di fare cambiamenti senza aggiungere carico. 

Riteniamo che l'illuminazione globale e il path tracing rappresentino l'inevitabile futuro della grafica dei videogiochi. Dal punto di vista dei consumatori però VXGI si presenta come una tecnologia dirompente ma acerba. Siamo abbastanza scettici sul fatto che GeForce GTX 970 e 980 siano abbastanza veloci da effettuare l'elevatissimo numero di calcoli richiesto dalla voxel global illumination per renderla una soluzione usabile nel corso dei prossimi due anni. Detto questo VXGI può essere usata per dare agli attuali modelli di illuminazione maggiore realismo senza eliminarli completamente. A ogni modo, in futuro, questa tecnologia sarà integrata nell'Unreal Engine 4 - nell'ultimo trimestre di quest'anno. Siamo davvero ansiosi di vedere l'effetto di VXGI sia sulla fedeltà visiva che le prestazioni.