meshoptimizer 1.1 : Compression des meshlets et micromaps d’opacité
La nouvelle version de la bibliothèque meshoptimizer 1.1 ajoute un codec pour la compression des meshlets et un support pour la génération de micromaps d’opacité. Cette mise à jour se concentre sur l’optimisation de la topologie pour le rendu GPU et l’accélération du ray tracing. Le développement est réalisé en C++ et JavaScript sous licence MIT, avec des contributions principales de Valve.
Optimisation des maillages triangulaires
La bibliothèque meshoptimizer améliore le traitement des sommets et des indices dans les étapes du pipeline GPU. Les algorithmes réduisent la complexité des maillages, minimisent les coûts de stockage et augmentent l’efficacité du rendu. Depuis 2017, le projet a évolué, la version 1.0 ayant été publiée en décembre 2025.
Outils associés :
- gltfpack : utilitaire en ligne de commande pour l’optimisation automatique des fichiers glTF.
- clusterlod.h : bibliothèque C/C++ pour LOD clusterisé avec niveau de détail continu.
Codec de compression des meshlets
Le nouveau codec compresse la topologie des meshlets en exploitant la localité des micro-indices et des données de sommets. Chaque meshlet est encodé de manière indépendante, ce qui simplifie le parallélisme et la structure de stockage en temps d’exécution.
Le décodage est optimisé pour une haute vitesse :
- CPU : 7–10 GB/s sur les processeurs de bureau, compatible avec la mémoire write-combined.
- GPU : >150 GB/s sur RTX 5070 via shader de calcul.
Les données de sortie sont en outre compressées avec Zstandard. Le décodeur génère des formats de 3/4 octet par triangle et 2/4 octet par sommet pour une utilisation directe sur GPU.
Micromaps d’opacité
Les fonctions génèrent des micromaps prêtes pour le matériel à partir des coordonnées UV des maillages et de la texture alpha. Support pour Vulkan (VK_EXT_opacity_micromap) et DirectX (DXR 1.2).
Chaque triangle est divisé en 4^N micro-triangles le long des UV. Options de représentation :
- 2 états (1 bit) : élimination complète des appels de shader pour une performance maximale en ray tracing.
- 4 états (2 bits) : accélération des shaders any-hit via consultation de texture.
La réutilisation des maps entre triangles via tampon d’indices OMM minimise la mémoire. Pour les 4 états, un repli sur 2 états est disponible.
Points clés
- Le codec de meshlets offre un décompression à 7–10 GB/s sur CPU et >150 GB/s sur GPU.
- Micromaps générées à partir des UV et de l’alpha, compatibles avec Vulkan/DirectX.
- Encodage indépendant des meshlets simplifie le parallélisme et le stockage en temps d’exécution.
- Support des états 1/2 bit pour optimiser le ray tracing et les shaders.
- Compression supplémentaire avec Zstandard pour la taille finale.
Cette mise à jour vise les développeurs intermédiaires et seniors travaillant avec le rendu GPU et le ray tracing dans les moteurs de jeu. L’intégration ne nécessite aucun changement aux pipelines existants.
— Editorial Team
Aucun commentaire pour le moment.