Microsoft vient de tuer le lancer de rayons triangle par triangle
Il est difficile de croire que toute cette histoire de lancer de rayons en temps réel a commencé en 2018, avec la sortie de la série de GPU NVIDIA GeForce 20. Du coup, la méthode d’éclairage utilisée dans les films hollywoodiens haut de gamme pré-rendus pourrait être utilisée dans les jeux vidéo en direct. Eh bien, c'était au moins la promesse.
Dans la pratique, le lancer de rayons n’a pas eu l’impact qu’il aurait pu avoir. Une partie du problème réside dans le fait que les consoles de cette génération ont été lancées avec pratiquement aucune capacité de lancer de rayons, mais même sur PC, seuls les systèmes haut de gamme pourraient en faire un usage décent. Cela pourrait changer, car dans le cadre d'une série d'annonces de développeurs, Microsoft présente la feuille de route pour un changement fondamental dans cette technologie, qui promet de la rendre beaucoup plus efficace et répandue à l'avenir.
Sommaire
Géométrie groupée
La fin du lancer de rayons triangle par triangle
Au cas où vous auriez besoin d'un rappel, voici une excellente explication de NVIDIA sur ce qu'est réellement le lancer de rayons.
L’ironie du lancer de rayons est que le traçage des rayons réels n’est pas toujours la partie la plus éprouvante du processus. Avant de pouvoir effectuer le passage d'éclairage, une énorme quantité de données sur la scène doit être préparée pour optimiser le processus de lancer de rayons. Il existe une structure de données utilisée pour savoir si un rayon a croisé ou non un objet dans la scène.
Jusqu'à présent, la structure d'accélération est construite à partir des triangles de la géométrie de la scène. Cela fonctionne très bien à petite échelle avec seulement quelques triangles, mais les graphiques modernes comportent d'énormes quantités de géométrie.
Pire encore, cette géométrie est souvent de nature dynamique. Par exemple, avec les shaders de maillage, vous pouvez générer ou gérer la géométrie de manière plus dynamique, mais cela peut avoir un impact sur la structure d'accélération. Les jeux vidéo modernes utilisent également le streaming d'actifs, ce qui signifie qu'il y a constamment de nouvelles géométries diffusées qui doivent faire partie de cette structure de données, et des géométries qui restent en mémoire et ne devraient pas l'être.
Cela peut entraîner une situation dans laquelle une grande partie du temps que votre GPU passe à restituer une scène de lancer de rayons, il perd simplement du temps à reconstruire toute la structure d'accélération. C'est pourquoi Microsoft a mis au point une nouvelle approche pour créer cette structure de données qu'il appelle « Géométrie groupée ».
Au lieu de traiter chaque triangle comme une unité individuelle, le nouveau modèle regroupe les triangles proches en groupes compacts, qui sont ensuite utilisés comme éléments de base pour les structures d'accélération. Cela semble fantaisiste, mais qu’est-ce que cela signifie réellement pour nous ? Voici les principaux points à retenir :
-
Les structures d'accélération peuvent être construites plus rapidement car elles sont assemblées à partir de morceaux pré-regroupés
-
L'utilisation de la mémoire s'améliore car les clusters peuvent être réutilisés sur plusieurs structures
-
Le travail peut être réparti sur plusieurs images au lieu d'être effectué en une seule fois
Ce concept n'est pas nouveau dans l'infographie dans son ensemble, il a été appliqué dans des concepts tels que Nanite Virtualized Geometry, mais cela introduit le concept dans le courant dominant.
TLAS Partitionné (PTLAS) : Un nouveau niveau hiérarchique
Le lancer de rayons s'appuie sur une hiérarchie de structures de données pour que les choses restent rapides. A haut niveau :
-
BLAS = objets individuels (structures d'accélération de niveau inférieur)
-
TLAS = toute la scène (Top Level Acceleration Structures)
Encore une fois, TLAS peut devenir un goulot d'étranglement dans les grandes scènes dynamiques. L'idée est simple : au lieu de traiter la structure de niveau supérieur comme un seul gros objet, elle est divisée en éléments plus petits et plus gérables.
Cela a pris du temps, compte tenu de l’évolution des jeux au fil des années. PTLAS facilite le streaming de géométrie à partir du disque, les scènes avec de nombreuses animations et les systèmes dynamiques de niveau de détail. Si vous avez prêté attention aux jeux actuels et de dernière génération, tout cela devrait vous sembler familier. Parce que les jeux modernes regorgent de ces scénarios.
Avec PTLAS, les moteurs de jeu n'ont besoin de mettre à jour que les parties de la scène qui ont été modifiées. Si une reconstruction complète des structures de données n'est pas strictement nécessaire, vous ignorez tout cet effort de calcul. Désormais, les mises à jour et les reconstructions sont modulaires.
Structures d'accélération pilotées par GPU
Votre processeur est en panne
Je pense que beaucoup de gens sont surpris de savoir que leurs processeurs jouent un rôle important dans le processus de lancer de rayons. Jusqu'à présent, c'était votre processeur qui était responsable de la coordination d'une grande partie du processus.
Ainsi, activer le lancer de rayons signifie réduire la fréquence d’images, ce qui est également limité par le processeur. DXR a toujours permis de construire des structures d'accélération sur le GPU, mais la nouvelle direction va encore plus loin en permettant au GPU de gérer une plus grande partie du processus de manière autonome. Avec moins de travail sur le processeur, les performances globales, en particulier les performances minimales, devraient avoir un bon coup de pied dans le pantalon.
Géométrie clusterisée + PTLAS = lancer de rayons évolutif
Moins une falaise, plus une montagne
Lorsque vous combinez ces deux technologies, vous obtenez bien plus d’évolutivité avec le lancer de rayons. Cela signifie que davantage de systèmes peuvent le gérer et que les exigences de performances augmentent de manière plus gracieuse avec une résolution plus élevée ou plus de détails dans la scène.
Il faudra un certain temps avant que cela ne soit implémenté dans les jeux d'expédition réels, mais l'avenir du lancer de rayons semble effectivement prometteur. Même si le numéro de version réel de DirectX semble figé dans le temps.
