@zeux zeux released this Nov 12, 2018 · 53 commits to master since this release

Assets 2

This release substantially improves mesh simplification and introduces experimental algorithms for advanced GPU mesh rendering (cone culling, meshlet construction). The library can also now be used from Rust via https://crates.io/crates/meshopt.

Interface changes:

  • meshopt_simplify has an extra argument, target_error, that can be used to limit the geometric error introduced by the simplifier

New algorithms:

  • Introduce an experimental algorithm, meshopt_buildMeshlets, that can create meshlet data from index buffer that can be used to efficiently drive the mesh shading pipeline in NVidia RTX GPUs
  • Introduce experimental algorithms, meshopt_computeClusterBounds and meshopt_computeMeshletBounds, that can compute bounding sphere and bounding normal cone for use in GPU cluster culling.
  • Introduce an experimental algorithm, meshopt_generateShadowIndexBuffer, that can generate a second index buffer that shares the vertex data with the original index buffer, but is more efficient when a subset of vertex attributes is needed.

Improvements:

  • Significantly rework meshopt_simplify to improve simplification quality, including error metric improvements, attribute-guided collapse that preserves UV seam structure better, and other tweaks
  • Significantly rework and optimize meshopt_simplify, making it ~4x faster
  • Optimize meshopt_generateVertexRemap, making it 1.25x faster
  • Optimize meshopt_decodeVertexBuffer for platforms without SIMD support, making it 1.1x faster
  • Fix undefined behavior (left shift of negative integer) in meshopt_encodeVertexBuffer