Zpět na domů

meshoptimizer 1.1: komprese meshletů

meshoptimizer 1.1 představuje kodek pro kompresi meshletů s dekompresí až 150 GB/s na GPU a generování mikromap neprůhlednosti pro Vulkan/DirectX. Nezávislé kódování usnadňuje integraci. Vhodné pro optimalizaci složitých 3D scén v reálném čase.

meshoptimizer 1.1: superrychlá komprese meshletů a OMM
Advertisement 728x90

# 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:

Google AdInline article slot
  • 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.

Google AdInline article slot

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.

Google AdInline article slot

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

Advertisement 728x90

Číst dál