Il ray tracing è una tecnica per il rendering di computer grafica che crea un'immagine tracciando il percorso dei raggi attraverso una scena. I raggi possono interagire con gli oggetti nella scena, rimbalzando su di essi e acquisendo proprietà, come il colore.
Ray Tracing: le basi
Il ray tracing emula l'illuminazione del mondo reale. La luce che vediamo è il risultato di fotoni emessi da fonti di energia, come il sole. I fotoni possono rimbalzare e disperdersi quando entrano in collisione con gli oggetti. Uno specchio è tutto ciò che serve per vederlo in azione. La luce che colpisce uno specchio crea un riflesso.
Il ray tracing simula questo. Il numero di raggi tracciati è irrisorio rispetto al mondo reale, dove milioni di fotoni rimbalzano attraverso il nostro campo visivo. I giochi moderni tracciano da uno a quattro raggi per pixel. Tuttavia, è abbastanza per simulare il mondo reale.
Tracciare il percorso di un raggio gli consente anche di interagire con il mondo di gioco. Un raggio che rimbalza su un oggetto rosso può essere influenzato da quel colore, proiettando un bagliore rosso nelle vicinanze. I raggi possono diffondersi in modi diversi in base alle proprietà che gli artisti di un gioco attribuiscono agli oggetti, consentendo superfici semi-riflettenti o ruvide realistiche.
Il ray tracing è un significativo passo avanti per la grafica 3D. Crea un'immagine realistica simulando il percorso dei raggi mentre si muovono attraverso un gioco. Ciò porta a un'illuminazione che può interagire con l'ambiente anche quando l'ambiente non è visibile al giocatore. Il ray tracing non richiede hardware appositamente progettato per funzionare, ma è pratico solo su una scheda video o console di gioco in grado di accelerare il ray tracing perché è molto impegnativo.
Ray Tracing vs. Rasterizzazione (o grafica 3D come la conoscevi)
Potresti ancora essere confuso anche se capisci questa spiegazione. Le riflessioni erano presenti nei giochi passati, anche in quelli ormai vecchi di decenni. In che modo il ray tracing è diverso?
I giochi 3D precedenti e la maggior parte dei giochi moderni utilizzano la rasterizzazione. La rasterizzazione combina gli elementi di un mondo di gioco 3D visibile al giocatore in un'immagine 2D. Rende solo ciò che dovrebbe essere visibile al giocatore, poiché qualsiasi performance utilizzata per generare ciò che il giocatore non può vedere viene sprecata. Tuttavia, questo crea un problema.
Torniamo all'esempio di uno specchio. L'ambiente del giocatore e il personaggio del giocatore non sono visibili al giocatore (almeno in un gioco in prima persona). Con la rasterizzazione, lo specchio non può riflettere.
Naturalmente, gli specchi esistono nei giochi moderni. Rendono la scena due volte. Un passaggio è dal punto di vista del giocatore, mentre un altro è da una prospettiva diversa. Ciò, tuttavia, raddoppia le prestazioni necessarie per il rendering di una scena.
I riflessi dello spazio dello schermo, una tecnica nei popolari motori di gioco 3D, utilizzano i dati sullo schermo per creare un riflesso. Questa tecnica è ideale per superfici riflettenti ad angolo rispetto alla prospettiva del giocatore, come l'acqua. Tuttavia, gli oggetti riflessi scompaiono se l'oggetto riflesso si sposta fuori dallo schermo.
Il ray tracing non condivide questi problemi perché, a differenza della rasterizzazione, può tracciare al di fuori della prospettiva del giocatore.
Inoltre, nei giochi che consentono ai raggi di interagire con le superfici, il ray tracing può visualizzare sbavature di colore realistiche e superfici semiriflettenti difficili da gestire per la rasterizzazione.
Quale hardware richiede il Ray Tracing?
Il ray tracing non è una nuova idea. Gli informatici hanno sperimentato il ray tracing all'inizio degli anni '80, creando immagini statiche con illuminazione, riflessi e ombre realistici. Sfortunatamente, ci sono volute ore per il rendering.
Un videogioco necessita del ray-tracing in tempo reale a 30 fotogrammi al secondo o superiore. Questo è possibile solo con una scheda video progettata per accelerare il ray tracing.
Il ray tracing RTX di Nvidia si basa su silicio chiamato Tensor Core. I Tensor Core si trovano solo nelle schede video RTX. Le schede GTX di Nvidia possono eseguire il rendering di un gioco utilizzando il ray tracing perché, come detto, il ray tracing non richiede silicio appositamente costruito. Tuttavia, le prestazioni sono pessime rispetto alle schede RTX. E alcuni giochi, come Minecraft con ray tracing RTX, richiedono una scheda video RTX a causa del modo specifico in cui abilitano il ray tracing.
Le schede AMD che accelerano il ray tracing non hanno un marchio specifico e non hanno silicio dedicato. Invece, usano modifiche hardware e aggiornamenti software per risultati migliori. È più difficile identificare le schede AMD che accelerano il ray tracing, quindi presta attenzione ai dettagli.
La PlayStation 5 e Xbox Series X e S di Sony hanno hardware grafico AMD in grado di accelerare il ray tracing. Spetta agli sviluppatori abilitare, tuttavia, e molti giochi no. Un esempio degno di nota è Cyberpunk 2077, che supportava il ray tracing RTX su PC al momento del lancio ma non supportava il ray tracing sulle console di nuova generazione. La funzione è promessa per le console di nuova generazione in una patch futura.