Sotto la Scocca

Sotto la Scocca – Ray Tracing e Nintendo Switch?

Scritto da

Pubblicato il
06 Aprile 2018

Qualche tempo fa vi avevo parlato di come viene costruita l’illuminazione dei videogiochi e di come questa è forse la parte più importante della resa grafica ed artistica di un gioco. Durante la GDC di fine marzo 2018 si sono fatti per la prima volta passi importantissimi in questo campo. Anche se non riguarda in modo diretto le console Nintendo, è sempre interessante capire come si evolverà l’hardware per supportare il software.

La novità più importante è la seguente: finalmente sono stati messi a disposizione strumenti di sviluppo per implementare il Ray Tracing in tempo reale nei videogiochi. Prima di andare avanti è bene però fare un leggero passo indietro e chiarire qualche punto. La rappresentazione della grafica, in qualsiasi ambito non solo videoludico, è un problema che deve riuscire a decidere che colori devono avere i pixel di un piano 2D, il nostro schermo, che funge da finestra su di un mondo che è invece in 3D. Le due metodologie più famose per svolgere questo processo sono due: la rasterizzazione e il ray tracing.

Mettiamo qualche equazione solo per fare scena

La rasterizzazione è quella usata in tutti i software di grafica 3D in tempo reale perché è veloce. È il processo usato nei videogiochi. Questo processo traduce un mondo di gioco descritta in vettori in un’immagine 2d fatta di pixel, sfruttando un approccio geometrico. Il mondo di gioco è composto da poligoni, che sono composti da triangoli, che non sono altro che elementi con 3 vertici. Attraverso trasformazioni di rotazione, di spostamento e di ridimensionamento, il tutto viene spostato dal 3D al 2D. A questo punto si devono scegliere i colori. Per farlo servono tutte le informazioni generate da algoritmi di illuminazione, o shading. Quelli che ho descritto nell’articolo precedente. Lamber, Phong, illuminazione ambientale e così via.

Il Ray Tracing invece ha un approccio diverso. Si parte dal punto di vista della telecamera e si proiettano numerosi fasci di luce. Questi colpiscono gli oggetti sulla scena e rimbalzano fino a perdere energia e arrivare alle fonti di luce. In base alle proprietà degli oggetti, viene costruito un modello di illuminazione accurato. Il Ray Tracing sceglie quindi i colori osservando il mondo 3D di gioco nella sua interezza. Questo si traduce direttamente nei colori dei singoli pixel. I risultati sono ottimo ed infatti i film sfruttano questa tecnologia per la computer grafica.



Abbiamo quindi il primo metodo che è veloce ma poco preciso ed il secondo che è l’esatto opposto. L’idea proposta quindi da Microsoft e Khronos, supportata da Nvidia ed AMD dal lato hardware e da svariati motori grafici tra cui Unreal Engine 4, è quella di portare al congiungimento i due mondi. Attraverso le nuove API di programmazione, sarà possibile sfruttare il ray tracing per generare alcuni effetti e la rasterizzazione per altri. Col tempo, il ray tracing potrà sostituire integralmente la rasterizzazione. Si sta mettendo finalmente in piedi un sistema scalabile che può essere sfruttato nel presente ma che guarda anche al futuro. Il filmato qui sopra di Star Wars è in tempo reale, ma gira su quattro schede grafiche di fascia altissima, roba da 15.000$. Parliamo di una potenza di calcolo pari a 9 Xbox One X, senza contare tutto l’hardware extra.

Nvidia ha effettuato un passo in più, presentando anche il loro pacchetto di Ray Tracing, ottimizzato per girare sulla loro nuova architettura grafica Volta, attraverso moduli dedicati. L’idea da loro proposta è molto interessante e va a sfruttare l’intelligenza artificiale. La pesantezza di calcolo del Ray Tracing dipende da quanti raggi si decidono di tracciare per la scena. Usare pochi fasci di luce permette di salvaguardare risorse, ma produce immagini spoche, con molto rumore e con dettagli mancanti. Ecco quindi che l’intelligenza artificiale entra in gioco e pulisce l’immagine. Grazie ad algoritmi di deep learning, è in grado di capire come dovrebbe essere l’immagine finale. L’IA da come è stato spiegato da Nvidia, dovrebbe girare sui moduli hardware Tensor Core di Nvidia integrati nelle schede Volta, andando quindi a non pesare sul calcolo grafico.



Già quest’anno avremo un gioco che sfrutterà questa tecnologia: Metro Exodus. Farà uso della tecnologia Nvidia per gestore l’Illuminazione Globale attraverso il Ray Tracing. Roba per ora appannaggio dei computer più potenti e girerà al meglio su hardware nuovo, che deve ancora arrivare sul mercato. Come potete vedere, il risultato è si ottimo, ma estremamente lontano dalla bellezza del trailer di Star Wars. Però almeno questo dovrebbe girare sule schede da 300-1000€ di nuova generazione, delle quali però si sa ancora davvero poco al momento.

Ad ora questa tencologia è appannaggio dei computer, ma è ragionevole pensare che prima o poi arriverà sulle nuove console. Ad ogni nuova iterazione si cerca di migliorare qualcosa, di dare sempre strumenti più complessi e precisi per esaltare al meglio la creatività degli sviluppatori. Playstation 5 e Xbox…. One Z dovrebbero provare a portare questa tecnologia in campo per definirsi un vero passo avanti rispetto al passato. Qualora non lo facessero, sarebbero meri upgrade incrementali non troppo diversi da Pro e X, dal mio punto di vista. E Nintendo? Se continuerà sulla strada di console ibride portatili, ci arriverà probabilmente con una o due generazioni di ritardo.  Mantenendo la partnership con Nvidia potrebbe portare a qualche sorpresa, ma meglio non aggrapparsi da subito a false speranze.