v2.1 (Milestone) — 🚧 Unreleased
Features:
- Add
KHR_materials_iridescence
extension. #518
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.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.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 toquantize()
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
optionisGLB: true
changed toformat: Format.GLB
.
v0.10 (Milestone)
Features:
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 CLIinspect
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.