Dopo una (lunga) pausa estiva, bentornati a Deep In Gametechs, la rubrica mensile di Natural Born Gamers dove vengono affrontati ed approfonditi aspetti, temi e questioni legate al mondo dei videogames dal punto di vista tecnico-realizzativo. Cercheremo infatti di spiegare, descrivere, contestualizzare e valutare tutto ciò che, di fatto, garantisce la realizzazione dei prodotti da noi tanto amati e che, è bene ricordarlo, non si generano per magia o solo grazie alla fantasia dei game artist …tutt’altro!
Senza annoiarvi con esasperati tecnicismi, cercheremo, con la massima chiarezza e semplicità possibile, di addentrarci di volta in volta in un diverso argomento con le sue relative implicazioni: hardware o software che sia. Prendendo a prestito una massima utilizzata in ambito enogastronomico, potremmo azzardare un: “Giocare senza sapere non è che una (piccola) parte del piacere”. D’altronde, siamo oltretutto fortemente convinti che la conoscenza, anche solo formale, di determinati aspetti, non solo garantisca una migliore fruizione del prodotto, ma consenta una scelta molto più consapevole anche in fase di acquisto.
Qui dunque non si fa della chiacchiera soggettiva ed inconcludente su argomenti dove alla fin fine è sostenibile tutto ed il contrario di tutto. Qui si parla, in concretezza, di numeri, dati, logiche implementative. Del piacere di scoprire, di conoscere. D’esser informati e consapevoli, poiché, citando Leonardo, “Naturalmente li omini boni desiderano sapere”.
Buona lettura e buon divertimento!
L’imminente arrivo sul mercato della nuova serie di schede di nvidia, le 2080…. Hanno nuovamente alimentato il focolaio di termini e terminologie atti a spiegare cosa ci sia di qualitativamente nuovo in questa generazione hardware. Un po’ piccoli ingeneri elettronici, un po’ esperti di marketing; il gioco delle parti è interpretato sia dai produttori, dai famigerati “addetti ai lavori” e, nondimeno dalla base utenti. Vediamo come sempre, ma questa volta è proprio il caso di dirlo, di fare un po’ di chiarezza a riguardo, magari andando oltre le solite, consuete tabelline con le specifiche tecniche.
Ray Tracing… chi era costui?
Puntualmente fioriscono quindi nuove tecnologie, nuove espressioni e nel contempo tantissimi tranelli per il consumatore finale. Questa volta è il turno del Ray Tracing. Sappiamo benissimo quanto spesso alcuni termini possano far leva nell’immaginario collettivo e condizionare le scelte dell’utente. Con tutto ciò non vogliamo affermare che specifiche e dichiarazioni tecniche siano fallaci, quanto il fatto di porre l’accento sulle ricadute finali nei confronti del giocatore e delle sue scelte. Più estensivamente, ameremmo approfondire gli aspetti di una nuova tecnologia, in questo caso il Ray Tracing in tempo reale, anche alla luce dei possibili cambiamenti nella struttura e nel modo di progettare un videogame.
Approcceremo dunque questo argomento con le dovute spiegazioni tecniche. In seguito proveremo ad ipotizzare come questa tecnologia potrebbe impattare nel modo di intendere, concepire e progettare un videogame. Ripensare al passaggio dalla grafica 2D a quella 3D, e tutto quello che ne è scaturito, è un ottimo esempio per avere il senso delle proporzioni circa l’argomento che stiamo per trattare.
Un po’ di storia, un po’ di previsioni
In questo articolo parleremo dunque del Ray Tracing in tempo reale: cosa è, cosa fa e come si ottiene attraverso la nuova generazione di schede grafiche. Tutte informazioni che in rete, per chi ha un minimo di curiosità, può trovare in maniera relativamente agevole.
Non possiamo però non mettervi un link esterno, in lingua inglese, sul sito di Nvidia
https://blogs.nvidia.com/blog/2018/03/19/whats-difference-between-ray-tracing-rasterization/
Le descriveremo anche qui, ma ciò che soprattutto vorremmo, sarà quello di provare a decifrare queste nuove funzionalità grafiche alla luce degli effettivi cambi (e migliorie) che potranno garantirci nei videogames di domani.
Andiamo con ordine e iniziamo con lo spiegare cosa sia il Ray Tracing e come si possa ottenere. Peraltro il Ray Tracing è una tecnica non certo nuova, ciò che verrà garantito dalla nuova ed imminente generazione di hardware sarà il suo calcolo in tempo davvero (o almeno così sostengono) reale.
L’occhio vuole, pretende, la sua parte
Lo abbiamo già detto. Ogni generazione deve avere un caposaldo per la quale diventare famosa. Questa volta è toccato al Ray Tracing. Assecondiamo dunque questa onda ed iniziamo dall’idea di fondo. Nella grafica 3D gli oggetti, tutti, sono composti da poligoni, su questo non ci piove ed è ovvio, quasi banale per tutti. Ciò che è meno evidente è come l’apparato visivo umano riesca da “autoingannarsi” provando ad avere l’illusione, quanto più credibile e veritiera, di guardare un’immagine non creata artificialmente.
Per ottenere questo risultato è ovviamente importantissimo avere la possibilità di poter costruire dei modelli complessi con un numero più elevato di poligoni. Più piccoli e numerosi saranno i singoli poligoni, più verosimile sarà l’oggetto che tali poligoni andranno a comporre. Anche qui ci stiamo mantenendo nell’ambito delle affermazioni più o meno scontate… la parte interessante è costituita dal fatto che, sopra un certo numero di poligoni, la sensazione di realismo percepita dipenderà da altri fattori, quali l’aspetto delle superfici di questi poligoni, le ombre ed i riflessi su un oggetto.
Del resto, chi ha provato a disegnare su un foglio bianco con una semplice matita una sfera, sa benissimo che l’unico modo per renderla distinguibile da un cerchio è quella di scurire alcune zone riproducendone le ombreggiature. Questo esempio ha il solo scopo di ricordare come l’effetto “tridimensionale” di un oggetto disegnato (o rappresentato a video) dipenda in massima parte da ombre e riflessi.
Tutto per la tridimensionalità
Abbiamo i poligoni e ne abbiamo tanti ma, come si è appena visto, il risultato potrebbe essere ugualmente insoddisfacente. Ecco dunque che nel tempo sono state escogitate diverse soluzioni per donare un aspetto sempre più realistico ai nostri amati poligoni.
Il primo passo è l’applicazione delle texture, operazione che potrebbe essere vista come l’equivalente di applicare delle piastrelle, o dalla carta da parati, ad una parete. Un lavoro sicuramente importantissimo della resa tridimensionale, che tuttavia non è ancora sufficiente per una resa perfetta.
Luci ed ombre
Dicevamo di ombre e riflessi. È il momento di parlarne e soprattutto di capire come si ottengono in ambito video. Il modo migliore di fare ciò sarà quello di descrivere le differenze di approccio tra “rasterizzazione”, “ray tracing” e “ray tracing in tempo reale”.
La prima di queste tre tecniche, la rasterizzazione, riprende le stesse dinamiche dell’ombreggiatura con una matita di cui si parlava poco fa. In altre parole, in seguito alla trasposizione di un poligono in 2D (rendering), sulla base di precise indicazioni verranno alterati alcuni valori cromatici in determinate zone della sua rappresentazione bidimensionale. Il risultato finale potrebbe essere sicuramente sorprendente ma, per quanto appariscente, potrebbe non essere adeguatamente realistico. È un’approssimazione ed un’imitazione. Se si vuole esser cattivi, un trucco.
Diversamente il Ray Tracing, come suggerisce il nome stesso, traccia letteralmente i fasci di luce che colpiscono i poligoni quando questi non sono ancora stati trasposti in una immagine bidimensionale. È un compito difficile ed estremamente complesso. Esulando per un momento dal tipo di materiale che si desidera rappresentare, una lastra di metallo riflette in maniera diversa da un’asse di legno, è innanzitutto obbligatorio ed indispensabile tenere conto di tre componenti. L’oggetto da rappresentare, con la sua forma, posizione ed orientamento. La/e fonte/i luminosa/e che andrà/nno a colpire le superfici dell’oggetto. Il punto di vista dell’osservatore, rappresentato nel nostro caso dall’inquadratura.
Tanti, tanti calcoli
Quest’ultimo elemento è fondamentale per capire la complessità dei calcoli necessari per arrivare ad ottenere un effetto credibile. L’esperienza di tutti i giorni ci suggerisce che, guardando uno specchio potremo osservare un’immagine molto diversa a seconda del punto in cui ci troviamo. E se fossero simultaneamente in movimento l’oggetto che siamo osservando, lo specchio e la nostra posizione? Se, anziché una singola fonte luminosa, poniamo il sole, ve ne fossero diverse, come ad esempio dei lampioni? Infine, se queste fonti luminose fossero di diversa luminosità/tonalità e non fossero, per semplificazione, puntiformi? In ultimo va ricordato che i fotoni hanno il “brutto” vizio di rimbalzare non solo una volta: avete presente il caso dove uno specchio si riflette in un altro generando un infinito gioco di immagini nell’immagine?
Crediamo di aver buttato sul tavolo fin troppi “e se…”, ma pensiamo di aver reso l’idea della complessità di realizzare un simile ambiente dinamico. Questo è il motivo per cui sino ad oggi la tecnica del Ray Tracing è stata utilizzata prevalentemente solo nell’industria cinematografica. Nella lavorazione delle riprese si ha tutto il tempo necessario per la lavorazione delle immagini. Ciò che conta è solo e soltanto il risultato finale. Ecco dunque spiegato il Ray Tracing NON in tempo reale.
In un batter d’occhio
Veniamo ai nostri amati videogames. I gamers, si sa, son brutta gente e, salvo cose tipo avventure grafiche, hanno il viziaccio di muovere continuamente il personaggio/oggetto che controllano e spostarne la visuale. Non è possibile per un software poter prevedere i comandi che il giocatore impartirà attraverso i sistemi di controllo. Dunque, se si utilizza la tecnica del Ray Tracing, i giochi di ombre e riflessi dovranno essere calcolati in tempo reale. Tutto questo deve essere poi ripetuto tante volte al secondo quanto sono i fotogrammi. 60 fps? Occorrerà fare tutto il lavoro sessanta volte ogni secondo.
Arrivederci al mese prossimo
Nella seconda parte di questo articolo ci addentreremo negli aspetti più pratici (hardware) e nelle implicazioni future che questa nuova tecnologia potrebbe generare nel modo di intendere, concepire e vivere i nostri amatissimi videogames. Vi aspettiamo!