Ray Tracing nei videogiochi: cos’è? Come funziona? Perché è così importante? Se vi frullano in testa queste domande allora siete nel posto giusto.
In questo approfondimento troverete le risposte che state cercando ma non temete, ogni concetto sarà semplificato ai minimi termini, in modo che tutti lo possano comprendere.
L’articolo cercherà di farvi capire come funziona realmente questa tecnologia e perché è ancora terribilmente prematura, seppur a tratti rivoluzionaria.
Indice
Ray Tracing cos’é?
Il ray tracing è una tecnica di rendering che esiste da decenni nel campo della grafica 3D e di recente ha mosso i suoi primi passi anche nel settore dei videogiochi.
Tutto ha avuto inizio nel 2018, quando Nvidia ha annunciato le schede video della serie RTX. GPU dotate di un nuovo componente hardware con la capacità di accelerare i calcoli in ray tracing.
Tecnologia che ha permesso agli sviluppatori di implementarlo in tempo reale nei videogiochi, promettendo veri e propri miracoli.
Ray Tracing: a cosa serve?
L’obiettivo del ray tracing è quello di simulare il comportamento della luce nel modo più realistico possibile. Per comprendere i suoi applicativi bisogna però capire anche le leggi fisiche che regolano il nostro mondo, nonché l’importanza della luce stessa.
Tutto ciò che osserviamo, giorno dopo giorno, è dovuto alla luce. Senza luce non esisterebbero i colori, i riflessi, le ombre, le rifrazioni… nulla sarebbe visibile.
Il ray tracing ha il compito di riprodurre il comportamento della luce all’interno di un rendering 3D per ottenere immagini fedeli a quella che è la realtà che ci circonda.
Questa ricerca della fedeltà non si limita però al campo del fotorealismo (come molti potrebbero pensare), perché le leggi fisiche legate all’illuminazione trascendono il contesto. Per capirci: se troviamo uno specchio in un videogioco ci aspettiamo di vedere il nostro riflesso anche in un mondo immaginario.
Esistono varie tecniche per generare riflessi nei videogiochi. In alcuni casi assistiamo a un rendering della stessa scena disegnata in modo speculare (uno dei primi giochi a farne un uso pratico ai fini narrativi fu Shenmue su Sega Dreamcast ndr), in altri si tratta di approssimazioni come il cube mapping o lo screen space reflection.
Allo stesso modo esistono tecniche per simulare l’illuminazione globale, le fonti di luce, le ombre, l’occlusione ambientale, le rifrazioni e tutti gli altri elementi che rendono plausibile un rendering 3D. Sono soluzioni che sono state sviluppate nel tempo. Se prendiamo un videogioco di venti anni fa e lo paragoniamo a un titolo moderno, i miglioramenti sono sotto gli occhi di tutti.
Allora perché c’è così tanto clamore attorno al ray tracing? Perché il suo obiettivo è quello di alzare l’asticella qualitativa, con una precisione mai vista prima, scavalcando tutti i limiti legati alle tecniche di illuminazione in raster.
Ray Tracing: come funziona?
Quando apriamo una finestra i raggi del sole entrano nella nostra stanza e la luce si propaga. Quando colpisce le superfici degli oggetti inizia a rimbalzare in tutte le direzioni, scontrandosi contro altri oggetti e mischiandosi con altre fonti di luce (magari di colore diverso).
Alla fine arriva ai nostri occhi che la catturano per poi inviare le informazioni al cervello. Il cervello le elabora e ci permette di osservare l’ambiente circostante in tutta la sua complessità. Un ambiente fatto di ombre, riflessi, rifrazioni e tante sfumature di colore.
Il ray tracing vuole fare proprio questo: simulare nel miglior modo possibile il comportamento della luce con tutto ciò che comporta. Per farlo applica il principio del tracciamento dei raggi, dal quale prende il nome. Cerchiamo di semplificare il concetto ai minimi termini.
Rendering in Ray Tracing
Il ray tracing nei videogiochi prevede il tracciamento dei raggi a partire dal punto di vista dell’osservatore. Il percorso inverso rispetto alla luce naturale. L’osservatore siamo noi che stiamo osservando l’immagine finale riprodotta sul nostro schermo, sottoforma di un mosaico di pixels colorati.
Nella realtà il percorso della luce può essere interrotto e generare delle ombre, o magari essere deviato dal riflesso di un secondo oggetto, o ancora passarci attraverso nel caso di oggetti trasparenti. Le potenziali variabili sono quasi infinite. Le proprietà della luce si combinano poi con quelle dei materiali. Si verificano cambiamenti di colore che poi rimbalzano su altre superfici ancora, generando nuove sfumature e nuove ombre, anche in base all’angolo di impatto.
Il tracciamento procede sino alla sorgente (o le sorgenti) di luce virtuale presente nella scena. Il risultato di tutti questi rimbalzi genera l’immagine finale che possiamo osservare sul nostro pannello.
Un processo che richiede una gargantuesca quantità di calcoli. Per questo si è sempre adoperato in quei settori dove non ci si deve preoccupare troppo del tempo di rendering, come il cinema d’animazione dove un singolo fotogramma viene renderizzato anche in decine di ore.
Ma i videogiochi sono un medium molto diverso. I fotogrammi vanno renderizzati alla massima velocità possibile, è il principio del frame-rate che tutti noi appassionati conosciamo molto bene (se volete approfondire la questione vi consigliamo un nostro precedente articolo).
Per questo non si era mai parlato di ray tracing in tempo reale nel nostro settore. Fino a qualche anno fa era pura fantascienza e ancora oggi, nonostante i primi acceleratori hardware, non è possibile gestire questa tecnologia al pari degli altri media o come in altri ambienti lavorativi.
Ciò a cui assistiamo sono soluzioni particolari e parzialmente inedite, accompagnate da nuove tecnologie che hanno lo scopo di agevolarne l’implementazione. Per comprendere la reale entità del ray tracing nei titoli che dicono di farne uso, dobbiamo prima ripercorrere l’evoluzione dei videogiochi 3D.
Videogiochi 3D: complesse simulazioni
Un videogioco è per sua natura una simulazione. Con simulazione non si intende, in questo caso, una riproduzione fedele della nostra realtà, può essere anche una realtà diversa con diverse regole, per esempio un universo fantasy.
Tutto ciò che vediamo a schermo è la simulazione di qualcosa, al di là del contesto. Se vediamo un albero, non è un vero albero. Se ci specchiamo in un corso d’acqua, non è un vero riflesso e quella non è acqua. Sono tutti elementi simulati e noi stiamo osservando una semplice immagine bidimensionale riprodotta dal nostro schermo.
L’equivalente di un mosaico, solo che generato dal nostro dispositivo e poi inviato al televisore. All’interno di questo mosaico ci sono tutti gli elementi e le strutture che compongono il mondo di gioco, compresi colori, materiali, superfici ecc ecc.
Un singolo mosaico prende il nome di fotogramma. La nostra sorgente disegna continuativamente tanti fotogrammi in successione che ci trasmettono la sensazione di movimento.
I videogiochi moderni però sono tridimensionali, trasmettono anche un senso di profondità e i modelli degli oggetti o dei personaggi occupano una sorta di volume virtuale. Come facciamo a visualizzarli se l’immagine finale è in realtà piatta?
Un’infarinatura di Rasterizzazione
Interviene un processo chiamato rasterizzazione. È la tecnica di rendering usata per i videogiochi 3D moderni.
Gli oggetti che vediamo a schermo sono composti da triangoli (i famosi poligoni). Questi triangoli hanno forme e dimensioni differenti e contengono informazioni sulla loro posizione nello spazio, il loro colore e altri elementi ancora.
La rasterization è in pratica la conversione di questi modelli poligonali in pixel, visualizzati poi su di un pannello 2D. A partire dalle informazioni contenute nei vertici si assegna un valore di colore iniziale a ogni pixel, al quale segue un secondo e importantissimo processo chiamato shading.
Dai poligoni ai mondi virtuali passando per lo shading
È attraverso lo shading che si calcola l’impatto delle luci nella scena e sulle texture per stabilire poi il colore finale del pixel. L’immagine risultante si compone quindi anche di luci, ombre, sfumature, riflessi e rifrazioni, nonché di molti altri effetti, alcuni applicati in post-processing.
Nel corso degli anni, di pari passo con l’avanzamento hardware, la grafica dei videogiochi ha seguito un percorso evolutivo fatto di nuove tecniche, nuove soluzioni e nuove approssimazioni, per simulare nel miglior modo possibile tutti gli elementi del rendering, compreso il comportamento della luce.
Quindi non è che senza Ray Tracing non si possano simulare luci, riflessi e rifrazioni. La propaganda attorno a questa tecnologia potrebbe spingerci a pensarlo ma in realtà si è sempre fatto.
Il ray tracing nei videogiochi, allo stato attuale, è solo un nuovo strumento nelle mani degli sviluppatori. Uno strumento potentissimo ma che richiede un investimento di risorse fuori dalla portata degli hardware contemporanei.
Per questo ad oggi non abbiamo videogiochi davvero in ray tracing. Ciò a cui assistiamo prende il nome di rendering ibrido.
Il Rendering Ibrido
La vera rivoluzione iniziata con le RTX non risiede nella tecnologia del ray tracing di per sé, ma negli strumenti messi a disposizione degli sviluppatori. L’abbiamo già detto molte volte, quando si parla di grafica e videogiochi non esistono regole assolute perché resta in prevalenza un’arte.
Se nel cinema o nell’architettura ci si può sbizzarrire per ottenere risultati sorprendenti, nel mondo dei videogiochi sono i compromessi a farla da padrone. Si lavora di approssimazioni e si studiano tecniche alternative, perché tutto va renderizzato molto velocemente.
Ogni team sfrutta le sue conoscenze e le tecnologie di cui dispone per ottenere il miglior compromesso possibile e i risultati variano come sempre da singolo gioco a singolo gioco.
Per far fronte al peso computazionale del ray tracing, gli sviluppatori hanno adottato soluzioni che possiamo definire ibride. In pratica i giochi continuano a basarsi sulla classica rasterizzazione ma presentano alcuni elementi calcolati attraverso il tracciamento dei raggi in tempo reale. Su PC sono anche sempre opzionali, disattivabili nelle impostazioni grafiche del gioco.
Diversi esempi di Ray Tracing nei videogiochi
L’arrivo delle soluzioni ibride ha aperto le porte a diverse sperimentazioni.
Gli sviluppatori oggi sanno che possono tentare la via del ray tracing opzionale ma consapevoli che dovranno poi lavorare di ottimizzazione, sia sulle console di nuova generazione, sia su PC (dove è necessario coprire più configurazioni possibile).
I primi giochi a fare uso di ray tracing ci offrono quindi soluzioni diverse a seconda del singolo prodotto, alcune più efficaci di altre ma tutte molto pesanti da gestire. Vediamone insieme alcune.
Marvel’s Guardian of the Galaxy: riflessi in tempo reale
Nel gioco de I guardiani della galassia, sviluppato da Eidos-Montréal, possiamo attivare il Ray Tracing ma viene applicato solo ed esclusivamente su alcune superfici riflettenti e si tratta di una grossa approssimazione.
Tuttavia possiamo notarne l’efficacia quando ci troviamo dinanzi a qualche elemento che prevede una riflessione, come ad esempio la cupola metallica dell’astronave che si apre quando vogliamo scendere a terra.
Nella maggior parte degli scenari però il Ray Tracing è praticamente assente e già così ha un impatto devastante sulle prestazioni.
Su console di nuova generazione il preset che lo prevede è bloccato a 30fps, contro i 60 della modalità performance, e comporta anche un netto calo della risoluzione di rendering rispetto al preset qualità. Tutto per poter visualizzare qualche riflesso aggiuntivo su alcune specifiche superfici.
The Witcher 3: global illumination e ambient occlusion
CD Projekt ha dichiarato di aver applicato il ray tracing alla global illumination di The Witcher 3 con la patch di nuova generazione, generando anche l’ambient occlusion in tempo reale.
Non serve approfondire ulteriormente perché l’abbiamo già fatto con un articolo dedicato che vi consigliamo di leggere, ma dobbiamo soffermarci ancora una volta sul costo in termini di performance.
Anche nel gioco di CD Projekt il ray tracing si paga a caro prezzo. Su Xbox Series X e PlayStation 5 la modalità dedicata non solo si muove a 30fps ma subisce anche una drastica riduzione in termini di definizione, a causa di un eccessivo abbassamento della risoluzione di rendering.
Parliamo di un gioco del 2015. Migliorato sotto svariati aspetti ma pur sempre ancorato alla complessità e agli asset di otto anni fa. Con il ray tracing ottiene un rinvigorimento evidente (il gioco risulta molto più gratificante alla vista) ma il prezzo da pagare è altissimo. Lo è anche su PC dove molti utenti si sono lamentati dei vistosi cali di frame-rate.
Portal RTX: il massimo esponente
Per poter vedere in azione un ray tracing degno di tal nome dobbiamo ripescare un prodotto concepito nel 2007, Portal di Valve. Portal ha seguito un percorso simile a quello di altre produzioni anziane (come Quake II) grazie a una rivisitazione recente basata sull’implementazione di pesanti algoritmi di ray tracing.
Portal RTX è di fatto un esempio lampante dei miglioramenti dovuti a questa tecnologia, sebbene sia stata appiccicata sopra a un prodotto di sedici anni fa migliorato attraverso la suite RTX Remix di Nvidia.
Le tecnologie alla base di Portal RTX
Al di là dell’aumento in termini di complessità di alcuni asset e i miglioramenti sulle textures, il vero passo avanti è dovuto all’uso di tecniche avanzate come RTX Direct Illumination, ReSTIR GI (funzione che va a ottimizzare la proiezione delle luci indirette nelle zone più buie) e l’NVIDIA Real-Time Denoisers.
Nonostante la semplicità concettuale dell’ambiente 3D originale, il gioco ha subito una vera e propria trasformazione che lo ha però reso uno dei prodotti più pesanti in assoluto.
I requisiti sono altissimi. Una RTX 3060 offre risultati giusto accettabili e per un’esperienza soddisfacente occorre salire a una RTX 3080 che con una risoluzione di 1920*1080 e DLSS attivo può arrivare a 60fps.
Insomma, Portal RTX è tutto fuorché accessibile. Il ray tracing è una tecnologia ancora elitaria, che salvo pesanti approssimazioni rischia di funzionare dignitosamente solo sui PC di una nicchia di giocatori.
Cyberpunk 2077 un’anteprima del futuro
Ultimo in ordine arrivo sul mercato è Cyberpunk 2077, aggiornato di recente con la patch RT Overdrive.
Si tratta di un titolo davvero particolare, perché ci permette di introdurre il concetto commerciale di Path Tracing e di analizzare due versioni distinte, separate da un upgrade gratuito.
I giocatori PC di Cyberpunk 2077 hanno avuto modo di selezionare diversi livelli di precisione in ray tracing fin dal lancio del gioco. Selezionando l’opzione Ultra (o psycho) si ottenevano risultati sorprendenti, soprattutto per quanto riguarda riflessi e rifrazioni, presenti in grande quantità dato il contesto urbano futuristico.
La patch RT Overdrive non si limita a migliorare ulteriormente gli elementi in ray tracing già presenti, ma applica il tracciamento dei raggi a tutta la scena 3D, coinvolgendo anche l’illuminazione globale, le ombre, l’occlusione e la propagazione stessa della luce a 360 gradi nell’ambiente virtuale.
Si parla in questo caso di Path Tracing o Full Ray Tracing ma all’atto pratico il principio di funzionamento è il medesimo. Chiamarlo in un modo o nell’altro ha senso solo ai fini comunicativi dei produttori.
Dal punto di vista tecnico invece è un applicativo del ray tracing più preciso, più ampio e ancora più ingordo di risorse. Se vi interessa approfondire il Path Tracing vi consigliamo di leggere un nostro articolo precedente.
Ma cosa ci insegna Cyberpunk 2077 RT Overdrive?
Il futuro del Ray Tracing secondo CD Projekt
Le differenze tra la modalità Ray Tracing Psycho e la nuova patch RT Overdrive di Cyberpunk 2077 sono gargantuesche.
Applicando il tracciamento dei raggi in tempo reale alla global illumination, l’intera scena guadagna una profondità e una precisione inimmaginabili.
Tutte le ombre sono al loro posto, seguendo le leggi fisiche dettate dal comportamento della luce, tutti i riflessi replicano con precisione maniacale tutti gli elementi dello scenario e Night City esplode in tutta la sua complessità. Ma quanto ci costa?
Per poter giocare Cyberpunk 2077 con RT Overdrive a un framerate accettabile, occorre una configurazione PC di fascia enthusiast. Meglio se corazzata con una GPU della serie RTX 4000, ancora meglio se proprio una 4090.
La potenza hardware delle schede video di ultima generazione, unita alla capacità del DLSS3 di generare nuovi fotogrammi aggiuntivi, ci consente di giocare a una versione del gioco che rappresenta una anticipazione del futuro in ray tracing, quel futuro che abbiamo sempre immaginato.
Ma quanto dista questo futuro? Quanta strada dobbiamo ancora percorrere perché coinvolga tutti i giocatori e non solo una piccola élite?
Problemi di prestazioni e potenziali soluzioni
Arrivati a questo punto dovrebbe essere chiaro che il ray tracing in tempo reale è una tecnologia ancora acerba. Nei giochi attuali abbiamo dei rendering ibridi, dove si vedono solo alcuni elementi in ray tracing, ma già così si parla di titoli ingordi di risorse.
Ovviamente gli applicativi del ray tracing nei videogiochi sono anche scalabili, come molti altri elementi grafici. Su PC possiamo sceglierne precisione e qualità, per mezzo delle impostazioni grafiche che andiamo a selezionare a seconda della nostra configurazione. Su console invece sono gli sviluppatori a ottimizzare con dei preset specifici. Spesso abbiamo due modalità distinte, una dedicata al ray tracing e l’altra alle prestazioni.
Questa dicotomia tra prestazioni e qualità fa parte del mondo videoludico fin da quando esiste il medium. I produttori hardware e software lo sanno e continuano a lavorare di compromessi.
Ray Tracing: la soluzione di Nvidia
Nvidia ha da poco lanciato le sue RTX 4000 con la recente 4070 Ti che rappresenta il modello più economico, pur costando più di 900 euro. Prezzi gonfiati anche dalla tecnologia in uso. Per gestire il Ray Tracing servono acceleratori hardware dedicati e lo dimostrano i risultati sulle vecchie GTX della serie 1000.
La grande N ha abilitato questa tecnologia via driver. Le GTX provano a calcolarlo basandosi sui normali core che si occupano di rasterizzare ma l’impatto è devastante. Le prestazioni crollano e nei casi peggiori si assiste anche al malfunzionamento dei giochi, fino a potenziali crash.
Solo gli RT Core riescono ad accelerare nel modo giusto il ray tracing nei videogiochi ma da soli non bastano per garantire un’esperienza ottimale. Motivo per cui l’azienda californiana ha dotato le sue GPU RTX anche di Tensor Core dai quali derivano tecnologie come il DLSS, pensate proprio per far fronte al peso computazionale degli elementi in ray tracing.
Deep Learning Super Sampling e frame-rate
Il DLSS è stato concepito da Nvidia proprio per accompagnare il lancio delle GPU RTX. Si tratta di un sofisticato algoritmo di scaling che abbiamo già spiegato in un nostro articolo precedente.
Con l’esordio delle RTX della serie 4000, la grande N ha migliorato a potenziato questa tecnologia, giunta ormai alla sua terza versione. Novità assoluta è la possibilità di generare dei fotogrammi aggiuntivi attraverso l’intelligenza artificiale, senza però aumentare eccessivamente le latenze.
Il DLSS 3 è dunque un vantaggio enorme in tutti i contesti. Può duplicare le prestazioni di un gioco anche senza elementi in ray tracing. Tuttavia la sua vera funzione è proprio quella di aiutare le schede video compatibili con l’RTX, quando devono fare i conti con la pesantezza dei giochi che prevedono il tracciamento dei raggi in tempo reale.
Il Deep learning super sampling resta però un sistema di alleggerimento. Per quanto stupefacenti siano i risultati, è pur sempre un meccanismo di upscaling. Il suo compito è quello di ridurre il peso computazionale a carico della GPU, lavorando sulla risoluzione e dirottando le risorse di sistema verso altri elementi più difficili da gestire.
Console e ray tracing: un difficile sodalizio
Sul fronte delle console abbiamo tre piattaforme tutte in grado di gestire il ray tracing in tempo reale, almeno su carta.
Tuttavia abbiamo appena spiegato che si tratta di una tecnologia in grado di mettere in ginocchio anche le attuali GPU desktop di fascia alta. Componenti che hanno un prezzo di gran lunga superiore, consumano molta più energia ed erogano molta più potenza. Inoltre le GPU di PlayStation 5, Xbox Series X e Series S sono prodotte da AMD che nel campo del ray tracing non riesce a tenere il passo della sua rivale Nvidia e si lascia superare anche dalle neonate GPU della serie Intel Arc.
Il vantaggio delle console non risiede dunque nella forza bruta, bensì nell’ottimizzazione. La configurazione unica viene sfruttata sempre di più e sempre meglio dagli sviluppatori. Purtroppo però non possiamo applicare lo stesso principio al ray tracing, non in egual misura almeno.
Lecito aspettarsi videogiochi futuri che sapranno farne uso ma difficilmente vedremo applicativi concreti su console. Salvo l’uscita di nuove piattaforme mid-gen, come lo furono Xbox One X e PlayStation 4 Pro, per avere un ray tracing degno di tal nome su console occorre aspettare direttamente la prossima generazione.
Potenziali alternative al Ray tracing nei videogiochi
Nonostante l’utilizzo di rendering ibridi, nonostante soluzioni di scaling più o meno sofisticate, nonostante l’ottimizzazione in termini di scalabilità, siamo ancora distanti dalla rivoluzione promessa.
È importante quindi ridimensionare l’entusiasmo e smetterla di credere al marketing dei produttori. Se da una parte questo primo passo in direzione del ray tracing in tempo reale apre le porte a sempre più significative implementazioni, non dobbiamo dimenticarci delle potenziali alternative.
Global illumination, ambient occlusion, riflessi e rifrazioni, sfumature e materiali, sono riproducibili egregiamente anche attraverso il rendering classico che sfrutta tecniche e soluzioni affinate negli anni.
Non si ottiene la stessa precisione e fedeltà che si ottiene implementando calcoli sul tracciamento dei raggi, ma nel campo dei videogiochi resta la soluzione più parsimoniosa, che ci permette di distribuire le risorse altrove, in primis sulle prestazioni.
Tra le soluzioni recenti più importanti c’è Lumen, integrato in Unreal Engine 5.
Lumen VS Ray Tracing
La soluzione di Epic per il suo motore grafico è una sorta di simulazione software del ray tracing (che comunque può avvalersi degli acceleratori hardware se disponibili).
Non serve addentrarsi in spiegazioni complesse. L’obiettivo di Lumen è quello di ottenere risultati simili (o quanto più vicini possibile) a quelli che si possono ottenere con il ray tracing vero e proprio ma senza lo stesso impatto sulle prestazioni.
Le prime comparative vedono il ray tracing hardware uscirne vincitore ma allo stesso tempo ci danno un assaggio dei progressi fatti anche dalle potenziali alternative, che allo stato attuale non sono sostituibili in via definitiva.
Un altro vantaggio di Lumen è che non necessita di componenti hardware dedicati e di conseguenza può essere gestito da tutte le GPU compatibili con Unreal Engine 5.
Alla fine ciò che conta nei videogiochi sono i risultati a fronte dei compromessi. È sempre stato così e lo sarà ancora per molto tempo.
Anche un domani, quando avremo GPU davvero in grado di gestire il ray tracing in tempo reale, non è detto che verrà adoperato da tutti gli sviluppatori. Nel mentre anche le alternative faranno passi avanti e a seconda dei casi potrebbero rivelarsi soluzioni più intelligenti.
L’ipotesi più plausibile è che avremo sempre i rendering ibridi alla base dei videogiochi ma non si tratta di un male, visti i risultati ottenuti sino ad oggi e quelli in potenziale.