Implémenter le ray tracing dans Abyss of Dungeons de Krafton

Pourquoi le ray tracing sur mobile est important

Le traçage de rayon offre un éclairage, des reflets et des ombres réalistes pour améliorer l'immersion des joueurs dans le monde de fantasy sombre d'Abyss of Dungeons. Bien que des graphismes époustouflants soient cruciaux dans les jeux mobiles, obtenir des effets haute fidélité tels que les visuels avec ray tracing a été un défi de taille. Historiquement, les limites de performances des jeux mobiles ont limité les techniques de rendu avancées, ce qui a entraîné des compromis sur la qualité visuelle par rapport aux expériences sur PC et console.

Krafton Abyss of Dungeons avait pour objectif de surmonter ces limites. L'objectif était d'intégrer la technologie de traçage de rayons, généralement réservée aux plates-formes haut de gamme, dans la version mobile d'Unreal Engine 5 (UE5). Cette initiative visait à améliorer considérablement l'immersion des joueurs en proposant des graphismes plus réalistes et plus riches sur les appareils mobiles. L'équipe devait résoudre les goulots d'étranglement des performances, adapter des pipelines de rendu complexes tels que Lumen d'UE5 et assurer la stabilité sur différents matériels mobiles, ce qui marque une étape importante vers l'intégration de graphismes de qualité console aux jeux mobiles.

Le saut visuel de la rastérisation au ray tracing

La rastérisation classique est la norme pour le rendu mobile en raison de sa rapidité. Il projette des objets 3D sur un écran 2D, pixel par pixel. Cette méthode est efficace, mais simplifie les interactions lumineuses, ce qui entraîne des ombres et des reflets moins réalistes.

Le traçage de rayons propose une approche différente. Il simule le chemin réel des rayons lumineux et calcule leurs interactions avec les objets. Cela crée un éclairage, des ombres et des reflets très précis et réalistes. Toutefois, ce réalisme se fait au détriment de l'intensité de calcul. Le calcul du chemin et des interactions de chaque rayon nécessite une puissance de traitement importante.

Comparer la rastérisation et le ray tracing

Le tableau suivant récapitule les principales différences entre la rastérisation et le traçage de rayons:

Fonctionnalité Rastérisation Ray tracing
Vitesse Association Lente
Réalisme Lower Plus haut
Utilisation des ressources Faible Élevée

Cette intensité des ressources pose un défi pour les appareils mobiles, dont la puissance de traitement est limitée par rapport aux ordinateurs. Cette limitation a historiquement entravé l'adoption du traçage de rayons sur les plates-formes mobiles.

Choisir et implémenter le traçage de rayons sur Android: une approche méthodique

Pour implémenter le traçage de rayons sur Android avec Vulkan, deux méthodes principales ont été envisagées: les requêtes de rayons et les pipelines de rayons. Les requêtes de rayons offraient une approche plus simple, permettant une gestion manuelle des rayons dans les nuanceurs, ce qui était plus simple à intégrer aux systèmes existants.

Cependant, les pipelines de rayons ont fourni une solution plus évolutive, permettant à Vulkan de gérer la traversée et l'intersection des rayons. Bien que les requêtes de rayons soient initialement légèrement plus rapides dans des scènes plus simples, les pipelines de rayons ont démontré une meilleure évolutivité et des performances supérieures pour les applications de traçage de rayons plus complexes, ce qui en fait un choix supérieur pour le développement à long terme et les exigences visuelles complexes. Nous avons choisi d'équilibrer la facilité de développement initiale avec la future évolutivité et les performances globales, en nous concentrant sur l'intégrité visuelle à long terme du jeu.

Adapter Lumen UE5 pour mobile: une tâche colossale

Lumen, un système d'éclairage et de réflexion global en temps réel d'UE5, a révolutionné l'éclairage dans les environnements de jeu. Cependant, il était initialement conçu pour les PC et les consoles hautes performances, et non pour les appareils mobiles. La complexité et les exigences en termes de ressources de Lumen représentaient un défi majeur pour l'intégration mobile. L'adaptation de Lumen pour Android a nécessité d'apporter d'importantes modifications au pipeline de rendu et au compilateur de nuanceurs d'UE5, ainsi que d'optimiser les structures d'accélération (AS) pour gérer efficacement les données de scène complexes. L'objectif de l'équipe était de combler cette lacune, afin de permettre aux appareils mobiles de gérer les calculs d'éclairage sophistiqués de Lumen sans compromettre les performances ni la stabilité. Cet effort d'adaptation a également contribué au codebase officiel d'Unreal Engine, qui profite à la communauté de développement de jeux plus large et améliore les fonctionnalités de rendu mobile.

Ombres et reflets du ray tracing: améliorer le réalisme visuel

L'implémentation des ombres de traçage de rayons impliquait de tracer les rayons lumineux directement des surfaces vers les sources lumineuses, ce qui offre une précision supérieure par rapport aux cartes d'ombres classiques. Le processus comprenait un prépass de profondeur, des ombres de requête de rayons, un dénoising et une intégration dans le pass d'éclairage. Des ombres douces ont été obtenues efficacement à l'aide d'un seul rayon avec jitter, suivi d'un débruitage. Pour les réflexions, l'équipe a implémenté un processus en plusieurs étapes impliquant un passage de tampon G, une réflexion de traçage de rayons et un stockage de données de contact, une conversion d'ID de matériau, un passage de résolution (construction de l'image réfléchie) et un passage de mélange (intégration des réflexions dans la scène principale). Les optimisations telles que la lecture différée du processeur, les approches en mode carte, le traitement par lot d'instances et les builds AS asynchrones ont considérablement amélioré les performances et réduit les coûts, en raison de la nature gourmande en ressources de ces processus sur les appareils mobiles.

Impact sur les performances et stratégies d'optimisation

Samsung Galaxy S24 Xclipse 940, haut (optimisé, bleu) bas (avant optimisation, jaune)

L'impact des performances du traçage de rayons, en particulier avec les réflexions, était fortement dépendant de la scène. Dans les scènes comportant de grandes surfaces réfléchisantes, les réflexions peuvent consommer une partie importante du temps de frame (30 à 40%). Les optimisations ont été essentielles pour rendre le traçage de rayons viable. L'équipe a utilisé de nombreuses techniques pour réduire les coûts et augmenter l'efficacité: une approche de rendu basée sur des tuiles pour minimiser le traitement inutile, le traitement par lot des instances du même matériau et de la même géométrie pour réduire les appels de dessin, la création de structures d'accélération uniquement pour les géométries visibles et l'utilisation du calcul asynchrone pour la création d'AS. Ces stratégies réduisent considérablement le temps de traitement et la charge du GPU, ce qui permet de rendre le traçage de rayons en temps réel possible sur le matériel mobile.

Complément d'informations

Abyss of Dungeons de Krafton a démontré qu'avec des adaptations et des optimisations stratégiques, il est possible d'intégrer des techniques de rendu haut de gamme telles que le traçage de rayons aux plates-formes mobiles. L'équipe a réussi à adapter le système Lumen d'UE5, à implémenter des solutions de rendu personnalisées et à surmonter de nombreux obstacles techniques pour offrir une expérience de jeu visuellement améliorée. Cette entreprise a non seulement amélioré la fidélité visuelle d'Abyss of Dungeons, mais elle a également fourni des insights et des techniques inestimables pour le développement de futurs jeux mobiles. Il met en avant la puissance de la collaboration entre les développeurs de jeux et les fournisseurs de technologies pour innover et améliorer l'expérience de jeu mobile, en la rapprochant de la qualité trouvée sur les PC et les consoles. Consultez les optimisations détaillées de l'entraînement des rayons sur le site pour les développeurs Samsung.