# meshoptimizer 1.1: komprese meshletů a mikromapy neprůhlednosti
Nová verze knihovny meshoptimizer 1.1 přidává kodek pro kompresi meshletů a podporu generování mikromap neprůhlednosti. Aktualizace se zaměřuje na optimalizaci topologie pro GPU renderování a zrychlení ray tracingu. Vývoj probíhá v C++ a JavaScript pod licencí MIT, s hlavním příspěvkem od Valve.
Optimalizace trojúhelníkových meshů
Knihovna meshoptimizer zlepšuje zpracování vrcholů a indexů v fázích GPU pipeline. Algoritmy snižují složitost meshů, minimalizují náklady na úložiště a zvyšují efektivitu renderování. Od roku 2017 se projekt vyvíjí, verze 1.0 vyšla v prosinci 2025.
Související nástroje:
- gltfpack: CLI nástroj pro automatickou optimalizaci glTF souborů.
- clusterlod.h: C/C++ knihovna pro cluster LOD s kontinuální úrovní detailů.
Kodek pro kompresi meshletů
Nový kodek komprimuje topologii meshletů využíváním lokal ity mikroindexů a dat vrcholů. Každý meshlet je kódován nezávisle, což zjednodušuje paralelizmus a strukturu úložiště za běhu.
Dekódování je zaměřeno na vysokou rychlost:
- CPU: 7–10 GB/s na desktopových procesorech, funguje s write-combined pamětí.
- GPU: >150 GB/s na RTX 5070 přes compute shader.
Výstupní data jsou navíc komprimována Zstandard. Dekodér generuje formáty 3/4 bajtu na trojúhelník a 2/4 bajtu na vrchol pro přímé použití na GPU.
Mikromapy neprůhlednosti
Funkce generují hardwarově připravené mikromapy z UV souřadnic mesh a alfa textury. Podpora Vulkan (VK_EXT_opacity_micromap) a DirectX (DXR 1.2).
Každý trojúhelník je dělen na 4<sup>N</sup> mikrotrojúhelníků podle UV. Varianty reprezentace:
- 2-stavové (1 bit): úplné vynechání shaderových volání pro maximální výkon ray tracingu.
- 4-stavové (2 bity): zrychlení any-hit shaderů přes texturový lookup.
Opakované použití map mezi trojúhelníky přes OMM indexový buffer minimalizuje paměť. Pro 4-stavy je dostupný fallback na 2-stavy.
Co je důležité
- Kodek meshletů zajišťuje dekompresi 7–10 GB/s na CPU a >150 GB/s na GPU.
- Mikromapy se generují z UV a alfa, kompatibilní s Vulkan/DirectX.
- Nezávislé kódování meshletů zjednodušuje paralelizmus a runtime úložiště.
- Podpora stavů s 1/2 bity pro optimalizaci ray tracingu a shaderů.
- Dodatečná komprese Zstandard pro finální velikost.
Aktualizace je zaměřena na střední/senior developery pracující s GPU renderováním a ray tracing v herních enginách. Integrace nevyžaduje změny v existujících pipelinech.
— Editorial Team
Zatím žádné komentáře.