COMPTOIR
Neeed   
register

Des cages tétraédriques pour alléger le ray tracing chez AMD

Le ray tracing, et à plus forte raison le path tracing, constituent d’excellents moyens d’inciter les joueurs à craquer pour de puissantes cartes graphiques. Fort heureusement, ces considérations marketing ne sont pas purement machiavéliques. La mise en œuvre de leurs algorithmes se paie cash en puissance de calcul. Au fil des années, des ingénieurs logiciels s’évertuent toutefois à les modérer. Citons le papier de recherche de NVIDIA consacré au ReSTIR PT Enhanced que nous avons traité en avril dernier, par exemple.

how tetrahedral cages significantly reduce bvh memory usage couv

Un petit air de The Witcher 3 ou de Crimson Desert, non ?

Aujourd’hui, nous partons chez les rouges pour retrouver un dénommé Holger Gruen. Celui-ci se présente comme un « AMD Fellow » (un titre honorifique attribué à des experts de haut niveau) qui « travaille avec l’équipe d’architecture d’AMD sur le ray tracing en temps réel, le rendu, le neural shading et les problématiques liées aux technologies graphiques des GPU de nouvelle génération ». Il détaille une technique visant à réduire la consommation de VRAM en ray tracing.

Des cages tétraédriques pour mettre le ray tracing au régime

Le papier (via TPU) est titré How tetrahedral cages significantly reduce BVH memory usage. Il porte ainsi sur les cages tétraédriques et la BVH. Ne fuyez pas, ou tempérez votre curiosité, selon votre degré de coquinerie. Tout ceci n’a ni à voir avec d’intrigantes pratiques pour adultes consentants, ni avec une nouvelle lubie du Bazar de l’Hôtel de Ville après celle centrée sur Shein.

Sur le Comptoir du Hardware, BVH reste le sigle de Bounding Volume Hierarchy, ou hiérarchie de volumes englobants en français. C’est schématiquement une structure de données utilisée pour accélérer le ray tracing. Elle « range » différentes géométries dans des volumes englobants afin d’éviter au GPU de passer en revue toute la scène pour chaque rayon. Dans le cas d’une forêt, puisque c’est le thème du jour, si un rayon ne touche pas le volume englobant de se frondaison, inutile de tester les arbres qu’elle contient. S’il le touche, le GPU descend dans la hiérarchie jusqu’à identifier les triangles susceptibles d’être intersectés. Les BVH peuvent cependant devenir très volumineuses, particulièrement avec des géométries animées. Quand les objets bougent ou se déforment, leurs BVH doivent être mises à jour, ce qui consomme de la VRAM et du temps de calcul.

Quant aux cages tétraédriques, il est sûrement bon de rappeler ce qu’est un tétraèdre : une forme géométrique à quatre faces triangulaires. Typiquement, une pyramide à base triangulaire.

Vous avez désormais l’essentiel des clefs pour comprendre le principe. Celui de cages tétraédriques capables de réduire l’empreinte mémoire des BVH. Plutôt que d’animer directement chaque sommet d’un maillage complexe, l’idée est de réaliser cette tâche sur une enveloppe beaucoup plus légère. À savoir une cage composée de tétraèdres. Le maillage original et ses structures d’accélération restent statiques, tandis que seule la cage est animée. Les rayons sont ensuite transformés vers la géométrie dans sa position de référence pour effectuer les intersections.

how tetrahedral cages significantly reduce bvh memory usage schema

L’intérêt apparaît surtout avec les scènes qui multiplient les objets en mouvement. Dans sa démonstration, AMD met en scène environ 25 000 plantes, chacune contrôlée indépendamment des autres. Au niveau de détail maximal, elles représentent quelque 2,8 milliards de triangles. Après sélection du niveau de détail approprié pour chaque plante, environ 500 millions de triangles animés sont ray tracés à chaque image, avec des rayons primaires et d’ombre, le tout à plus de 60 FPS en 1080p sur une Radeon RX 9070 XT.

Le plus spectaculaire concerne toutefois la consommation de mémoire. Avec une approche classique, AMD estime que les structures d’accélération nécessaires à cette scène engloutissent jusqu’à 80 Go de mémoire vidéo, tandis que leur mise à jour dépasse 300 ms par image. Avec les cages tétraédriques, la consommation tombe à environ 1,7 Go, pour quelque 3,3 ms de mise à jour. Soit environ 47 fois moins de mémoire et plus de 90 fois moins de temps consacré à cette opération.

Évidemment, tout n’est pas parfait. Cette technique fait perdre le contrôle de l’animation sommet par sommet. La déformation est approximée à partir de la cage. Une limitation qui la destine donc surtout à des éléments comme la végétation, l’herbe, certaines foules ou des personnages éloignés, et qui la rend moins adaptée aux animations où les déformations précises, les mouvements à très petite échelle ou les changements de topologie sont au cœur du rendu.

Bref, comme toujours, et bien que Holger Gruen affirme qu’« il y a de fortes chances qu’elles [les cages] accélèrent considérablement votre jeu en ray tracing », ce n’est pas non plus une fonction magique à cocher dans les options graphiques. Enfin, la méthode est compatible avec Microsoft DirectX Raytracing (DXR) et DXR Functional Spec, Part 2.

Un poil avant ?

Steam Remote Play expérimente PyroWave, un codec qui sacrifie la sobriété au profit d’une latence réduite

Un peu plus tard ...

Le Wi-Fi 8 pointe déjà le bout de ses antennes chez ASUS

1 pauvre ragot
Les ragots sont actuellement
ouverts à tous, c'est open bar !