Skip to content

v0.11

Compare
Choose a tag to compare
@zeux zeux released this 17 Mar 03:22
· 2814 commits to master since this release

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 passes meshlet 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.