
Perché il ray tracing sui dispositivi mobili è importante
Il ray tracing sblocca illuminazione, riflessi e ombre realistici per migliorare l'immersione del giocatore nel mondo fantasy oscuro di Abyss of Dungeons. Anche se la grafica mozzafiato è fondamentale nei giochi mobile, ottenere effetti ad alta fedeltà come le immagini con ray tracing è stata una sfida significativa. In passato, le limitazioni delle prestazioni dei giochi mobile hanno limitato le tecniche di rendering avanzate, costringendo a compromessi in termini di qualità visiva rispetto alle esperienze su PC e console.
L'obiettivo di Abyss of Dungeons di Krafton era superare queste limitazioni. L'obiettivo era integrare la tecnologia di ray tracing, in genere riservata alle piattaforme di fascia alta, nella versione mobile di Unreal Engine 5 (UE5). Questo progetto ha cercato di migliorare notevolmente l'immersione dei giocatori offrendo una grafica più realistica e accattivante sui dispositivi mobili. Il team doveva risolvere i colli di bottiglia delle prestazioni, adattare pipeline di rendering complesse come Lumen di UE5 e garantire la stabilità su hardware mobile diversi, segnando un passo significativo verso l'introduzione di una grafica di qualità console nei giochi mobile.
Il salto visivo dalla rasterizzazione al ray tracing
La rasterizzazione convenzionale è lo standard per il rendering mobile grazie alla sua velocità. Proietta oggetti 3D su uno schermo 2D pixel per pixel. Questo metodo è efficiente, ma semplifica le interazioni con la luce, con conseguente rappresentazione meno realistica di ombre e riflessi.
Il ray tracing offre un approccio diverso. Simula il percorso effettivo dei raggi di luce e calcola le loro interazioni con gli oggetti. In questo modo vengono create illuminazione, ombre e riflessi estremamente accurati e realistici. Tuttavia, questo realismo viene pagato con un'intensità di calcolo maggiore. Il calcolo del percorso e delle interazioni di ogni raggio richiede una potenza di elaborazione significativa.
Confronto tra rasterizzazione e ray tracing
La seguente tabella riassume le principali differenze tra la rasterizzazione e il ray tracing:
Funzionalità | Rasterizzazione | Ray tracing |
---|---|---|
Velocità | Accoppiamento | Lenta |
Realismo | Inferiore | Superiore |
Utilizzo delle risorse | Bassa | Alto |
Questa intensità delle risorse rappresenta una sfida per i dispositivi mobili, che hanno una potenza di elaborazione limitata rispetto ai computer. Questa limitazione ha storicamente ostacolato l'adozione del ray tracing sulle piattaforme mobile.
Scegliere e implementare il ray tracing su Android: un approccio metodico

Per l'implementazione del ray tracing su Android con Vulkan, sono stati considerati due metodi principali: Ray Queries e Ray Pipelines. Ray Queries offriva un approccio più semplice, consentendo la gestione manuale dei raggi all'interno degli shader, che era più semplice da integrare nei sistemi esistenti.
Le pipeline di raggi, tuttavia, hanno fornito una soluzione più scalabile, consentendo a Vulkan di gestire l'intersezione e il percorso dei raggi. Sebbene inizialmente le query sui raggi fossero leggermente più veloci in scene più semplici, le pipeline dei raggi hanno dimostrato una migliore scalabilità e un rendimento migliore per applicazioni di ray tracing più complesse, il che le rende una scelta migliore per lo sviluppo a lungo termine e le esigenze visive complesse. Abbiamo scelto di bilanciare la facilità di sviluppo iniziale con la scalabilità futura e le prestazioni complessive, concentrandoci sull'integrità visiva a lungo termine del gioco.
Adattare Lumen di UE5 per il mobile: un'impresa monumentale

Lumen di UE5, un sistema di illuminazione e riflessi globali in tempo reale, ha rivoluzionato l'illuminazione negli ambienti di gioco. Tuttavia, inizialmente è stato progettato per console e PC ad alte prestazioni, non per dispositivi mobili. La complessità e i requisiti di risorse di Lumen rappresentavano una sfida importante per l'integrazione mobile. L'adattamento di Lumen per Android ha richiesto modifiche sostanziali alla pipeline di rendering e al compilatore di shader di UE5, oltre all'ottimizzazione delle strutture di accelerazione (AS) per gestire in modo efficiente i dati di scene complesse. L'obiettivo del team era colmare il divario, consentendo ai dispositivi mobili di gestire i sofisticati calcoli di illuminazione di Lumen senza sacrificare prestazioni o stabilità. Questo lavoro di adattamento ha contribuito anche alla base di codice ufficiale di Unreal Engine, a vantaggio della community più ampia di sviluppo di giochi e all'avanzamento delle funzionalità di rendering mobile.
Ombre e riflessi con ray tracing: un realismo visivo superiore


L'implementazione delle ombre con il ray tracing ha comportato il tracciamento dei raggi di luce direttamente dalle superfici alle sorgenti di luce, offrendo una precisione superiore rispetto alle mappe delle ombre convenzionali. Il processo includeva un prepass di profondità, ombre con query sui raggi, riduzione del rumore e integrazione nel pass di illuminazione. Le ombre morbide sono state ottenute in modo efficiente utilizzando un singolo raggio con jitter seguito dal denoising. Per le riflessioni, il team ha implementato un processo in più fasi che prevede un passaggio del buffer G, lo stoccaggio dei dati di riflessione e di hit del ray tracing, la conversione dell'ID materiale, un passaggio di risoluzione (costruzione dell'immagine riflessa) e un passaggio di miscela (integrazione delle riflessioni nella scena principale). Ottimizzazioni come il readback della CPU, gli approcci con riquadri, il batching delle istanze e le build di AS asincrone hanno migliorato notevolmente le prestazioni e ridotto l'overhead, affrontando la natura di queste procedure che richiedono molte risorse sui dispositivi mobili.
Impatto sul rendimento e strategie di ottimizzazione


L'impatto del ray tracing sulle prestazioni, in particolare con le riflessioni, era molto in funzione della scena. Nelle scene con grandi superfici riflettenti, le riflessioni potrebbero consumare una parte significativa del tempo del fotogramma (30-40%). Le ottimizzazioni sono state fondamentali per rendere fattibile il ray tracing. Il team ha utilizzato numerose tecniche per ridurre il sovraccarico e aumentare l'efficienza: un approccio di rendering basato su riquadri per ridurre al minimo l'elaborazione sprecata, l'aggregazione di istanze dello stesso materiale e della stessa geometria per ridurre le chiamate di draw, la creazione di strutture di accelerazione solo per le geometrie visibili e l'utilizzo di calcoli asincroni per la costruzione delle strutture di accelerazione. Queste strategie riducono drasticamente i tempi di elaborazione e riducono il carico della GPU, rendendo possibile il ray tracing in tempo reale sull'hardware mobile.
Per approfondire


Abyss of Dungeons di Krafton ha dimostrato che, con adattamenti e ottimizzazioni strategiche, è possibile portare tecniche di rendering di alta qualità come il ray tracing sulle piattaforme mobile. Il team ha adattato con successo il sistema Lumen di UE5, ha implementato soluzioni di rendering personalizzate e ha risolto numerosi ostacoli tecnici per offrire un'esperienza di gioco visivamente migliorata. Questa iniziativa non solo ha migliorato la fedeltà visiva di Abyss of Dungeons, ma ha anche fornito approfondimenti e tecniche inestimabili per lo sviluppo futuro di giochi mobile. Il progetto evidenzia la potenza della collaborazione tra sviluppatori di giochi e fornitori di tecnologia per innovare e migliorare l'esperienza di gioco mobile, avvicinandola alla qualità offerta da PC e console. Consulta le ottimizzazioni dettagliate dell'addestramento dei raggi sul sito per sviluppatori Samsung.