Poche ore fa, con un annuncio a sorpresa, è stato rivelato l’Unreal Engine 5, la nuova iterazione del famoso motore grafico di Epic. Nonostante le release di engine siano una cosa periodica, con i changelog che interessano sempre e solo gli sviluppatori, UE5 è stato una bomba atomica per i game developer, e siamo convinti che nei prossimi mesi non si parlerà d’altro.
Nei nove minuti di video postati durante il Summer Games Fest, Unreal ha letteralmente tirato fuori dal cilindro delle feature che fino a stamattina sembravano, senza tanti giri di parole, impossibili.
Da sviluppatore ho dovuto guardarlo un paio di volte per essere sicuro di aver capito bene, perché se ciò che la tech demo di Epic propone – girando addirittura su Play Station 5 – fosse davvero così come loro vogliono far credere, stiamo per assistere al più grande cambiamento nell’industria dell’intrattenimento dai tempi dell’invenzione della GPU.
Esagerato? Neanche un po’, e vi spiego perché.
C’era una volta il poly count
Facendo una semplificazione, per ottenere una scena 3D in un videogioco si ha bisogno di due elementi fondamentali: un insieme di modelli, e un insieme di luci. Per ottenere il massimo dal proprio videogioco, uno sviluppatore deve ottimizzare al massimo l’utilizzo dell’hardware per far si che i propri modelli vengano illuminati in maniera coerente e realistica.
Con l’ultima demo di Unreal, tutto ciò sembra non essere più vero.
Fino a qualche anno fa, uno dei maggiori colli di bottiglia nello sviluppo di un videogioco era il numero di triangoli che venivano messi in scena. Questo numero era vincolato principalmente dall’hardware, in quanto maggiore era il numero di triangoli, maggiore era il numero di operazioni che dovevano essere compiute per trasformarli nell’immagine finale.
Negli anni, al numero di poligoni, si sono aggiunti altri elementi come textures e audio ed effetti di post-processing, i quali contribuiscono in maniera più o meno significativa al tempo richiesto da ogni frame per essere renderizzato.
La conseguenza logica è che l’impatto visivo di un videogioco è sempre un trade-off tra tutti questi elementi e l’hardware a disposizione, obbligando gli sviluppatori a bilanciare in base alle necessità e all’aspetto visivo che si vuole raggiungere poligoni, texture, post-processing e tanto altro.
Per spremere fino all’osso l’hardware a disposizione, durante la creazione di un videogioco gli artisti spendono una quantità di tempo altissima nell’ottimizzare i propri modelli, passando da quelle che sono le versione “high-poly”, con un numero di dettagli altissimo, alle versioni “low poly” in cui i dettagli sono ottenuti in maniera artificiale tramite svariate tecniche (come il bake delle normal map). Come se non bastasse, i modelli ad alta risoluzione sono estremamente caotici in termini di poligoni, un problema quando si cerca di ottimizzare o animare qualcosa. Per questo, oltre alla riduzione di poligoni, gli artisti devono anche compiere quella che si chiama ritopologizzazione, ovvero una riorganizzazione della struttura dei poligoni da caotica a malleabile.
Dalla demo di Unreal, tutto ciò sembra non essere più necessario.
Nella prima parte del video viene descritto un sistema denominato Nanite, capace di renderizzare miliardi di poligoni come se fossero niente, a prescindere da distanza, densità o luci.
Non è dato sapere come, ma a quanto pare l’Unreal Engine 5 è in grado di processare virtualmente qualsiasi numero di poligoni o dimensione di texture, lasciando liberi gli artisti di creare i modelli come meglio credono senza doversi preoccupare di ottimizzarli per caricamenti dinamici (LOD), baking delle textures, o anche solo ritopologizzazione.
Sintetizzando, si hanno modelli molto più dettagliati che vengono realizzati in molto meno tempo.
Sembra magia.
Si accendano le luci!
Come se tutto ciò non fosse abbastanza incredibile, Unreal ha tirato fuori una seconda perla: il sistema di illuminazione globale Lumen.
Per farla breve, quando un engine compie un rendering, prende tutte le luci che hanno una influenza sulla scena in quel momento (con dovute ottimizzazioni) e le proietta sui modelli. Ciò ha ovviamente un costo computazionale altissimo, soprattutto se considerate che avviene una volta per frame.
Per questo motivo, la maggior parte delle luci viene renderizzata a priori, con il game designer che si occupa di dire all’engine di calcolare le luci PRIMA che il gioco venga rilasciato, trasformandole in texture che vengono poi utilizzate a runtime.
Quella che è l’illuminazione globale viene riservata, solitamente, ai pochi elementi che hanno bisogno di una illuminazione che varia a seconda di determinate condizioni.
Come per Nanite, tutto ciò non sembra essere più vincolato dalle leggi della matematica.
Nella demo presentata da Unreal, il sistema reagisce in tempo reale a tutti i cambiamenti di luci nella scena, a prescincdere dalla distanza e dalla fonte. In più, non solo cambiano le luci, ma anche i riflessi ed i rimbalzi indiretti vengono calcolati a tempo d’esecuzione! Questo vuol dire non solo che l’illuminazione di qualsiasi spazio sarà infinitamente più realistica, ma anche che sarà molto più veloce per i game designer modificare a piacimento le scene, passando dal giorno alla notte – letteralmente – senza dover ricalcolare tutte le luci, la loro intensità, la distanza desiderata, i riflessi sulle superfici, e così via.
E’ davvero tutto oro?
Quando qualcosa è troppo bello per essere vero, di solito non lo è, ma in questo caso dobbiamo lasciare ad Epic il beneficio del dubbio.
In questo caso non stiamo parlando di un gioco che può subire un downgrade, ma di una tecnologia che verrà fornita a terze parti, le quali pagheranno fior di milioni per poterla utilizzare.
È chiaro che la demo che abbiamo visto sia stata fatta girare in un ambiente controllato, con una scena breve e con pochi effetti aggiuntivi, a 1440p, 30 FPS, e su una Play Station 5 che Tim Sweeney ha definito “così impressionante da trainare l’industria PC nel futuro”, ma rimane che, neanche nei nostri sogni più remoti, avremmo immaginato che una tecnologia simile fosse possibile, né su PC né su console.
E’ presto per esprimere un giudizio definitivo, ma se venisse confermato “al banco” tutto ciò avrebbe un impatto immenso, non solo per l’industria videoludica, ma per settori come cinema ed industria, Unreal potrà gestire file CAD o modelli scansionati al laser senza colli di bottiglia, permettendo la creazione di show TV o live streaming in tempo reale come non ne abbiamo mai visti prima.
Avere milioni di poligoni non ottimizzati in scena vuol dire poter scansionare figure umane e metterle in scena (magari persino in VR) in real time, immaginate cosa voglia dire per il mondo dello streaming.
Io ho persino finito la fantasia, avere uno strumento che può avvicinarsi alla qualità di Avatar in tempo reale apre le porte a degli scenari che, ad oggi, faccio fatica persino a pensare.
Se sono rose fioriranno, ma nel mentre, come puntualizzato dal blog di Epic, potete scaricare la versione 4.25 ed iniziare ad impratichirvi, visto che la versione 5 sarà pensata con la massima retrocompatibilità in mente.
Se volete sviluppare il vostro gioco è il momento giusto per iniziare senza dover pensare alle ottimizzazioni.
Quelle, dall’anno prossimo, le offre Unreal.