Skip to content

Latest commit

 

History

History
278 lines (191 loc) · 15.6 KB

CHANGELOG.md

File metadata and controls

278 lines (191 loc) · 15.6 KB

Changelog

v3.x

v3.2 (Milestone)

Features:

  • Improve optimize and simplify() defaults #901
  • Rename colorspace() to vertexColorSpace() #899

v3.1 (Milestone)

Features:

  • Add --join <bool> and --flatten <bool> flags to `optimize' CLI command #838 by @xlsfs
  • Add KHR_materials_anisotropy extension #748
  • Allow root Nodes to be shared by multiple Scenes #833
    • Deprecate Node#getParent(), prefer Node#getParentNode()
    • Deprecate getNodeScene(), prefer listNodeScenes()

v3.0 (Milestone)

Features:

  • Add optimize multi-command to CLI, "optimize all the things" #819
  • Replace Squoosh with Sharp, new textureCompress() API #752
    • Add AVIF compression #771
    • Add quality, effort, and other compression settings #816
    • Improved texture resizing performance and stability on Node.js
  • Add flatten() function, reduce scene graph nesting #790
  • Add join() and joinPrimitives() functions, reduce draw calls #707, #658
  • Add support for sparse accessors #793
  • Add --format option to CLI validate command #778
  • NodeIO creates missing directories when writing .gltf resources #779
  • Add clearNodeParent(), clearNodeTransform(), getNodeScene() #784
  • (EXPERIMENTAL) Add --config flag to CLI, support userland extensions and commands #791

Breaking changes:

  • Rename extension classes, include vendor prefixes #776
  • Rename bounds()getBounds() #774
  • Rename MathUtils normalize() / denormalize()encodeNormalizedInt() / decodeNormalizedInt() #777
  • Rename ImageUtils getMemSize()getVRAMByteLength() #812
  • Replace Squoosh with Sharp, new textureCompress() API #752
  • Update signatures of listTextureChannels, listTextureInfo, listTextureSlots, and getTextureChannelMask to not require document parameter #787
  • Store array literals (color, vector, ...) as copies #796

Internal:

  • Migrate unit tests to Ava #799
  • Upgrade /cli package to pure ESM #798

v2.x

v2.5 (Milestone)

Features:

  • Add weldPrimitive(document, prim, options) function #767 by @marwie
  • Support resampling quaternion keyframe tracks in resample() #760
  • Remove unused vertex attributes in prune() #759
  • Display KTX2 compression type in inspect() report #757
  • Add morph target support in transformMesh(), transformPrimitive() #756
  • Improve detection of duplicate meshes in dedup() #663 by @robertlong

v2.4 — (Milestone)

Features:

  • Add sortPrimitiveWeights(prim, limit) function #670
  • Add listTextureInfo(texture) function #692
  • Add transformMesh(mesh, matrix) and transformPrimitive(prim, matrix) functions #657
  • Rewrite weld() function, improving weld results #661
  • Handle conflicting URLs during merge #677
  • Add documentation for writing custom extensions #678

v2.3 (Milestone)

Features:

  • Add simplify() function. #655
  • Add ILogger interface for user-specified logging. #653
  • Add support for .extras on TextureInfo. #646
  • Show normalized attributes in inspect() output. #638

v2.2 (Milestone)

Features:

  • Changed package.json#module entrypoint extension to .mjs #619
  • Add 'slots' option to textureResize() function. #622 by @snagy

v2.1 (Milestone)

Features:

  • Vastly improved KTX compression speed. #389 by @mikejurka, @spatialsys
  • Add KHR_materials_iridescence extension. #518
  • Add WebP, OxiPNG, and MozJPEG image optimization with @squoosh/lib. #506
  • Add draco(), meshopt(), unlit(), and ktxfix() functions to @gltf-transform/functions (moved from CLI). #544
  • Add listTextureSlots(), listTextureChannels(), getTextureChannelMask(). #506

v2.0 (Milestone)

Features:

  • Improved and simplified extension API. #437
  • Add a.equals(b) method for all property types. #437
  • Add KHR_xmp_json_ld extension. #468
  • Add NodeIO.setAllowHTTP(<boolean>). #466
  • Non-blocking NodeIO read/write. #441
  • Add DenoIO (experimental). #380
  • Add normals() function. #497

Breaking changes:

  • API for custom extensions updated. #437
  • I/O, Texture and other classes use Uint8Array for binary data, not ArrayBuffer. #447
  • I/O read/write methods are now asynchronous. #441
  • Removed support for Node.js ≤ 12.x

v1.x

v1.2 (Milestone)

Features:

  • Add dequantize() function. #431
  • Add KHR_materials_emissive_strength extension. #422
  • Add ImageUtils.getMimeType(buffer). #432

v1.1 (Milestone)

Features:

  • Extensions registered with I/O are written if used; unregistered extensions are skipped. #421
  • Stages in document.transform() can detect other stages and optimize accordingly. #417
  • Added material.equals(otherMaterial) method. #405 by @MrMagicPenguin
  • Added support for materials in dedup() function. #407 by @MrMagicPenguin

v1.0 (Milestone)

Stable release.

v0.x

v0.12 (Milestone)

Features:

  • Add compression/decompression support for EXT_meshopt_compression. #314 #323
  • Add reorder() function. #321
  • Faster, smaller CLI installation. #281
  • Improved textureResize() API. #282
  • Add node.setMatrix(...). #270
  • Parse in-memory Data URIs with readJSON. #266
  • Support .extras on Root object #339

Breaking changes:

  • Remove ao() function and dependencies. #281

v0.11 (Milestone)

Features:

  • Add textureResize() function. #267
  • Add quantizationVolume: 'scene' | 'mesh' option to quantize() and Draco compression. Fixes #257. #272
  • Support GLB files without binary data (e.g. just a node graph). #245
  • Improve type-checking throughout the library, with TypeScript's strict checks.
  • Add API documentation for @gltf-transform/extensions and @gltf-transform/functions, with Typedoc v0.20.

Breaking changes:

  • Rename @gltf-transform/lib to @gltf-transform/functions. #249
  • Move ao() from @gltf-transform/functions to the CLI, cutting size and dependencies of the functions package.
  • I/O writeJSON option isGLB: true changed to format: Format.GLB.

v0.10 (Milestone)

Features:

  • Add 'ktxfix' command in CLI. #222
  • Add getter/setter for default Scene on Root. #202

Breaking changes:

  • Material extensions now track RGBA channel usage of each texture, allowing improvements in KTX 2.0 support. #221

v0.9 (Milestone)

Features:

  • Add 'instance' transform. #169
  • Add 'prune' transform. #162
  • Add 'resample' transform. #158
  • Add 'tangents' transform. #175
  • Add 'quantize' transform. #59
  • Add KHR_materials_volume extension. #161
  • Add EXT_mesh_gpu_instancing extension. #115
  • Add --format={pretty,csv,md} output options for CLI inspect command.
  • Add --vertex-layout={interleaved,separate} options for CLI output.

Breaking changes:

  • Stricter type checking.
  • Enum values moved from GLTF.* to static properties of the relevant class. Primitive enum values are now allowed.
  • Enable esModuleInterop in TS config.
  • 'dedup' transform takes a propertyTypes: string[] array, rather than boolean flags for each property type.
  • 'draco' CLI command options renamed (hyphenated) for consistency.

v0.8 (Milestone)

Features:

  • Add 'weld' and 'unweld' transforms.
  • Add encoding/compression support for KHR_draco_mesh_compression.
  • Add KTX and WebP support in utils and 'inspect' function.
  • Add KHR_materials_variants extension.

Breaking changes:

  • Stricter type checking.
  • External type definitions are now installed as dependencies.

v0.7 (Milestone)

Features:

  • Add 'center' and 'sequence' transforms.
  • Add 'bounds' helper.
  • Enhance 'partition' transform to support animations.
  • Add KHR_draco_mesh_compression extension (decode only).
  • Add KHR_texture_transform extension.
  • Add EXT_texture_webp extension.
  • Add KHR_materials_sheen extension.

Breaking changes:

  • Merged TextureSampler properties into TextureInfo.
  • TextureInfo now extends from ExtensibleProperty.
  • Simplified I/O API. Renamed:
    • NativeDocument -> JSONDocument
    • unpackGLB -> readBinary
    • packGLB -> writeBinary
    • createDocument -> readJSON
    • createNativeDocument -> writeJSON
    • unpackGLBToNativeDocument -> binaryToJSON

v0.6 (Milestone)

Features:

  • Add world transform API (getWorldTranslation/getWorldRotation/getWorldScale/getWorldMatrix) and getMatrix to Node.
  • Add ColorUtils and helper methods to work with colors in hexadecimal and sRGB.
  • Add traverse method to Node.
  • Simplified Extension API.
  • Add Extras API.

CLI:

  • Accept textures in merge command.

Breaking changes:

  • getExtension/setExtension syntax changed to accept extension names, not constructors. See ExtensibleProperty.
  • Scene addNode/removeNode/listNodes are now addChild/removeChild/listChildren, for consistency with Node API.

v0.5 (Milestone)

v0.4 (Milestone)

v0.2 (Milestone)

v0.1 (Milestone)