v0.19
This release contains several meshoptimizer and gltfpack fixes/improvements as well as tweaks for the JavaScript library. Notably, -vpf
mode in gltfpack can simplify integration into applications that are very sensitive to the scene graph structure as it allows to preserve it better than the default quantization mode does without resorting to disabling quantization entirely.
Library improvements
- Improve
meshopt_decodeVertexBuffer
performance by 5-10% for Intel/AMD and 15-25% for ARM - Improve scoring heuristic for
meshopt_buildMeshlets
which results in ~2% fewer meshlets with ~5% smaller radius on average - Improve
meshopt_encodeFilterExp
performance by ~3x and make the encoder more flexible with the newmode
parameter - Fix compilation issues with Android NDK 19c and some Emscripten build configurations
gltfpack improvements
- Add floating-point position quantization (
-vpf
) which removes the need for dequantization transforms at some cost to geometry size - Add support for border locking during simplification via
-slb
which can fix gaps between different meshes - When using
-vpf
or-noq
, meshes will usually be attached directly to their source nodes without new intermediate nodes - Skin names are now preserved when present in the input file
- Fix material optimization when both a metallic-roughness model and a specular-glossiness model was used with inconsistent transparency
JavaScript improvements
- Add exports and update type definitions for MeshoptSimplifier
- Reduce memory consumption of MeshoptSimplifier by 3-4x
- Add WebWorker support to MeshoptDecoder (via
MeshoptDecoder.useWorkers
)
Thanks to @donmccurdy, @LilyWangLL, @daemyung, @DavidKorczynski, @rafern, @Kuranes and @mosra for contributions to this release!