4. VRWorks & Ansel


Concludiamo questa lunga carrellata spostando l'attenzione sull'ecosistema di API dedicate alla realtà virtuale, racchiuse sotto l'ombrello VRWorks, e su Ansel, la nuova piattaforma "artistica" che nei piani di NVIDIA è destinata a rivoluzionare il modo in cui catturiamo i nostri momenti di gioco.


VRWorks

ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 1


Non entreremo troppo nel dettaglio, dato che ci servirebbero almeno altre dieci pagine e, probabilmente, finiremmo con l'appesantire eccessivamente questa recensione, ma ci soffermeremo su quelle che sono le novità più interessanti per l'ambiente VR introdotte con Pascal.

Alcune, come il Lens Matched Shading, il Single Pass Stereo e il Multi-Res Shading, dedicate alla grafica, le abbiamo già viste, di altre, come VR SLI, abbiamo parlato in precedenza dato che non sono una novità strettamente legata a Pascal e ci dedicheremo quindi a VR Audio e PhysX for VR (VR Touch & PhysX).

Queste ultime due, infatti, traggono massimo vantaggio dalla nuova GPU NVIDIA e garantiscono un livello di immersione superiore nell'esperienza VR che, per essere totale, non può certamente prescindere dai suoni e dalle esperienze tattili.


VRWorks Audio

La gestione dell'audio posizionale degli attuali videogiochi e simulazioni VR si basa principalmente sull'effetto binaurale, ovvero sulla differenza che percepiamo tra un orecchio e l'altro in merito al tempo e alla potenza di arrivo dell'onda sonora diretta che riproduce l'audio del gioco.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 2


Questo significa ad esempio che il gioco, per farci percepire un pericolo incombente sul nostro lato destro, come ad esempio un nemico che si muove o ci spara, riprodurrà prima e con intensità maggiore il suono sul canale destro e successivamente, in maniera attenuata, su quello sinistro per dargli una maggiore accuratezza posizionale in un ambiente 3D simulando un effetto di "spazializzazione".

In realtà, però, le cose non funzionano proprio così dato che i suoni si propagano in direzioni multiple e non sono sempre e solo diretti verso di noi, anzi, rimbalzano, sono diffusi o assorbiti dalle superfici che incontrano a seconda del materiale di cui sono costituite, dalla loro forma e dimensioni.

Sono quindi i suoni indiretti, quelli riflessi e i riverberi che rendono un suono veramente reale e tridimensionale.

Per far sì che l'esperienza VR sia veramente immersiva è quindi necessario modellare diversamente il suono ed è grazie alle capacità computazionali di Pascal, unitamente a PhysX, che NVIDIA ha creato VRWorks Audio, un tool che utilizza gli algoritmi di ray tracing OptiX per generare raggi che rappresentano i percorsi di propagazione delle onde sonore attraverso una scena di VR prima che raggiungano le orecchie dell'utente.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 3


Questi raggi sono generati in modo da tracciare i percorsi sonori diretti e quelli indiretti, ovvero smorzati, deviati o riflessi dalle altre superfici presenti nell'ambiente virtuale, che possiamo considerare come la geometria della scena, in base all'angolo di impatto e ai parametri del materiale di cui sono composti.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 4


VRWorks Audio, in collaborazione con OptiX, crea dunque l'effetto audio binaurale cui siamo abituati durante le sessioni di gioco per i suoni diretti, aggiungendo poi effetti di audio indiretto che ci forniscono, come nella realtà, informazioni sulle dimensioni e struttura dello spazio VR in cui ci stiamo muovendo.


VR Touch

Un altro aspetto fondamentale che conferisce maggiore realismo a un'esperienza VR è sicuramente la reazione dell'ambiente alle nostre azioni (sia essa di tipo aptico o visivo) e, ovviamente, una riproduzione il più fedele possibile di quella che è la fisica degli oggetti rappresentati.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 5


Per questi scopi PhysX for VR utilizza le API PhysX e l'algoritmo Constraint Solver per modellare la fisica dell'ambiente virtuale il più realisticamente possibile e per determinare quando i controller interagiscono con l'ambiente in modo tale da consentire al motore grafico di fornire una risposta aptica fisicamente e visivamente accurata.


Ansel

Pensata, stando a quando dice NVIDIA, per i creativi, la piattaforma Ansel offre la possibilità di catturare momenti di gameplay come mai era stato possibile prima.

Tutte le applicazioni, infatti, utilizzano il punto di vista del personaggio principale, mentre con Ansel è come se avessimo a disposizione un "operatore virtuale", all'interno della scena, che si può muovere a piacimento catturando immagini che possiamo poi elaborare direttamente come più ci piace.

Grazie a questa videocamera libera possiamo quindi staccarci dal punto di vista del personaggio e muoverci all'interno della scena, andando così a comporre lo scatto che vogliamo da qualsiasi angolazione e posizione o anche creare immagini stereo o a 360° dell'ambiente di gioco da poter utilizzare sul PC, in un dispositivo VR o, anche, sul nostro smartphone tramite l'app NVIDIA VR Viewer (in beta per Android).

Per rendere tutto questo possibile, NVIDIA ha scelto una strada molto semplice fornendo agli sviluppatori una libreria da integrare nel motore del gioco che permettesse poi ai driver di interagire con essa andando ad attingere tutte le informazioni necessarie per la generazione delle immagini desiderate in maniera totalmente trasparente al gioco.

NVIDIA ha inoltre standardizzato anche il set di comandi di implementazione e controlli dell'interfaccia, i primi lato sviluppatori ed i secondi per gli utenti finali, in modo da renderne ancora più agevole l'integrazione e l'utilizzo.

In maniera molto banale, durante le sessioni di gioco se Ansel sarà attivo (e il gioco lo supporterà) avrà il controllo della camera libera del titolo che stiamo utilizzando e, leggendo i dati forniti dal motore grafico, proporrà all'utente una lista di opzioni disponibili per quel titolo.

Nel caso si decidesse di utilizzarlo, Ansel semplicemente metterà il gioco in pausa e ci presenterà un menu di opzioni con cui poter manipolare l'immagine negli svariati modi che andremo ora a presentare.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 6


Da questa schematizzazione si può capire meglio l'architettura di Ansel, con alla sommità della struttura le funzionalità legate alla camera libera e all'interfaccia utente e, in successione, tutti i blocchi di funzionalità supportate con alla base, ovviamente, la GPU NVIDIA deputata allo svolgimento di tutti i calcoli necessari per la loro implementazione.


Camera libera

Come già detto, è la caratteristica base su cui poggiano le promesse rivoluzionarie di Ansel: la possibilità di manipolare lo screenshot cambiando angolazioni e punto di vista a nostro piacimento per catturare ogni situazione nel modo che più ci aggrada e non solo come ci appare sullo schermo mentre giochiamo.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 7  ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 8 


Ecco a confronto un'immagine tradizionale e quanto realizzabile utilizzando Ansel e la funzionalità di camera libera in The Witcher 3: Wild Hunt.

Ma non è detto che tutti i giochi supportino questa funzionalità in quanto ci potrebbero essere delle situazioni in cui, per adattarsi alle diverse potenze di calcolo dell'hardware utilizzato, gli sviluppatori potrebbero decidere di non renderizzare la scena da tutti i punti di vista o, semplicemente, limitare la visuale del giocatore in modo tale da non fornirgli troppi vantaggi.


Immagini a 360°

Ansel può ovviamente catturare anche immagini a 360° che vengono poi salvate come proiezioni planari svolte e debitamente calcolate per rendere successivamente l'esperienza di visualizzazione importando l'immagine sullo smartphone e muovendolo a 360° o usando un semplice Google Cardboard (il visore VR in cartone di Google).


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 9 


Immagini a Super Risoluzione

L'effetto Super Resolution di Ansel permette di registrare screenshot ad altissima risoluzione indipendentemente da quanto consentito dal gioco: la risoluzione supportata su entrambi gli assi dipende infatti solo dallo spazio su disco e dalla velocità di registrazione.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 10 


Una volta catturata l'immagine, è possibile visualizzare un'infinità di dettagli in quanto Ansel si collega direttamente al motore del gioco e forza il massimo livello di dettaglio generando la miglior immagine possibile che il motore grafico è in grado di riprodurre.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 11 


Per ottenere il miglior risultato possibile vengono applicati automaticamente effetti di supersampling ed effettuato anche uno stitching (cucitura) automatico delle immagini, quello che solitamente si fa in Photoshop per le composizioni di più immagini relative a uno stesso soggetto, in moto tale da compensare tonalità e colori.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 12 


Questa operazione, eseguita direttamente in hardware in un singolo passaggio con uno stitcher basato su CUDA, è necessaria per avere un'immagine omogenea quando si creano composizioni di grandi dimensioni, realizzate quindi con diversi screenshot uniti, e consente la creazione di immagini sino a 4,5 gigapixel composte da un massimo di 3600 "sub-immagini" unite tra loro, con tonalità e luminosità uniformi che si possono a loro volta modificare per trovare quella più adatta alle nostre esigenze.


Cattura EXR

Ansel supporta la cattura degli screenshot in formato EXR, uno standard aperto definito dagli studi Industrial Light and Magic per le immagini HDR.

Dato che l'EXR in Ansel supporta una precisione singola a 16 bit (FP16), lo screenshot può essere acquisito in formato RAW e successivamente elaborato in Photoshop come se fosse stato scattato da una normale fotocamera digitale permettendoci di regolare parametri fondamentali come l'esposizione.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 13 


Integrazione "in game" e post processing

La cosa sicuramente più interessante riguardo la completa integrazione di Ansel con i giochi è il fatto che tutte i dati relativi alle primitive e alle informazioni colore sono sempre a sua disposizione, potendo quindi utilizzare le API di post processing a livello di singolo shader permettendo l'applicazione di una vasta gamma di effetti con qualsiasi gioco lo supporti.


ASUS ROG STRIX GeForce GTX 1080 OC e GTX 1070 OC 4. VRWorks & Ansel 14


L'elenco degli effetti gestiti da Ansel è decisamente vasto e degno di rivaleggiare con strumenti dedicati quali Photoshop in quanto supporta l'applicazione di curve colore, trasformazioni cromatiche, filtri di convoluzione (sharpening, blur, edge detection, passa alto/passa basso), filtri ed effetti di distorsione, filtri di correzione gamma, filtri per la manipolazione delle tonalità colore e molti altri ancora.