meshoptimizer 1.1: Meshlet-Kompression und Opacity Micromaps
Die neue Version der meshoptimizer 1.1-Bibliothek fügt einen Codec für Meshlet-Kompression und Unterstützung für die Generierung von Opacity Micromaps hinzu. Das Update konzentriert sich auf Topologieoptimierung für GPU-Rendering und Beschleunigung des Raytracings. Die Entwicklung erfolgt in C++ und JavaScript unter der MIT-Lizenz, mit primären Beiträgen von Valve.
Optimierung von Dreiecksmeshes
Die meshoptimizer-Bibliothek verbessert die Verarbeitung von Vertices und Indizes in den GPU-Pipeline-Stufen. Algorithmen reduzieren die Komplexität des Meshes, minimieren Speicherkosten und steigern die Renderingeffizienz. Seit 2017 wird das Projekt weiterentwickelt, Version 1.0 erschien im Dezember 2025.
Zugehörige Tools:
- gltfpack: Kommandozeilen-Tool zur automatischen Optimierung von glTF-Dateien.
- clusterlod.h: C/C++-Bibliothek für geclusterte LOD mit kontinuierlichem Detailniveau.
Meshlet-Kompressions-Codec
Der neue Codec komprimiert die Meshlet-Topologie, indem er die Lokalität von Micro-Indizes und Vertex-Daten ausnutzt. Jedes Meshlet wird unabhängig kodiert, was Parallelität und die Laufzeit-Speicherstruktur vereinfacht.
Das Dekodieren ist für hohe Geschwindigkeiten optimiert:
- CPU: 7–10 GB/s auf Desktop-Prozessoren, funktioniert mit write-combined memory.
- GPU: >150 GB/s auf RTX 5070 via Compute-Shader.
Ausgabedaten werden zusätzlich mit Zstandard komprimiert. Der Decoder erzeugt Formate mit 3/4 Bytes pro Dreieck und 2/4 Bytes pro Vertex für den direkten GPU-Einsatz.
Opacity Micromaps
Funktionen erzeugen hardwarefertige Micromaps aus Mesh-UV-Koordinaten und Alpha-Texture. Unterstützung für Vulkan (VK_EXT_opacity_micromap) und DirectX (DXR 1.2).
Jedes Dreieck wird entlang der UV in 4^N Micro-Dreiecke unterteilt. Darstellungsoptionen:
- 2-Zustände (1 Bit): vollständige Eliminierung von Shader-Aufrufen für maximale Raytracing-Performance.
- 4-Zustände (2 Bits): Beschleunigung von any-hit-Shaders via Texture-Lookup.
Die Wiederverwendung von Karten zwischen Dreiecken über einen OMM-Index-Buffer minimiert den Speicherbedarf. Für 4-Zustände steht ein Fallback auf 2-Zustände zur Verfügung.
Wichtige Punkte
- Meshlet-Codec bietet Dekompression mit 7–10 GB/s auf CPU und >150 GB/s auf GPU.
- Micromaps aus UV und Alpha generiert, kompatibel mit Vulkan/DirectX.
- Unabhängige Meshlet-Kodierung vereinfacht Parallelität und Laufzeit-Speicher.
- Unterstützung für 1/2-Bit-Zustände zur Optimierung von Raytracing und Shaders.
- Zusätzliche Zstandard-Kompression für die endgültige Größe.
Das Update richtet sich an Mid-/Senior-Entwickler, die mit GPU-Rendering und Raytracing in Game-Engines arbeiten. Die Integration erfordert keine Änderungen an bestehenden Pipelines.
— Editorial Team
Noch keine Kommentare.