34

Path Tracing: cos'è e come funziona la simulazione definitiva dei raggi luminosi

Il Path Tracing ha da poco fatto capolino nel segmento dei videogiochi, con un carico di promesse e potenzialità in grado di rivoluzionare il settore.

Path Tracing: cos'è e come funziona la simulazione definitiva dei raggi luminosi
SPECIALE di Riccardo Arioli Ruelli   —   01/05/2024

Tutte le squadre vincenti mettono in campo due tipologie di giocatori: ci sono quelli bravi, con caratteristiche fisiche degne di nota e con tanto carattere, sui quali è possibile contare sempre e che sono alle fondamenta del sistema di gioco e poi ci sono i fuoriclasse, quelli che brillano di luce propria e che riescono a stupire con gesti tecnici inimmaginabili, cambiando l'esito della partita con un'invenzione, il tutto però a fronte di richieste economiche molto, molto importanti.

Dall'avvento della nuova generazione di schede grafiche e in particolare con l'arrivo delle GPU NVIDIA della gamma RTX, il rapporto tra Ray Tracing e Path Tracing può essere definito, con un certo grado di approssimazione, allo stesso modo: il Path Tracing è infatti una versione potenziata della tecnologia di illuminazione che ha cambiato profondamente il modo di concepire la grafica dei videogiochi.
Il tracciamento dei raggi luminosi, utilizzato da tempo nel campo della CGI, ha da poco fatto il suo esordio nel segmento videoludico, con la promessa di incidere ancora di più sull'aspetto grafico e sulla fisica del nostro medium preferito.
Ma cos'è il Path Tracing e quali sono le differenze tra questa tecnologia e il Ray Tracing? Proviamo a scoprirlo insieme.

Un po' di storia

Una rappresentazione dei lavori di Albrecht Dürer
Una rappresentazione dei lavori di Albrecht Dürer

Stando a David Luebke, vice presidente della Ricerca Grafica di NVIDIA, le origini del Ray Tracing (e quindi del Path Tracing) possono essere fatte risalire al XVI secolo: Albrecht Dürer, figura centrale del rinascimento nordeuropeo, è stato tra i primi a replicare un'immagine 3D su superfici bidimensionali, il tutto utilizzando sistemi di spaghi e pesi. Con il "Trattato sulla Misura" del 1525, lo studioso descrisse per la prima volta l'idea di ray tracing: immaginate di collegare con un filo ogni singolo raggio di luce che dal mondo che ci circonda arriva ai nostri occhi, utilizzando lo stesso metodo ideato da Dürer. Il ray tracing è proprio questo.

Gli studi di Whitted
Gli studi di Whitted

Più di 400 anni dopo e precisamente nel 1969, Arthur Appel di IBM introdusse il concetto di ray tracing nella computer grafica, applicandolo al calcolo degli oggetti visibili e delle ombre. Appena un decennio dopo Turner Whitted allargò l'applicazione del tracciamento dei raggi ai riflessi, alle ombre e alle rifrazioni, mettendo in mostra le grandi potenzialità di questa tecnica.
Da questo momento in poi, l'evoluzione della tecnologia non ha trovato soluzione di continuità: nel 1984 Robert Cook, Thomas Porter e Loren Carpenter, tutti ricercatori di Lucasfilm, contribuirono a plasmare la moderna computer grafica, avvicinando il concetto di ray tracing al mondo del cinema.

Appena due anni dopo, il professor Jim Kajiya del CalTech pubblicò un paper di sette pagine con il titolo "The Rendering Equation", fondendo fisica e computer grafica attraverso il ray tracing e introducendo per la prima volta l'algoritmo alla base del Path Tracing, una tecnica capace di rappresentare in maniera precisa il comportamento della luce e la sua diffusione all'interno di una scena.

Un’idea rivoluzionaria

'The Rendering Equation' di Kajiya
"The Rendering Equation" di Kajiya

Kajiya è l'artefice di un'intuizione straordinaria e per sviluppare il tracciamento dei raggi luminosi si è ispirato agli studi sul trasferimento del calore per irraggiamento: le conoscenze apprese in questo campo lo hanno portato alla stesura dell'Equazione di Rendering, che descrive il comportamento della luce nell'aria e la sua dispersione sulle superfici. Sebbene questa equazione sia piuttosto concisa, la sua risoluzione è tutt'altro che semplice: nel campo della computer grafica le scene sono infatti composte da miliardi di triangoli e calcolare la diffusione di tutti i raggi al loro interno è praticamente impossibile.

Kajiya ha allora capito che l'unico modo di venirne a capo era attraverso l'utilizzo di tecniche statistiche: una volta calcolato un certo numero di raggi è possibile ottenere immagini fotorealistiche con un buon grado di approssimazione. Per risolvere l'Equazione di Rendering lungo il percorso di un raggio luminoso, Jim Kajiya ha quindi utilizzato il Ray Tracing.

Questo approccio, che abbiamo descritto in maniera dettagliata nel nostro speciale sul Ray Tracing, ha cambiato per sempre il campo della computer grafica che - fino a quel momento - era diviso da una varietà di tecniche eterogenee, introducendo algoritmi semplici e potenti in grado di replicare il comportamento della luce e di introdurre effetti estremamente realistici.

Fino all’ultimo riflesso

Un'immagine che schematizza il concetto di Path Tracing
Un'immagine che schematizza il concetto di Path Tracing

Il Path Tracing è una variante avanzata del Ray Tracing che tiene conto non solo dei raggi luminosi diretti, ma anche di quelli indiretti. Questo significa che, oltre alle riflessioni e rifrazioni dirette, il Path Tracing considera anche le interazioni multiple dei raggi luminosi all'interno della scena. Ad esempio, un raggio può essere riflesso da un oggetto e poi rifratto attraverso un materiale trasparente prima di arrivare all'occhio del giocatore. Questa analisi approfondita dei percorsi luminosi produce effetti di luce globale più accurati e una resa più realistica dei materiali.

'Trasparent Machines' è un'opera che mette in mostra le potenzialità del Path Tracing
"Trasparent Machines" è un'opera che mette in mostra le potenzialità del Path Tracing

Come abbiamo accennato, la caratteristica distintiva del Path Tracing è la capacità di calcolare l'illuminazione indiretta, ovvero la luce che si riflette, rifrange e diffonde attraverso la scena. Questo processo coinvolge il lancio di raggi casuali in tutte le direzioni, che intersecano le superfici e raccolgono informazioni sull'illuminazione indiretta. Poiché questo calcolo può essere molto costoso in termini computazionali, spesso vengono utilizzate le cosiddette tecniche di campionamento Monte Carlo per approssimare i risultati in modo efficiente. Per ridurre poi il rumore nelle immagini generate dal Path Tracing, vengono utilizzate tecniche di accumulo dei campioni: queste comportano l'esecuzione ripetuta del processo di rendering con più campioni per ogni pixel e la successiva combinazione dei risultati, con il fine di ottenere un'immagine finale più chiara, definita e dettagliata.

Monster House è il primo film ad utilizzare il Path Tracing
Monster House è il primo film ad utilizzare il Path Tracing

Per avere un'idea sulla reale portata del Path Tracing è bene ritornare, ancora una volta, indietro nel tempo: le immagini contenute nel paper di Kajiya avevano una risoluzione di 256 x 256 pixel e all'epoca richiedevano oltre 7 ore per essere renderizzate. L'evoluzione dell'hardware e il conseguente aumento della potenza di calcolo ha consentito una prima applicazione del ray tracing in campo cinematografico a partire dal 1998, con l'uscita di A Bug's Life. Per vedere all'opera il Path Tracing si è dovuto attendere fino al 2006 con la produzione di Monster House, film renderizzato con il software Arnold sviluppato da Solid Angle SL e Sony Pictures Imageworks.

Ancora oggi l'utilizzo del Path Tracing passa da un'enorme richiesta di risorse, che nelle sue applicazioni più estese (ancora riservate al segmento cinematografico) non può prescindere dall'ausilio delle "Render Farm". L'idea di un Path Tracing in tempo reale applicato ai videogiochi non è però un miraggio e con l'avvento delle schede grafiche NVIDIA di ultima generazione abbiamo iniziato ad avere un primo assaggio delle potenzialità di questa tecnica all'interno dei nostri mondi virtuali preferiti.

Un hardware fotonico

Le differenze tra le tecniche di rendering
Le differenze tra le tecniche di rendering

L'applicazione del Path Tracing richiede una quantità di risorse hardware esponenzialmente superiore a quella richiesta dal "normale" Ray Tracing: non è un caso che la prima "sperimentazione" pubblica di questa tecnologia in ambito videoludico sia avvenuta con Quake 2 RTX, un gioco piuttosto semplice dal punto di vista poligonale, ma in grado di dimostrarne l'esplosivo impatto grafico.

Va sottolineato che, in questo contesto, il Path Tracing è applicato in maniera parziale e deve necessariamente fare leva sull'utilizzo di tecniche di rendering ibride, che tirano in ballo rasterizzazione e Ray Tracing: per semplificare, la rasterizzazione calcola il percorso dei raggi a partire da un singolo punto e che si fermano al primo impatto con la superficie, il Ray Tracing moltiplica il numero dei raggi a partire da più punti e il Path Tracing simula la vera fisica della luce, utilizzando il Ray Tracing come una "componente" di un sistema di simulazione più ampio e complesso.

Come abbiamo già detto, l'utilizzo del Path Tracing in ambito videoludico è stato reso possibile dall'evoluzione dell'hardware grafico e in particolare grazie alla ricerca di NVIDIA in questo campo. L'accesso a questa tecnologia è però limitato all'ultima generazione di GPU della casa verde: solo con l'avvento delle NVIDIA GeForce RTX 40 il calcolo in tempo reale del comportamento della luce è diventato una possibilità. Proprio come per il Ray Tracing, gli artefici di questa svolta sono gli RT Core, unità di calcolo specializzate che nella loro ultima iterazione hanno raggiunto una potenza sufficiente alla risoluzione degli algoritmi coinvolti. Tutto questo parallelamente all'intervento dell'intelligenza artificiale e delle moderne tecniche di Super Sampling (qui trovate il nostro speciale sul DLSS) e Frame Generation (per approfondire l'argomento, c'è un articolo dedicato), che hanno reso possibile godere del Path Tracing anche in titoli più complessi come Cyberpunk 2077.

Il profilo Overdrive di Cyberpunk 2077
Il profilo Overdrive di Cyberpunk 2077

Va specificato che esistono varie mod che permettono di accedere ai profili con Path Tracing di determinati giochi anche con hardware targato AMD: sebbene senza un supporto ufficiale e con i limiti prestazionali dovuti alla mancanza di unità di calcolo specializzate, le GPU top di gamma della casa rossa sono teoricamente in grado di eseguire i calcoli necessari all'implementazione di questa tecnologia, sacrificando però precisione e soprattutto rinunciando ad un ingente numero di frame per secondo. Anche in questo caso, l'arrivo di FSR 3, accompagnato dalla tecnologia di generazione di frame proprietaria, potrebbe fornire un ulteriore slancio al futuro utilizzo del Path Tracing.

A che punto siamo?

Il Path Tracing in Alan Wake 2
Il Path Tracing in Alan Wake 2

Il Path Tracing in ambito videoludico è una tecnica più giovane del "cugino" Ray Tracing e abbiamo appena iniziato a scalfirne la superficie delle possibilità offerte. Il compito di aprire le danze, con quelle che possono essere definite vere e proprie tech demo, è toccato a Minecraft RTX e a Quake II RTX: NVIDIA ha fatto leva sulla relativa semplicità poligonale di questi titoli per mettere in mostra l'impatto che il Path Tracing può avere sulla qualità grafica.

Come per molte altre tecnologie, la vetrina principale scelta dal team verde è stata però Cyberpunk 2077: con la patch 1.62 gli sviluppatori di CD Projekt RED e gli esperti di NVIDIA hanno introdotto il preset "Overdrive", che include la tecnologia Path Tracing e spinge la simulazione del comportamento dei raggi luminosi verso nuove frontiere. Risultati ancora più esaltanti sono stati ottenuti con Alan Wake 2 di Remedy: le avventure "letterarie" del tormentato scrittore assumono ancora più spessore attraverso l'implementazione di questa tecnologia, che riesce a dare vita agli scenari toccando vette di fotorealismo mai raggiunte prima. Il Path Tracing è insomma l'espressione più avanzata del Ray Tracing e, sebbene al momento la sua applicazione sia limitata ad una manciata di titoli e circoscritta al gaming su PC, la sua evoluzione ha il potenziale di incidere sul game design stesso dei futuri titoli, con ripercussioni positive anche in termini di gameplay.