v0.11
This release contains a few improvements for simplifier, introduces a new simplification algorithm, adds support for custom allocators and improves performance and code size of JavaScript decoders.
Interface changes:
meshopt_computeMeshletBounds
now passesmeshlet
parameter by pointer instead of by value.
New algorithms:
- Introduce a new simplification algorithm,
meshopt_simplifySloppy
, that performs decimation without concerns for topological integrity. The algorithm can and will merge small disjoint features together, and is extremely fast at ~20M triangles/sec on large meshes on modern desktop CPUs. - Memory allocation can now be configured to use custom allocation callbacks using
meshopt_setAllocator
.
Improvements:
- Default simplifier now uses normalized error metric, which makes it much easier to consistently configure
target_error
parameter - it now corresponds to linear error, normalized to mesh radius (0.01 means 1% deviation). - Fix edge cases when default simplifier could run many passes in vain, resulting in poor performance.
- Improve JavaScript decoder performance: vertex decoding is 17% faster, index decoding is 1.7x faster.
- Improve JavaScript decoder size:
decoder.js
is now 2.4x smaller (3.5 KB after gzip)
Compatibility:
- Fix gcc -Wshadow warnings
- Work around a bug in Edge ChakraCore compiler that could result in indices being incorrectly decoded with
decoder.js
.