- Add
baseColorTextureNames
andbaseColorFactorNames
to the options that can be given at the command line and passed toprocessGltf
andupdateVersion
, to specify the uniform names in aKHR_techniques_webgl
extension that indicate that a certain texture or color should be used as the base color texture or base color factor of a PBR material. #637 - Fixed handling of glTF models with the
CESIUM_primitive_outline
extension. #632
- Update npm module dependencies.
- Fixed crash when writing GLB files above 2GB. #627
- Breaking changes
- glTF 1.0 or glTF 2.0 with the
KHR_techniques_webgl
,KHR_blend
, orKHR_materials_common
extensions will be converted to glTF 2.0 with PBR materials by default. For the previous behavior pass in--keepLegacyExtensions
.
- glTF 1.0 or glTF 2.0 with the
- Fixed handling of glTF models with the
EXT_mesh_features
andEXT_structural_metadata
extensions.
- Fixed buffer view alignment for
EXT_feature_metadata
extension. #595
- Fixed name of
KHR_materials_pbrSpecularGlossiness
extension inaddDefaults
. #580 - Fixed glTF 1.0 to 2.0 conversion for buffers containing a placeholder data uri. #578
- Fixed handling of glTF models with the
EXT_meshopt_compression
extension. #593 - Fixed handling of glTF models with the
EXT_feature_metadata
extension. #585
- Added support for Draco 1.4.0. #562
- Locked Draco npm dependency to version 1.3.6 to avoid module initialization errors in 1.4.0. #563
- Breaking changes
- Added support for KTX2 textures. #550
- Improved accessor min/max for Draco attributes. #540
- Updated to new Draco encode settings. #538
- Fixed a bug where accessors used by
EXT_mesh_gpu_instancing
were being removed. #535
- Fixed a bug where unused nodes with used descendants would get deleted. #533
- Fixed processing glTF 1.0 models that have multiple techniques with the same uniform name but different parameters. #490
- Fixed writing duplicate resource that are referenced multiple times. #483
- Fixed a bug in
processGltf
andgltfToGlb
where the user'soptions
object was getting modified with internal options. #528
- Removed usage of deprecated function
Cesium.isArray
. #526
- Fixed a mistake in the 2.1.5 release where the changes from #516 were accidentally removed.
- Added removal of unused textures, samplers, and images. #516
- Added removal of unused materials, nodes and meshes. #465
- Added
keepUnusedElements
flag to keep unused materials, nodes and meshes. #465
- Fixed a crash when saving separate resources that would exceed the Node buffer size limit. #468
- Fixed reading absolute uris. #466
- Added ability to apply Draco compression to meshes without indices. #424
- Fixed a bug where nodes containing extensions or extras where being removed in the glTF 1.0 to 2.0 upgrade stage. #431
- Added support for the
EXT_texture_webp
extension. #450
- Fixed a bug where the buffer
byteOffset
was not set properly when updating 1.0 accessor types to 2.0 allowed values. #418 - Fixed a bug where bufferViews were not properly byte aligned when updating accessors from 1.0 to 2.0. #421
- Fixed a bug in
removePipelineExtras
when run in the browser. #422
- Breaking changes
- Project updated to process glTF 2.0 models. Any glTF 1.0 models will be upgraded to glTF 2.0 automatically and use the
KHR_techniques_webgl
andKHR_blend
extensions. - The entire public API has changed. See usage examples in the project README.
- Removed many pipeline stages in an effort to simplify the project:
- Removed ambient occlusion baking.
- Removed texture compression.
- Removed support for the
KHR_materials_common
extension. - Removed support for the
WEB3D_quantized_attributes
extension. - Removed optimization stages.
- Removed generate normals stages.
- Project updated to process glTF 2.0 models. Any glTF 1.0 models will be upgraded to glTF 2.0 automatically and use the
- Added support for
KHR_draco_mesh_compression
.
- Fixed
UNSIGNED_SHORT
overflow when generating face normals.
- Fixed a bug where percent-encoded characters (like %20) were not decoded before attempting to read a uri.
- Fixed a bug where multiple inclusions of the same mime type lead to conflicts.
- Fixed a bug where animations in glTF 0.8 assets where not being converted from axis angle to quaternion.
- Fixed a bug where generating normals and materials did not take image transparency into account
- Fixed specular computation for certain models using the
KHR_materials_common
extension. #309 - Added a
optimizeDrawCalls
flag to merge nodes and meshes more aggressively to minimize draw calls. #308 - Added minimum lighting to diffuse when the
cesium
flag is enabled. #313 - Added a check for normals arrtibute for mesh in
modelMaterialsCommon
. #318 - Fixed generating duplicate accessors in
cesiumGeometryToGltfPrimitive
. #321
- Fix
gltf-pipeline
to work with CesiumJS 1.36 and newer.
- Fixed issue where shader comparison in
MergeDuplicateProperties
would cause a crash. #297 - Fixed an issue where
mergeBuffers
would not align buffer views to 4-byte boundaries. #298 - Fixed an issue where face normal generation would crash for degenerate triangles. #298
- Fixed the
removeNormals
stage so that it can operate independently ofgenerateNormals
. #287 - Fixed an issue with writing attributes with double underscores, which is reserved in GLSL. #286
- Fixed issue with transparent diffuse texture overriding the render state of other materials. #284
- Fixed crash when loading a model with a huge number of textures. #283
- Fixed byte offset alignment issue when loading converted models in CesiumJS. #279
- Added case-insensitive regex checking for image extensions. #278
- Added
mergeVertices
option to merge duplicate vertices. This operation is now disabled by default. #276
- Fixed a bug in
processModelMaterialsCommon
that produced out-of-spec technique states. #269
- Fixed issue with ambient occlusion not working correctly with other stages. #267
- Fixed handling of binary glTF with special characters. #253
- Added
compressTextures
stage to compress input textures to a variety of compressed texture formats. - Optimized
mergeBuffers
to avoid repeated copies, drastically improving performance when there are lots of buffers to merge. - Fixed a bug in
addPipelineExtras
that made it try to add extras to null objects. - Expose
triangleAxisAlignedBoundingBoxOverlap
, an implementation of Tomas Akenine-Möller algorithm for determining if a triangle overlaps an axis aligned bounding box. - Merged gltf-statistics as a stage in the pipeline.
- Added
updateVersion
stage for patching glTF0.8
->1.0
changes;addDefaults
no longer callsprocessModelMaterialsCommon
. #223 - Added
build-cesium-combined
command to gulp file for generating simple files for other projects. #231. - Change CesiumJS
Geometry
's andVertexFormat
'sbinormal
attribute to bitangent. - Fixed a bug in
combinePrimitives
where combining primitives can overflow uint16 for the resulting indices. #230 - Made
generateNormals
stage optional and addedsmoothNormals
option for generating smooth normals if the model does not have normals. #240 updateVersion
stage for upgrades the glTF version of an asset from1.0
to2.0
. #223- All pipeline stages now operate on glTF
2.0
assets.
- All pipeline stages now operate on glTF
- Added
tangentsBitangents
generation option
- Fixed issue with embedding base64 encoded shader strings for assets using the KHR_materials_common extension
- Fixed issue with embedding base64 encoded shader strings inside the glTF.
- Added
-p
flag for preserving the glTF hierarchy. Optimization stages are not run when this flag is enabled.
modelMaterialsCommon
renamed toprocessModelMaterialsCommon
.- Added
generateModelMaterialsCommon
and command linekmc
flags for generating models with theKHR_materials_common
extension.
- Fixed
combinePrimitives
stage and re-added it to the pipeline. #108 - Expose parsing argument arrays into an options object via
parseArguments
. #183
- Added
MergeDuplicateProperties
for stages merging duplicate glTF properties, like materials and shaders. #152mergeDuplicateAccessors
is now a part of this stage.RemoveUnusedProperties
stage names are changed fromremoveUnusedXXX
toremoveXXX
.MergeDuplicateProperties
conforms to this naming convention.
quantizedAttributes
has an optionalnormalized
flag to use the glTF 1.0.1accessor.normalized
for a higher precision decode matrix. #165- Fixed an issue where pipeline extras are not removed when running
Pipeline.processJSON
andPipeline.processFile
. #180 - Added support for generating hard normals with the
-f
flag and for removing normals with-r
. #173 - Preserve non-default shader attributes when generating shaders. #175
- The
_3DTILESDIFFUSE
semantic is added to the model's technique whenoptimizeForCesium
is true. #174
cacheOptimization
no longer crashes on primitives without indices. #154- Public API is exposed via
index.js
#153- Documentation has been added for all exposed functions.
OptimizationStats
is removed fromremoveUnused
stages.gltfPipeline.js
is now namedPipeline.js
.bakeAmbientOcclusion.js
now directly exports thebakeAmbientOcclusion
function.bakeAmbientOcclusion
now takes a glTF asset as its first parameter to match the function signature of other stages.- All
removeUnused
stages have been consolidated toRemoveUnusedProperties
to clean up the global scope. readBufferComponentType
andwriteBufferComponentType
have been renamed toreadBufferComponent
andwriteBufferComponent
respectively.
- Converted the API to now use promises instead of callbacks. #135
- Fixed an issue causing some compressed accessors to not render. #148
- Fixed a quantization rounding issue. #147
- Initial release.