VXGI | Tecnologia Voxel Global Illumination | NVIDIA

Tecnologie

Tecnologia Voxel Global Illumination
divider

Tecnologia VXGI

La Voxel Global Illumination (VXGI) è un'innovazione sensazionale che offre luci, ombre e riflessi di incredibile realismo ai giochi per PC e ai motori di gioco di nuova generazione.

La corretta modellazione della luce è uno dei problemi di calcolo di maggiore difficoltà in ambito grafico. Con Maxwell il nostro obiettivo era quello di compiere un enorme balzo in avanti nella capacità della GPU di eseguire calcoli delle luci quasi foto-realistici in tempo reale.

Nel mondo reale, tutti gli oggetti sono illuminati da una combinazione di luce diretta (fotoni che viaggiano direttamente da una sorgente luminosa per illuminare un oggetto) e luce indiretta (fotoni che viaggiano dalla sorgente luminosa, colpiscono un oggetto rimbalzano su di esso per poi colpirne un secondo, illuminandolo così indirettamente). La cosiddetta “Illuminazione Globale” (GI) è un termine che definisce i sistemi di illuminazione in grado di modellare questo effetto. Senza l'illuminazione indiretta, le scene possono sembrare troppo "dure" e artificiali. Tuttavia, mentre la luce ricevuta direttamente è abbastanza semplice da calcolare, i calcoli della luce indiretta sono altamente complessi e pesanti.

Scena renderizzata con la sola illuminazione diretta

Scena renderizzata con la sola illuminazione diretta.

Scena renderizzata con la tecnologia NVIDIA VXGI abilitata

La stessa scena con la GI abilitata. Notare la luce indiretta e i riflessi speculari sul pavimento.

Dal momento che si tratta di una tecnica di illuminazione dispendiosa (in particolare nelle scene molto particolareggiate), la GI è stata usata principalmente per il rendering di scene in CG complesse per i film, ricorrendo a rendering farm di GPU offline. Sebbene alcune forme di GI siano già usate in molti dei maggiori successi videoludici attuali, le loro implementazioni si sono sinora affidate all'illuminazione pre-calcolata. Queste tecniche sono usate per ragioni di performance; tuttavia, necessitano di particolari sforzi e illustrazioni addizionali, dato che gli effetti di illuminazione desiderati devono essere calcolati in precedenza. Dal momento che l'illuminazione precalcolata non è dinamica, è spesso difficile, per non dire impossibile, aggiornare le sorgenti di luce indiretta quando si verificano cambiamenti all'interno del gioco; pensiamo, per esempio, all'aggiunta di un'ulteriore sorgente luminosa o al fatto che qualche componente della scena si muova o venga distrutto. I modelli di illuminazione diretta precalcolati simulano gli oggetti statici della scena, ma non si possono applicare correttamente ai personaggi animati o agli oggetti in movimento.

Nel 2011, i tecnici di NVIDIA hanno sviluppato e dato dimostrazione di un approccio nuovo e innovativo al calcolo di una forma rapida e approssimata di illuminazione globale in modo dinamico e in tempo reale sulle GPU. Questa nuova tecnologia GI utilizza una griglia di voxel per archiviare le informazioni sulla scena e l'illuminazione, e un nuovo processo di Voxel Cone Tracing per raccogliere i dati dell'illuminazione indiretta dalla griglia dei voxel. Cyril Crassin di NVIDIA descrive la tecnica nel suo approfondimento sul tema; un video del GTC 2012 è disponibile qui. Il demo tecnologico ‘Elemental’ dell'Unreal Engine 4, che risale al 2012, utilizzava una tecnica similare.

Il demo tecnologico 'Elemental' di Epic Unreal Engine 4 usava il Voxel Cone Tracing per la sua GI mozzafiato

Il demo tecnologico 'Elemental' di Epic Unreal Engine 4 usava il Voxel Cone Tracing per la sua GI mozzafiato.

Da quel momento, NVIDIA è al lavoro sulla nuova generazione di questa tecnologia — la VXGI — che combina nuovi algoritmi software e una speciale accelerazione hardware nell'architettura Maxwell.

La "Cornel Box"

Nel 1984 ricercatori della Cornel University hanno sviluppato una semplice scena da usare come esperimento per il rendering della grafica. L'idea era di mantenere semplice la scena in modo che le loro immagini generate al computer potessero essere confrontate alle foto più facilmente.

Immagine generata usando la tecnologia di rendering NVIDIA iray

L'immagine precedente è stata generata usando la nostra tecnologia di rendering iray all'avanguardia che si avvale della potenza di numerose GPU eseguite in parallelo nel cloud per renderizzare fotorealisticamente quasi in tempo reale. Questa immagine è molto vicina all'aspetto che la Cornel Box avrebbe nel mondo reale.

L'obiettivo della tecnologia VXGI, comunque, è l'esecuzione in tempo reale, ma l'esecuzione di un ray-tracing completo della scena è troppo intensa dal punto di vista del calcolo, quindi sono richieste approssimazioni.

Vista Opacity Voxel della stessa scena

L'immagine qui sopra mostra una vista Opacity Voxel della stessa scena. Ciascun cubo è una vista grezza della geometria sottostante che possiamo usare per accelerare i calcoli di illuminazione.

Il calcolo del colore e dell'intensità della luce che colpisce i voxel viene eseguito usando tecniche esistenti e molto rapide di illuminazione diretta

La vista Emissive Voxel è quella nella quale si crea la magia. Immagina che ogni cubo (voxel) sia illuminato direttamente da qualsiasi luce diretta si trovi nella scena. Possiamo calcolare correttamente il colore e l'intensità della luce che colpisce i voxel usando tecniche esistenti e molto rapide di illuminazione diretta. La novità, tuttavia, sta nella fase successiva, che vede questi voxel illuminati agire come sorgenti luminose, generando luce indiretta.

Visione della luce riflessa dalle superfici colpite dalle sorgenti luminose dirette originali

I colori di questa immagine possono sembrare un pochino confusi. Iniziamo concentrandoci sulle pareti. La parete che era rossa ora ha una luminescenza verde pallido, mentre la parete verde ha una luminescenza rosso pallido. Questo è causato dal fatto che ogni parete ora assorbe una parte del colore emesso dal lato opposto della stanza. La parete rossa sta anche gentilmente illuminando la palla più vicina ad essa e così via. In effetti, stiamo guardando la luce riflessa dalle superfici colpite dalle sorgenti luminose dirette originali.

Per generare scene di incredibile realismo si devono sommare tutte le luci

Sommando tutte le luci assieme, si possono generare scene di incredibile realismo. Il punto chiave, comunque, è che usando la tecnologia VXGI possiamo fare tutto quanto in tempo reale.