Skip to content

v0.18

Compare
Choose a tag to compare
@zeux zeux released this 01 Aug 02:57
· 872 commits to master since this release
e62c41e

This release contains several gltfpack fixes/improvements as well as small improvements to the simplifier, and support for simplifier in the JavaScript library.

Importantly, gltfpack now uses basis_universal as a library to implement ETC1S and UASTC texture compression. This means that external executables like basisu/toktx are no longer necessary, and compression of complex scenes is much faster due to support for parallel compression using optimized job pool to maximize resource allocation, but it also means that node.js version of gltfpack can no longer compress textures - native gltfpack binary should be used instead.

Library improvements

  • Add options bitmask to meshopt_simplify that can be used to specify meshopt_SimplifyLockBorder option; this option is useful when multiple chunks of a single mesh are simplified independently, as it makes sure the simplified versions will connect without gaps
  • Fix vertex classification around degenerate triangles which improves simplification quality in rare cases
  • Added MESHOPTIMIZER_ALLOC_CALLCONV build setting (fixes #403)
  • JavaScript version of meshoptimizer library now supports mesh simplification via mesh_simplifier module

gltfpack improvements

  • Add support for KHR_materials_emissive_strength
  • Add support for KHR_materials_iridescence
  • Switch to parallel texture compressor using internal Basis encoder, and stop supporting texture compression via external executables
  • Add command line option -tj that can override the degree of parallelism used during texture compression
  • Add command line option -tl that can limit the texture width/height during texture compression
  • Support texture masks in -tc option which allows to only compress some textures as ETC1S
  • Implement support for normalized attributes during quantization; texture coordinates now use normalized integers, and positions can use normalized integers with -vpn command line option
  • Preserve interpolation type for STEP animation tracks
  • Sort bone influences by weight, not by index, which allows renderers to drop last few bone influences in shader LODs
  • Optimize .obj parsing to reduce memory consumption, yielding 2-3x reduction in total memory consumption for some large .obj files