@needle-tools/gltf-build-pipeline 2.9.4 → 2.9.5-next.a7c482c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/CHANGELOG.md +486 -485
  2. package/README.md +35 -35
  3. package/dist/cache/cache.d.ts +55 -55
  4. package/dist/cache/cache.js +289 -289
  5. package/dist/cache/index.d.ts +1 -1
  6. package/dist/cache/index.js +1 -1
  7. package/dist/cli/index.d.ts +2 -2
  8. package/dist/cli/index.js +189 -189
  9. package/dist/config/index.d.ts +53 -53
  10. package/dist/config/index.js +152 -152
  11. package/dist/constants.d.ts +7 -7
  12. package/dist/constants.js +7 -7
  13. package/dist/extensions/NEEDLE_compression_texture/NEEDLE_compression_texture.d.ts +24 -24
  14. package/dist/extensions/NEEDLE_compression_texture/NEEDLE_compression_texture.js +54 -54
  15. package/dist/extensions/NEEDLE_compression_texture/index.d.ts +1 -1
  16. package/dist/extensions/NEEDLE_compression_texture/index.js +1 -1
  17. package/dist/extensions/NEEDLE_mesh_compression/NEEDLE_mesh_compression.d.ts +27 -27
  18. package/dist/extensions/NEEDLE_mesh_compression/NEEDLE_mesh_compression.js +88 -88
  19. package/dist/extensions/NEEDLE_mesh_compression/index.d.ts +1 -1
  20. package/dist/extensions/NEEDLE_mesh_compression/index.js +1 -1
  21. package/dist/extensions/NEEDLE_opaque/NEEDLE_opaque.d.ts +27 -27
  22. package/dist/extensions/NEEDLE_opaque/NEEDLE_opaque.js +971 -971
  23. package/dist/extensions/NEEDLE_opaque/index.d.ts +3 -3
  24. package/dist/extensions/NEEDLE_opaque/index.js +28 -28
  25. package/dist/extensions/NEEDLE_progressive/NEEDLE_progressive.d.ts +48 -48
  26. package/dist/extensions/NEEDLE_progressive/NEEDLE_progressive.js +69 -69
  27. package/dist/extensions/NEEDLE_progressive/index.d.ts +1 -1
  28. package/dist/extensions/NEEDLE_progressive/index.js +1 -1
  29. package/dist/extensions/NEEDLE_progressive_mesh_settings/index.d.ts +23 -23
  30. package/dist/extensions/NEEDLE_progressive_mesh_settings/index.js +41 -41
  31. package/dist/extensions/NEEDLE_progressive_texture_settings/index.d.ts +25 -25
  32. package/dist/extensions/NEEDLE_progressive_texture_settings/index.js +67 -67
  33. package/dist/extensions/index.d.ts +7 -7
  34. package/dist/extensions/index.js +17 -17
  35. package/dist/extensions/utils.d.ts +6 -6
  36. package/dist/extensions/utils.js +72 -72
  37. package/dist/functions/weld.3.d.ts +76 -76
  38. package/dist/functions/weld.3.js +414 -414
  39. package/dist/index.d.ts +8 -8
  40. package/dist/index.js +8 -8
  41. package/dist/scripts/index.d.ts +2 -2
  42. package/dist/scripts/index.js +2 -2
  43. package/dist/scripts/pack-gltf.d.ts +15 -15
  44. package/dist/scripts/pack-gltf.js +129 -129
  45. package/dist/scripts/stats.d.ts +2 -2
  46. package/dist/scripts/stats.js +19 -19
  47. package/dist/transforms/index.d.ts +9 -9
  48. package/dist/transforms/index.js +9 -9
  49. package/dist/transforms/needle_animation_transform.d.ts +2 -2
  50. package/dist/transforms/needle_animation_transform.js +5 -5
  51. package/dist/transforms/needle_asset.d.ts +3 -3
  52. package/dist/transforms/needle_asset.js +50 -50
  53. package/dist/transforms/needle_common.d.ts +17 -17
  54. package/dist/transforms/needle_common.js +1 -1
  55. package/dist/transforms/needle_mesh_transform.d.ts +15 -15
  56. package/dist/transforms/needle_mesh_transform.js +218 -218
  57. package/dist/transforms/needle_progressive.d.ts +44 -44
  58. package/dist/transforms/needle_progressive.js +1005 -1005
  59. package/dist/transforms/needle_texture_transform.d.ts +13 -13
  60. package/dist/transforms/needle_texture_transform.js +257 -257
  61. package/dist/transforms/needle_toktx.d.ts +26 -26
  62. package/dist/transforms/needle_toktx.js +239 -239
  63. package/dist/transforms/needle_webp.d.ts +15 -15
  64. package/dist/transforms/needle_webp.js +53 -53
  65. package/dist/transforms/toktx.d.ts +52 -52
  66. package/dist/transforms/toktx.js +221 -221
  67. package/dist/transforms/toktx_types.d.ts +78 -78
  68. package/dist/transforms/toktx_types.js +62 -62
  69. package/dist/transforms/util.d.ts +21 -21
  70. package/dist/transforms/util.js +90 -90
  71. package/dist/utils/compression_utils.d.ts +2 -2
  72. package/dist/utils/compression_utils.js +6 -6
  73. package/dist/utils/fileutils.d.ts +19 -19
  74. package/dist/utils/fileutils.js +177 -177
  75. package/dist/utils/guid.d.ts +1 -1
  76. package/dist/utils/guid.js +5 -5
  77. package/dist/utils/index.d.ts +10 -10
  78. package/dist/utils/index.js +10 -10
  79. package/dist/utils/merge.d.ts +12 -12
  80. package/dist/utils/merge.js +31 -31
  81. package/dist/utils/mesh.d.ts +13 -13
  82. package/dist/utils/mesh.js +124 -124
  83. package/dist/utils/nodeio.d.ts +6 -6
  84. package/dist/utils/nodeio.js +86 -86
  85. package/dist/utils/stats.d.ts +70 -70
  86. package/dist/utils/stats.js +258 -258
  87. package/dist/utils/texture.d.ts +5 -5
  88. package/dist/utils/texture.js +14 -14
  89. package/dist/utils/validate.d.ts +5 -5
  90. package/dist/utils/validate.js +17 -17
  91. package/dist/utils/version.d.ts +1 -1
  92. package/dist/utils/version.gen.d.ts +1 -1
  93. package/dist/utils/version.gen.js +1 -1
  94. package/dist/utils/version.js +4 -4
  95. package/package.json +78 -78
  96. package/scripts/clear-caches.mjs +3 -3
  97. package/scripts/defaults.mjs +11 -11
  98. package/scripts/fileutils.mjs +5 -5
  99. package/scripts/index.mjs +41 -41
  100. package/scripts/limit-caches.mjs +3 -3
  101. package/scripts/make-progressive.mjs +16 -16
  102. package/scripts/pack-gltf.mjs +106 -106
  103. package/tsconfig.json +19 -19
package/CHANGELOG.md CHANGED
@@ -1,486 +1,487 @@
1
- # Changelog
2
- All notable changes to this package will be documented in this file.
3
-
4
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
- and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
-
7
- ## [2.9.1] - 2024-05-23
8
- - change: `product` usecase uses `UASTC` compression for 'normalTexture'
9
-
10
- ## [2.9.0] - 2024-05-22
11
- - add: initial texture compression mode support for `world` and `product`
12
-
13
- ## [2.8.1] - 2024-04-17
14
- - bump version
15
-
16
- ## [2.8.1-alpha.0] - 2024-03-26
17
- - Fix: Issue where cache key gets longer depending on the primitive count
18
- - Fix: Cache key not taking index buffer into account
19
- - Fix: Caching of mesh LODs did clone shared mesh attributes for every primitive instead of re-using previous clones
20
-
21
- ## [2.8.0-alpha.2] - 2024-03-04
22
- - change: use webp compression for textures smaller than 32x32
23
- - fix: webp compression for small textures (64x64)
24
-
25
- ## [2.8.0-alpha.0] - 2024-02-27
26
- - change: `product` usecase now uses webp compression for 'normalTexture' and 'metallicRoughnessTexture' textures
27
-
28
- ## [2.7.1] - 2024-02-14
29
- - fix: bug in caching path due to change in 2.7.0-alpha.2
30
-
31
- ## [2.7.0] - 2024-02-13
32
- - bump version
33
-
34
- ## [2.7.0-alpha.2] - 2024-02-13
35
- - fix: processing for some very large meshes where hashing the meshes failed (for caching the results)
36
-
37
- ## [2.7.0-alpha.1] - 2024-01-13
38
- - fix: handle LOD omitting and remove deleted files from progressive transform results list
39
-
40
- ## [2.7.0-alpha] - 2024-01-13
41
- - add: VRM mesh simplification support
42
- - fix: issue where the output directory was not created if it didn't exist yet
43
- - fix: try resolve deduplicated meshes
44
- - change: update gltf-transform to 4.1.1
45
- - change: modify mesh LOD settings for more vertices
46
-
47
- ## [2.6.0-alpha] - 2024-12-16
48
- - add: create placeholder textures for missing jpg, png, webp, gif, tif on disc
49
- - fix: compressing a gltf file to a different output directory does not falsely delete old external textures on disc in the input directory
50
-
51
- ## [2.5.0] - 2024-12-16
52
- - release
53
-
54
- ## [2.4.0] - 2024-09-11
55
- - release
56
-
57
- ## [2.4.0-beta.5] - 2024-09-06
58
- - fix: issue where mesh LODs would in some cases be compressed with "draco" while the root file would be compressed with "mesh-opt" if not explicitly specified in the root file. This would cause invalid rendering and randomly scaled LOD meshes. Now mesh LODs will always use the same mesh compression. [NE 5297](https://linear.app/needle/issue/NE-5297)
59
- - change: update gltf-transform dependency to 4.0.8
60
-
61
- ## [2.4.0-beta] - 2024-08-13
62
- - fix: issue where a mesh lod is removed during second processing of a directory that contains existing mesh lods
63
-
64
- ## [2.4.0-alpha.3] - 2024-08-11
65
- - fix: issue where files would not correctly be overriden in subdirectories when no output directory was specified
66
-
67
- ## [2.4.0-alpha.2] - 2024-06-29
68
- - fix: prevent joining/flattening of progressive assets
69
-
70
- ## [2.4.0-alpha.1] - 2024-06-26
71
- - add: heuristic for choosing mesh compression if not explictly configured
72
-
73
- ## [2.3.0-alpha.2] - 2024-06-26
74
- - change: usecase `product` does compress with UASTC again (for certain slots)
75
-
76
- ## [2.3.0-alpha.1] - 2024-06-23
77
- - change: bump gltf-transform to 4.0.2 to fix meshopt skinning regression [1439](https://github.com/donmccurdy/glTF-Transform/pull/1439)
78
-
79
- ## [2.3.0-alpha] - 2024-06-22
80
- - add: flatten and join for `product` usecase
81
-
82
- ## [2.2.1-alpha.8] - 2023-06-22
83
- - add: CLI <output> support
84
- - fix: register webp extension for valid glTF files. [issue 5122](https://linear.app/needle/issue/NE-5122)
85
- - fix: issue where VRM material would be pruned
86
- - change: VRM use meshopt compression where any blendshapes are found
87
-
88
- ## [2.2.1-alpha.7] - 2023-06-19
89
- - fix: WARN if image validation can not run
90
- - change: compress lightmap textures with webp
91
-
92
- ## [2.2.1-alpha.5] - 2023-06-18
93
- - add: `stats` now includes json and animation size info
94
- - change: VRM's are compressed with meshopt again
95
- - change: usecase `product` now uses webp compression
96
-
97
- ## [2.2.1-alpha.4] - 2023-06-17
98
- - add: `--verbose` option to transform command
99
- - add: `stats` command to create stats.needle.json
100
- - add: automatically detect mimetype mismatch and attempt to fix it
101
-
102
- ## [2.2.1-alpha] - 2023-06-15
103
- - fix: issue with progressive mesh cache key calculation when running multiple transform processes with different configurations
104
-
105
- ## [2.2.0-alpha.11] - 2023-06-14
106
- - fix: issue where progressive transform with un-indexed meshes would fail
107
-
108
- ## [2.2.0-alpha.10] - 2023-06-13
109
- - fix: progressive transform of converted GLB files where meshes don't have indicies
110
- - fix: skip progressive texture generation for textures for textures that already match the lowest LOD size
111
- - fix: if compression is set to None the LOD textures should respect that setting and also not be compressed
112
- - fix: fallback mesh density calculation for meshes that aren't indexed
113
- - fix: NEEDLE_mesh_compression extension falsely overriding primitive extensions
114
-
115
- ## [2.2.0-alpha.5] - 2023-06-06
116
- - add: CLI `--progressive` option to `transform` command (default is true)
117
- - add: CLI `--compress` option to `transform` command (default is true)
118
- - add: config `meshes: { lods: boolean }` option
119
- - remove: CLI "compress" command
120
- - change: enable texture LODs by default
121
- - fix: `--config` path can now point to a directory or a `needle.config.json` file as well
122
- - fix: mesh LOD regression caused by change in gltf-transform `weld` behaviour
123
- - fix: KTX SOFTWARE >= 4.3.0 is installed
124
-
125
- ## [2.1.0-alpha.6] - 2023-06-04
126
- - fix: errors when invoking npm scripts caused by the cli program
127
- - fix: remove cache directory error
128
- - fix: remove dedup for textures since this currently causes issues with gltf-progressive loading
129
-
130
- ## [2.1.0-alpha] - 2023-06-03
131
- - add: compression config support for high-level usecases that can be passed via commandline arguments or via config. Available options are currently `default`, `world` and `product`.
132
- - add: texture LODs can now be generated by passing in the path to a compression config. `--config <path/to/config.json>`
133
- - change: VRMs now use draco mesh compression by default
134
-
135
- ### Config Examples
136
- - `default` - use default compression. When not explictly configured textures will be compressed with ETC1S
137
- - `product` - when not explictly configured textures will use UASTC for `metallicRoughnessTexture` and `normalTexture`
138
- - `world` - generate texture LODs when enabled (and not explictly disabled by `textures: { lods: false }`)
139
- ```json
140
- {
141
- "usecase": "default" // optional
142
- "textures" : {
143
- "lods": true
144
- }
145
- }
146
- ```
147
- The config can also be part of a `needle.config.json`:
148
- ```json
149
- {
150
- ... regular needle.config
151
- "gltf": {
152
- "usecase": "default" // optional
153
- "textures": {
154
- "lods": true
155
- }
156
- }
157
- }
158
- ```
159
-
160
- ## [2.0.0-alpha] - 2023-06-01
161
- - update gltf-transform dependency to 4.x
162
- - change: ensure ETC1S and UASTC textures are power of 2
163
-
164
- - CLI: commands can be run with `needle-gltf <command>`
165
- - CLI: add `--cache` to allow disabling cache with `--cache False` (default true)
166
- - CLI: add `--stats` to produce `.needle.stats.json` (default false)
167
- - CLI: change `--output` to be the optional second argument
168
-
169
- ## [1.6.0-alpha.7] - 2023-05-30
170
- - fix: npx cli command return wrong error due to `packGLTF` not returning a booelan
171
- - fix: mjs script import paths
172
-
173
- ## [1.6.0-alpha.5] - 2023-05-28
174
- - fix: determine build pipeline version
175
- - change: throw error and exit process if packing or transform fails
176
-
177
- ## [1.6.0-alpha.2] - 2023-05-27
178
- - add: `gltf-build-pipeline` commandline support with `transform` and `compress` (pack-gltf) options.
179
-
180
- ## [1.5.0-alpha.12] - 2023-05-20
181
- - add: pack-gltf now also runs `resample` for animations
182
- - fix: nullreference error in accessing opaque debug options
183
-
184
- ## [1.5.0-alpha.10] - 2023-05-17
185
- - add: `generateLods` option to progressive texture settings
186
-
187
- ## [1.5.0-alpha.9] - 2023-05-16
188
- - add: start of VRM 1.0 support. Not implemented is the `VRMC_materials_mtoon` extension
189
-
190
- ## [1.5.0-alpha.8] - 2023-05-16
191
- - fix: issue where updating ktx compressed texture extension also flattened the path
192
-
193
- ## [1.5.0-alpha.7] - 2023-05-16
194
- - fix: external resources that are KTX2 compressed are now saved with a `.ktx2` extension
195
- - change: toktx now uses compression "auto" mode to select uastc or etc1s
196
- - change: toktx now checks the slots and increases quality for `metallicRoughnessTexture` and `normalTexture` but keeps using ETC1S for smaller file size
197
-
198
- ## [1.5.0-alpha.6] - 2023-05-15
199
- - fix: If not further specified then automatically use UASTC for textures that are in either `normalTexture` or `metallicRoughnessTexture` slots
200
-
201
- ## [1.5.0-alpha.5] - 2023-05-04
202
- - fix: NEEDLE_opaque should handle if VRM texture index is negative
203
- - change: exit with code 1 if any file packing fails
204
-
205
- ## [1.5.0-alpha.4] - 2023-05-03
206
- - fix: issue in NEEDLE_opaque resolving of VRM textures, also resolve `meta.texture`
207
- - fix: VRMs now compress meshes with mesh-opt if nothing is specified
208
- - change: include version in cache directory
209
-
210
- ## [1.5.0-alpha.3] - 2023-05-03
211
- - add: VRM progressive textures support
212
- - fix: VRM format should be saved as GLB. See https://github.com/donmccurdy/glTF-Transform/issues/1390
213
- - fix: VRM texture index handling
214
-
215
- ## [1.5.0-alpha] - 2023-05-01
216
- - add: NEEDLE_opaque `node: <index>` retargeting
217
- - add: passthrough VRM extension
218
-
219
- ## [1.4.11] - 2023-04-29
220
- - add: NEEDLE_progressive mesh now run sparse transform
221
- - change: cli params for debug and caching are now `--debug` and `--no-caching`
222
-
223
- ## [1.4.10] - 2023-04-23
224
- - add: NEEDLE_progressive can now load and process already draco compressed meshes
225
-
226
- ## [1.4.9] - 2023-04-23
227
- - add: NEEDLE_progressive now have `hash` field for LODs which is generated using the content of the LOD and it's settings that produced it.
228
- - fix: NEEDLE_progressive catches error when copying mesh with extensions where the copy operation fails
229
-
230
- ## [1.4.8] - 2023-04-22
231
- - fix: update sharp package to `^0.32.6`
232
- - change: NEEDLE_progressive meshes max LOD error increased
233
-
234
- ## [1.4.7] - 2023-04-16
235
- - add: `asset.extras.needle` now contains information about used build pipeline
236
-
237
- ## [1.4.6] - 2023-04-10
238
- - fix: NEEDLE_progressive meshes do not revert primitive data for skinned meshes anymore. See NE-4596
239
-
240
- ## [1.4.5] - 2023-04-05
241
- - fix: generating mesh and texture LOD for glbs without `NEEDLE_` extension
242
- - fix: guid generation for progressive meshes when no `NEEDLE_` extension is present
243
-
244
- ## [1.4.4] - 2023-04-03
245
- - change: clamp simplification error for LOD meshes to 5%
246
-
247
- ## [1.4.3] - 2023-04-02
248
- - release
249
- - fix: generate cache key for meshes
250
-
251
- ## [1.4.1-beta.15] - 2023-04-02
252
- - fix: issue where discarding all LODs might result in broken mesh due to simplify having modified the original mesh
253
- - fix: don't produce LODs if GLB/glTF was produced with old generator
254
-
255
- ## [1.4.1-beta.13] - 2023-03-26
256
- - change: passthrough `NEEDLE_editor` & `NEEDLE_gltf_dependencies` extensions
257
-
258
- ## [1.4.1-beta.12] - 2023-03-23
259
- - add: NEEDLE_progressive LODs can now contain more info per texture or mesh. Meshes contain vertex- and index counts
260
- - change: the cache can now store and retrieve meta information
261
-
262
- ## [1.4.1-beta.11] - 2023-03-20
263
- - add: NEEDLE_progressive LOD meshes morph targets data
264
- - fix: NEEDLE_progressive should check if simplifcation did result in improved meshes (> 32 verts removed && > 5 % improvement) and otherwise discard LODs (and the whole extension if no improvement was made)
265
- - change: Unity NEEDLE_progressive logs
266
-
267
- ## [1.4.1-beta.10] - 2023-03-19
268
- - change: NEEDLE_progressive calculates density per mesh level
269
- - change: NEEDLE_progressive `uri` field is removed and added `lod` array of objects
270
-
271
- ## [1.4.1-beta.8] - 2023-03-18
272
- - change: if an asset doesnt have a guid we use a uuid package now
273
- - change: ignore mesh LODs with vertex count < 4
274
- - change: allow generating mesh LODs without extension (if the mesh has > 32 vertices)
275
- - change: omit generated LODs if the change is too small (e.g. the vertex count didnt change enough)
276
-
277
- ## [1.4.1-beta.6] - 2023-03-15
278
- - add: caching support for mesh LODs
279
-
280
- ## [1.4.1-beta.5] - 2023-03-15
281
- - add: auto LODs now calculate mesh density
282
- - change: generate 6 LOD level
283
- - change: use ratio 0.5 of the previous LOD level
284
- - change: bump gltf-transform to 3.10.1 to fix simplifier
285
- - change: add sparse transform to progressive transform
286
-
287
- ## [1.4.1-beta.3] - 2023-03-14
288
- - fix: wait for mesh simplifier to be ready
289
-
290
- ## [1.4.1-beta.2] - 2023-03-13
291
- - change: update gltf-transform to `^3.10.0`
292
- - change: progressive mesh transform does now set ratio for LODs (see [simplifier issue 661 on github](https://github.com/zeux/meshoptimizer/issues/661))
293
- - fix: issue where progressive meshes were not generated if a mesh was multiple times in the glTF
294
- - change: simplify to use ratio, fix issue where not all meshes were processed
295
- - change: auto LOD max error set to 0.1
296
-
297
- ## [1.4.0-beta] - 2023-03-12
298
- - add: progressive mesh transform to automatically generate mesh LOD levels (currently we only generate one low poly version)
299
-
300
- ## [1.3.1] - 2023-10-20
301
- - fix: meshopt with khr_animation_2 extension was not correctly processed: animated node and target were not passed to gltf-transform which caused a wrong processing of meshopt. We now pass this information to the gltf-transform AnimationChannel object
302
- - change: bump gltf-transform to 3.7.3
303
-
304
- ## [1.2.4] - 2023-09-30
305
- - fix: bug in progressive texture transform where extension wasnt added correctly (NE-3627)
306
-
307
- ## [1.2.3] - 2023-09-29
308
- - fix: bug in progressive texture transform where texture wasnt found
309
-
310
- ## [1.2.2] - 2023-08-14
311
- - remove: legacy squoosh dependency
312
-
313
- ## [1.2.1] - 2023-07-25
314
- - change: set reference to materials used by json pointers
315
-
316
- ## [1.2.0] - 2023-07-21
317
- - add: resolving of material json pointers
318
-
319
- ## [1.1.6] - 2023-07-10
320
- - change: bump gltf-transform dependency to latest 3.4.6
321
-
322
- ## [1.1.5] - 2023-06-26
323
- - change: bump gltf-transform dependency to latest 3.4.3
324
-
325
- ## [1.1.4] - 2023-06-09
326
- - fix: progressive texture transform didnt pass mesh compression setting through
327
-
328
- ## [1.1.3] - 2023-05-24
329
- - minor change adding info about reduced size after processing gltf files
330
-
331
- ## [1.1.2] - 2023-05-24
332
- - fix: wasm out of memory error caused by starting to many compression processes at once
333
-
334
- ## [1.1.1] - 2023-05-18
335
- - fix: fix progressive texture processing for empty slots array, assume texture slot "baseColorTexture" (for custom shader support)
336
-
337
- ## [1.1.0] - 2023-05-06
338
- - add: support for per glb mesh compression selection (none, draco or meshopt)
339
-
340
- ## [1.0.6] - 2023-05-06
341
- - fix: dont add textures to cache when toktx is not installed
342
-
343
- ## [1.0.5] - 2023-05-06
344
- - fix: catch exception in cases where toktx is not installed (e.g. in CI environment) and log warning instead
345
-
346
- ## [1.0.4] - 2023-04-24
347
- - fix: error caused by missing simplifier
348
-
349
- ## [1.0.3] - 2023-04-24
350
- - fix: webp quality setting not being rounded resulting in compression to fail
351
-
352
- ## [1.0.2] - 2023-04-19
353
- - change: progressive should not log error out when running for already compressed gltf
354
- - change: ignore EXT_texture_exr extension re-assignment
355
-
356
- ## [1.0.1] - 2023-04-17
357
- - fix: register meshopt decoder
358
- - fix: catch exception in document read
359
- - change: log gpu memory estimation for textures
360
-
361
- ## [1.0.0] - 2023-04-04
362
- - change: file utils use needle.config.json to find files if no directory was specified
363
- - change: add generator info
364
- - change: try catch toktx exception
365
- - change: improve relative path handling
366
- - change: use env variable set by npm to resolve relative paths
367
- - add: option to disallow toktx using `no-toktx` commandline parameter
368
- - update to gltf-transform 3.1.4
369
-
370
- ## [0.11.2-pre] - 2023-01-30
371
- - fix: clean up logic for finding toktx to only use one approach
372
-
373
- ## [0.11.1-pre] - 2023-01-27
374
- - fix: getting correct gltf transform texture for texture definition
375
- - fix: opaque extension now also uses getTexture util method
376
-
377
- ## [0.11.0-pre] - 2023-01-25
378
- - add: script `transform` does run progressive and gltf-pack
379
- - change: script `transform:progressive` can now process all files in passed in directory
380
-
381
- ## [0.10.10-pre] - 2023-01-25
382
- - add: `NEEDLE_TOKTX` environment variable
383
- - fix: env variable handling
384
-
385
- ## [0.10.9-pre] - 2023-01-20
386
- - fix: set mime-type to KTX2 when using cached texture data that was processed with default toktx settings
387
-
388
- ## [0.10.8-pre] - 2023-01-18
389
- - fix: pack-gltf should run toktx with default settings when no compression extension was found in texture
390
-
391
- ## [0.10.7-pre] - 2023-01-18
392
- - fix: pack-gltf when invoked with single glb path
393
-
394
- ## [0.10.6-pre.1] - 2023-01-13
395
- - fix: support for glbs using old texture pointer format ``textures/`` (new format is ``/textures/``)
396
-
397
- ## [0.10.5-pre] - 2023-01-12
398
- - fix: pack-gltf running in sequence again to avoid wasm memory error with many glbs
399
-
400
- ## [0.10.4-pre] - 2023-01-11
401
- - change: simplify mesh logs `lockBorder` setting
402
- - change: pack-gltf now searches glb files in subdirectories
403
-
404
- ## [0.10.3-pre] - 2023-01-09
405
- - fix: issue with pack-gltf running out of memory when invoked for directory with many glbs
406
- - change: await squoosh pool close
407
- - change: disable extension read-write logs by default
408
-
409
- ## [0.10.2-pre] - 2023-01-07
410
- - add: mesh simplification now welds vertices with tiny threshold to be able to simplify disjointed meshes
411
- - change: progressive loading handling of unknown slot, dont throw for unknown texture slot but instead log warning and proceed without making the texture progressively loaded
412
- - change: update gltf-transform dependency to 2.5.1
413
-
414
- ## [0.10.1-pre] - 2023-01-04
415
- - fix: error in progressive texture resize where `maxSize` could be 0
416
-
417
- ## [0.10.0-pre] - 2023-01-04
418
- - add: caching for texture transforms
419
- - change: use one needle_transform function to handle compressions of textures in one loop instead of mulitple toktx and squoosh transform methods
420
-
421
- ## [0.9.1-pre] - 2023-01-03
422
- - add: opaque extension support for primitive extensions to support mesh compression settings passed through when using progressive transformations
423
-
424
- ## [0.9.0-pre] - 2023-01-03
425
- - add: ``NEEDLE_mesh_compression`` support for running gltf-transform simplify per primitive
426
-
427
- ## [0.8.1-pre.1] - 2022-12-14
428
- - add: quality option to ``NEEDLE_compression_texture`` for webp compression
429
- - fix: progressive glb should always use name from guid and index
430
-
431
- ## [0.8.0-pre] - 2022-12-13
432
- - add: webp compression mode
433
- - change: progressive texture glbs use guid as filename
434
- - change: pack-gltf can now take directory as argument
435
-
436
- ## [0.7.1-pre] - 2022-12-08
437
- - fix: processing gltf multiple times did cause texture json pointers being resolved wrongly including loosing previously set extensions
438
-
439
- ## [0.7.0-pre] - 2022-12-05
440
- - add: make-progressive tool to transform an existing glbs and resize images with high res images being loaded from external glbs
441
-
442
- ## [0.6.4-pre] - 2022-12-03
443
- - add: compression mode ``none`` to skip toktx compression
444
- - fix: issue with texture pointer not finding previously assigned sampler when writing
445
- - fix: if commandline parsing fails take path containing ``KTX-Software`` as additional toktx search path
446
-
447
- ## [0.6.3-pre] - 2022-10-27
448
- - fix: options.file nullreference error
449
-
450
- ## [0.6.2-pre] - 2022-10-20
451
- - change: toktx temp folder adjusted, use uuid for shorter names, generate uuid once per file [PR](https://github.com/donmccurdy/glTF-Transform/pull/708)
452
-
453
- ## [0.6.1-pre] - 2022-10-20
454
- - fix: NEEDLE_compression_settings havent been passed to toktx anymore
455
-
456
- ## [0.6.0-pre] - 2022-10-19
457
- - add: generate toktx textures in ``glTF-transform`` subdirectory, input and output textures having the same random name and are prefixed with the texture index
458
-
459
- ## [0.5.1-pre] - 2022-10-12
460
- - fix texture extensions surviving multiple compressions (e.g. compression same glb multiple times)
461
- - fix cli args when invoked via npm run
462
-
463
- ## [0.5.0-pre] - 2022-10-11
464
- - add draco support again
465
-
466
- ## [0.4.1-pre] - 2022-10-11
467
- - fix texture extension pass-through
468
-
469
- ## [0.4.0-pre] - 2022-10-11
470
- - update toktx to gltf-Transform v2.4.4
471
-
472
- ## [0.3.0-pre] - 2022-10-06
473
- - add: handle NEEDLE_compression_texture extension and API to toktx to control cli arguments per texture
474
-
475
- ## [0.2.2-pre] - 2022-10-03
476
- - add: allow setting ``--toktxPath`` from commandline on windows
477
-
478
- ## [0.2.1-pre] - 2022-10-03
479
- - fix bug where EXT_texture_exr extension would be inserted in all textures
480
-
481
- ## [0.2.0-pre] - 2022-10-02
482
- - handle KHR_animation_pointer
483
- - handle texture json pointers
484
-
485
- ## [0.1.3-pre] - 2022-09-26
1
+ # Changelog
2
+ All notable changes to this package will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [2.9.5] - 2024-05-23
8
+ - change: `product` usecase uses `UASTC` compression for 'normalTexture'
9
+ - update gltf-transform to 4.1.3
10
+
11
+ ## [2.9.0] - 2024-05-22
12
+ - add: initial texture compression mode support for `world` and `product`
13
+
14
+ ## [2.8.1] - 2024-04-17
15
+ - bump version
16
+
17
+ ## [2.8.1-alpha.0] - 2024-03-26
18
+ - Fix: Issue where cache key gets longer depending on the primitive count
19
+ - Fix: Cache key not taking index buffer into account
20
+ - Fix: Caching of mesh LODs did clone shared mesh attributes for every primitive instead of re-using previous clones
21
+
22
+ ## [2.8.0-alpha.2] - 2024-03-04
23
+ - change: use webp compression for textures smaller than 32x32
24
+ - fix: webp compression for small textures (64x64)
25
+
26
+ ## [2.8.0-alpha.0] - 2024-02-27
27
+ - change: `product` usecase now uses webp compression for 'normalTexture' and 'metallicRoughnessTexture' textures
28
+
29
+ ## [2.7.1] - 2024-02-14
30
+ - fix: bug in caching path due to change in 2.7.0-alpha.2
31
+
32
+ ## [2.7.0] - 2024-02-13
33
+ - bump version
34
+
35
+ ## [2.7.0-alpha.2] - 2024-02-13
36
+ - fix: processing for some very large meshes where hashing the meshes failed (for caching the results)
37
+
38
+ ## [2.7.0-alpha.1] - 2024-01-13
39
+ - fix: handle LOD omitting and remove deleted files from progressive transform results list
40
+
41
+ ## [2.7.0-alpha] - 2024-01-13
42
+ - add: VRM mesh simplification support
43
+ - fix: issue where the output directory was not created if it didn't exist yet
44
+ - fix: try resolve deduplicated meshes
45
+ - change: update gltf-transform to 4.1.1
46
+ - change: modify mesh LOD settings for more vertices
47
+
48
+ ## [2.6.0-alpha] - 2024-12-16
49
+ - add: create placeholder textures for missing jpg, png, webp, gif, tif on disc
50
+ - fix: compressing a gltf file to a different output directory does not falsely delete old external textures on disc in the input directory
51
+
52
+ ## [2.5.0] - 2024-12-16
53
+ - release
54
+
55
+ ## [2.4.0] - 2024-09-11
56
+ - release
57
+
58
+ ## [2.4.0-beta.5] - 2024-09-06
59
+ - fix: issue where mesh LODs would in some cases be compressed with "draco" while the root file would be compressed with "mesh-opt" if not explicitly specified in the root file. This would cause invalid rendering and randomly scaled LOD meshes. Now mesh LODs will always use the same mesh compression. [NE 5297](https://linear.app/needle/issue/NE-5297)
60
+ - change: update gltf-transform dependency to 4.0.8
61
+
62
+ ## [2.4.0-beta] - 2024-08-13
63
+ - fix: issue where a mesh lod is removed during second processing of a directory that contains existing mesh lods
64
+
65
+ ## [2.4.0-alpha.3] - 2024-08-11
66
+ - fix: issue where files would not correctly be overriden in subdirectories when no output directory was specified
67
+
68
+ ## [2.4.0-alpha.2] - 2024-06-29
69
+ - fix: prevent joining/flattening of progressive assets
70
+
71
+ ## [2.4.0-alpha.1] - 2024-06-26
72
+ - add: heuristic for choosing mesh compression if not explictly configured
73
+
74
+ ## [2.3.0-alpha.2] - 2024-06-26
75
+ - change: usecase `product` does compress with UASTC again (for certain slots)
76
+
77
+ ## [2.3.0-alpha.1] - 2024-06-23
78
+ - change: bump gltf-transform to 4.0.2 to fix meshopt skinning regression [1439](https://github.com/donmccurdy/glTF-Transform/pull/1439)
79
+
80
+ ## [2.3.0-alpha] - 2024-06-22
81
+ - add: flatten and join for `product` usecase
82
+
83
+ ## [2.2.1-alpha.8] - 2023-06-22
84
+ - add: CLI <output> support
85
+ - fix: register webp extension for valid glTF files. [issue 5122](https://linear.app/needle/issue/NE-5122)
86
+ - fix: issue where VRM material would be pruned
87
+ - change: VRM use meshopt compression where any blendshapes are found
88
+
89
+ ## [2.2.1-alpha.7] - 2023-06-19
90
+ - fix: WARN if image validation can not run
91
+ - change: compress lightmap textures with webp
92
+
93
+ ## [2.2.1-alpha.5] - 2023-06-18
94
+ - add: `stats` now includes json and animation size info
95
+ - change: VRM's are compressed with meshopt again
96
+ - change: usecase `product` now uses webp compression
97
+
98
+ ## [2.2.1-alpha.4] - 2023-06-17
99
+ - add: `--verbose` option to transform command
100
+ - add: `stats` command to create stats.needle.json
101
+ - add: automatically detect mimetype mismatch and attempt to fix it
102
+
103
+ ## [2.2.1-alpha] - 2023-06-15
104
+ - fix: issue with progressive mesh cache key calculation when running multiple transform processes with different configurations
105
+
106
+ ## [2.2.0-alpha.11] - 2023-06-14
107
+ - fix: issue where progressive transform with un-indexed meshes would fail
108
+
109
+ ## [2.2.0-alpha.10] - 2023-06-13
110
+ - fix: progressive transform of converted GLB files where meshes don't have indicies
111
+ - fix: skip progressive texture generation for textures for textures that already match the lowest LOD size
112
+ - fix: if compression is set to None the LOD textures should respect that setting and also not be compressed
113
+ - fix: fallback mesh density calculation for meshes that aren't indexed
114
+ - fix: NEEDLE_mesh_compression extension falsely overriding primitive extensions
115
+
116
+ ## [2.2.0-alpha.5] - 2023-06-06
117
+ - add: CLI `--progressive` option to `transform` command (default is true)
118
+ - add: CLI `--compress` option to `transform` command (default is true)
119
+ - add: config `meshes: { lods: boolean }` option
120
+ - remove: CLI "compress" command
121
+ - change: enable texture LODs by default
122
+ - fix: `--config` path can now point to a directory or a `needle.config.json` file as well
123
+ - fix: mesh LOD regression caused by change in gltf-transform `weld` behaviour
124
+ - fix: KTX SOFTWARE >= 4.3.0 is installed
125
+
126
+ ## [2.1.0-alpha.6] - 2023-06-04
127
+ - fix: errors when invoking npm scripts caused by the cli program
128
+ - fix: remove cache directory error
129
+ - fix: remove dedup for textures since this currently causes issues with gltf-progressive loading
130
+
131
+ ## [2.1.0-alpha] - 2023-06-03
132
+ - add: compression config support for high-level usecases that can be passed via commandline arguments or via config. Available options are currently `default`, `world` and `product`.
133
+ - add: texture LODs can now be generated by passing in the path to a compression config. `--config <path/to/config.json>`
134
+ - change: VRMs now use draco mesh compression by default
135
+
136
+ ### Config Examples
137
+ - `default` - use default compression. When not explictly configured textures will be compressed with ETC1S
138
+ - `product` - when not explictly configured textures will use UASTC for `metallicRoughnessTexture` and `normalTexture`
139
+ - `world` - generate texture LODs when enabled (and not explictly disabled by `textures: { lods: false }`)
140
+ ```json
141
+ {
142
+ "usecase": "default" // optional
143
+ "textures" : {
144
+ "lods": true
145
+ }
146
+ }
147
+ ```
148
+ The config can also be part of a `needle.config.json`:
149
+ ```json
150
+ {
151
+ ... regular needle.config
152
+ "gltf": {
153
+ "usecase": "default" // optional
154
+ "textures": {
155
+ "lods": true
156
+ }
157
+ }
158
+ }
159
+ ```
160
+
161
+ ## [2.0.0-alpha] - 2023-06-01
162
+ - update gltf-transform dependency to 4.x
163
+ - change: ensure ETC1S and UASTC textures are power of 2
164
+
165
+ - CLI: commands can be run with `needle-gltf <command>`
166
+ - CLI: add `--cache` to allow disabling cache with `--cache False` (default true)
167
+ - CLI: add `--stats` to produce `.needle.stats.json` (default false)
168
+ - CLI: change `--output` to be the optional second argument
169
+
170
+ ## [1.6.0-alpha.7] - 2023-05-30
171
+ - fix: npx cli command return wrong error due to `packGLTF` not returning a booelan
172
+ - fix: mjs script import paths
173
+
174
+ ## [1.6.0-alpha.5] - 2023-05-28
175
+ - fix: determine build pipeline version
176
+ - change: throw error and exit process if packing or transform fails
177
+
178
+ ## [1.6.0-alpha.2] - 2023-05-27
179
+ - add: `gltf-build-pipeline` commandline support with `transform` and `compress` (pack-gltf) options.
180
+
181
+ ## [1.5.0-alpha.12] - 2023-05-20
182
+ - add: pack-gltf now also runs `resample` for animations
183
+ - fix: nullreference error in accessing opaque debug options
184
+
185
+ ## [1.5.0-alpha.10] - 2023-05-17
186
+ - add: `generateLods` option to progressive texture settings
187
+
188
+ ## [1.5.0-alpha.9] - 2023-05-16
189
+ - add: start of VRM 1.0 support. Not implemented is the `VRMC_materials_mtoon` extension
190
+
191
+ ## [1.5.0-alpha.8] - 2023-05-16
192
+ - fix: issue where updating ktx compressed texture extension also flattened the path
193
+
194
+ ## [1.5.0-alpha.7] - 2023-05-16
195
+ - fix: external resources that are KTX2 compressed are now saved with a `.ktx2` extension
196
+ - change: toktx now uses compression "auto" mode to select uastc or etc1s
197
+ - change: toktx now checks the slots and increases quality for `metallicRoughnessTexture` and `normalTexture` but keeps using ETC1S for smaller file size
198
+
199
+ ## [1.5.0-alpha.6] - 2023-05-15
200
+ - fix: If not further specified then automatically use UASTC for textures that are in either `normalTexture` or `metallicRoughnessTexture` slots
201
+
202
+ ## [1.5.0-alpha.5] - 2023-05-04
203
+ - fix: NEEDLE_opaque should handle if VRM texture index is negative
204
+ - change: exit with code 1 if any file packing fails
205
+
206
+ ## [1.5.0-alpha.4] - 2023-05-03
207
+ - fix: issue in NEEDLE_opaque resolving of VRM textures, also resolve `meta.texture`
208
+ - fix: VRMs now compress meshes with mesh-opt if nothing is specified
209
+ - change: include version in cache directory
210
+
211
+ ## [1.5.0-alpha.3] - 2023-05-03
212
+ - add: VRM progressive textures support
213
+ - fix: VRM format should be saved as GLB. See https://github.com/donmccurdy/glTF-Transform/issues/1390
214
+ - fix: VRM texture index handling
215
+
216
+ ## [1.5.0-alpha] - 2023-05-01
217
+ - add: NEEDLE_opaque `node: <index>` retargeting
218
+ - add: passthrough VRM extension
219
+
220
+ ## [1.4.11] - 2023-04-29
221
+ - add: NEEDLE_progressive mesh now run sparse transform
222
+ - change: cli params for debug and caching are now `--debug` and `--no-caching`
223
+
224
+ ## [1.4.10] - 2023-04-23
225
+ - add: NEEDLE_progressive can now load and process already draco compressed meshes
226
+
227
+ ## [1.4.9] - 2023-04-23
228
+ - add: NEEDLE_progressive now have `hash` field for LODs which is generated using the content of the LOD and it's settings that produced it.
229
+ - fix: NEEDLE_progressive catches error when copying mesh with extensions where the copy operation fails
230
+
231
+ ## [1.4.8] - 2023-04-22
232
+ - fix: update sharp package to `^0.32.6`
233
+ - change: NEEDLE_progressive meshes max LOD error increased
234
+
235
+ ## [1.4.7] - 2023-04-16
236
+ - add: `asset.extras.needle` now contains information about used build pipeline
237
+
238
+ ## [1.4.6] - 2023-04-10
239
+ - fix: NEEDLE_progressive meshes do not revert primitive data for skinned meshes anymore. See NE-4596
240
+
241
+ ## [1.4.5] - 2023-04-05
242
+ - fix: generating mesh and texture LOD for glbs without `NEEDLE_` extension
243
+ - fix: guid generation for progressive meshes when no `NEEDLE_` extension is present
244
+
245
+ ## [1.4.4] - 2023-04-03
246
+ - change: clamp simplification error for LOD meshes to 5%
247
+
248
+ ## [1.4.3] - 2023-04-02
249
+ - release
250
+ - fix: generate cache key for meshes
251
+
252
+ ## [1.4.1-beta.15] - 2023-04-02
253
+ - fix: issue where discarding all LODs might result in broken mesh due to simplify having modified the original mesh
254
+ - fix: don't produce LODs if GLB/glTF was produced with old generator
255
+
256
+ ## [1.4.1-beta.13] - 2023-03-26
257
+ - change: passthrough `NEEDLE_editor` & `NEEDLE_gltf_dependencies` extensions
258
+
259
+ ## [1.4.1-beta.12] - 2023-03-23
260
+ - add: NEEDLE_progressive LODs can now contain more info per texture or mesh. Meshes contain vertex- and index counts
261
+ - change: the cache can now store and retrieve meta information
262
+
263
+ ## [1.4.1-beta.11] - 2023-03-20
264
+ - add: NEEDLE_progressive LOD meshes morph targets data
265
+ - fix: NEEDLE_progressive should check if simplifcation did result in improved meshes (> 32 verts removed && > 5 % improvement) and otherwise discard LODs (and the whole extension if no improvement was made)
266
+ - change: Unity NEEDLE_progressive logs
267
+
268
+ ## [1.4.1-beta.10] - 2023-03-19
269
+ - change: NEEDLE_progressive calculates density per mesh level
270
+ - change: NEEDLE_progressive `uri` field is removed and added `lod` array of objects
271
+
272
+ ## [1.4.1-beta.8] - 2023-03-18
273
+ - change: if an asset doesnt have a guid we use a uuid package now
274
+ - change: ignore mesh LODs with vertex count < 4
275
+ - change: allow generating mesh LODs without extension (if the mesh has > 32 vertices)
276
+ - change: omit generated LODs if the change is too small (e.g. the vertex count didnt change enough)
277
+
278
+ ## [1.4.1-beta.6] - 2023-03-15
279
+ - add: caching support for mesh LODs
280
+
281
+ ## [1.4.1-beta.5] - 2023-03-15
282
+ - add: auto LODs now calculate mesh density
283
+ - change: generate 6 LOD level
284
+ - change: use ratio 0.5 of the previous LOD level
285
+ - change: bump gltf-transform to 3.10.1 to fix simplifier
286
+ - change: add sparse transform to progressive transform
287
+
288
+ ## [1.4.1-beta.3] - 2023-03-14
289
+ - fix: wait for mesh simplifier to be ready
290
+
291
+ ## [1.4.1-beta.2] - 2023-03-13
292
+ - change: update gltf-transform to `^3.10.0`
293
+ - change: progressive mesh transform does now set ratio for LODs (see [simplifier issue 661 on github](https://github.com/zeux/meshoptimizer/issues/661))
294
+ - fix: issue where progressive meshes were not generated if a mesh was multiple times in the glTF
295
+ - change: simplify to use ratio, fix issue where not all meshes were processed
296
+ - change: auto LOD max error set to 0.1
297
+
298
+ ## [1.4.0-beta] - 2023-03-12
299
+ - add: progressive mesh transform to automatically generate mesh LOD levels (currently we only generate one low poly version)
300
+
301
+ ## [1.3.1] - 2023-10-20
302
+ - fix: meshopt with khr_animation_2 extension was not correctly processed: animated node and target were not passed to gltf-transform which caused a wrong processing of meshopt. We now pass this information to the gltf-transform AnimationChannel object
303
+ - change: bump gltf-transform to 3.7.3
304
+
305
+ ## [1.2.4] - 2023-09-30
306
+ - fix: bug in progressive texture transform where extension wasnt added correctly (NE-3627)
307
+
308
+ ## [1.2.3] - 2023-09-29
309
+ - fix: bug in progressive texture transform where texture wasnt found
310
+
311
+ ## [1.2.2] - 2023-08-14
312
+ - remove: legacy squoosh dependency
313
+
314
+ ## [1.2.1] - 2023-07-25
315
+ - change: set reference to materials used by json pointers
316
+
317
+ ## [1.2.0] - 2023-07-21
318
+ - add: resolving of material json pointers
319
+
320
+ ## [1.1.6] - 2023-07-10
321
+ - change: bump gltf-transform dependency to latest 3.4.6
322
+
323
+ ## [1.1.5] - 2023-06-26
324
+ - change: bump gltf-transform dependency to latest 3.4.3
325
+
326
+ ## [1.1.4] - 2023-06-09
327
+ - fix: progressive texture transform didnt pass mesh compression setting through
328
+
329
+ ## [1.1.3] - 2023-05-24
330
+ - minor change adding info about reduced size after processing gltf files
331
+
332
+ ## [1.1.2] - 2023-05-24
333
+ - fix: wasm out of memory error caused by starting to many compression processes at once
334
+
335
+ ## [1.1.1] - 2023-05-18
336
+ - fix: fix progressive texture processing for empty slots array, assume texture slot "baseColorTexture" (for custom shader support)
337
+
338
+ ## [1.1.0] - 2023-05-06
339
+ - add: support for per glb mesh compression selection (none, draco or meshopt)
340
+
341
+ ## [1.0.6] - 2023-05-06
342
+ - fix: dont add textures to cache when toktx is not installed
343
+
344
+ ## [1.0.5] - 2023-05-06
345
+ - fix: catch exception in cases where toktx is not installed (e.g. in CI environment) and log warning instead
346
+
347
+ ## [1.0.4] - 2023-04-24
348
+ - fix: error caused by missing simplifier
349
+
350
+ ## [1.0.3] - 2023-04-24
351
+ - fix: webp quality setting not being rounded resulting in compression to fail
352
+
353
+ ## [1.0.2] - 2023-04-19
354
+ - change: progressive should not log error out when running for already compressed gltf
355
+ - change: ignore EXT_texture_exr extension re-assignment
356
+
357
+ ## [1.0.1] - 2023-04-17
358
+ - fix: register meshopt decoder
359
+ - fix: catch exception in document read
360
+ - change: log gpu memory estimation for textures
361
+
362
+ ## [1.0.0] - 2023-04-04
363
+ - change: file utils use needle.config.json to find files if no directory was specified
364
+ - change: add generator info
365
+ - change: try catch toktx exception
366
+ - change: improve relative path handling
367
+ - change: use env variable set by npm to resolve relative paths
368
+ - add: option to disallow toktx using `no-toktx` commandline parameter
369
+ - update to gltf-transform 3.1.4
370
+
371
+ ## [0.11.2-pre] - 2023-01-30
372
+ - fix: clean up logic for finding toktx to only use one approach
373
+
374
+ ## [0.11.1-pre] - 2023-01-27
375
+ - fix: getting correct gltf transform texture for texture definition
376
+ - fix: opaque extension now also uses getTexture util method
377
+
378
+ ## [0.11.0-pre] - 2023-01-25
379
+ - add: script `transform` does run progressive and gltf-pack
380
+ - change: script `transform:progressive` can now process all files in passed in directory
381
+
382
+ ## [0.10.10-pre] - 2023-01-25
383
+ - add: `NEEDLE_TOKTX` environment variable
384
+ - fix: env variable handling
385
+
386
+ ## [0.10.9-pre] - 2023-01-20
387
+ - fix: set mime-type to KTX2 when using cached texture data that was processed with default toktx settings
388
+
389
+ ## [0.10.8-pre] - 2023-01-18
390
+ - fix: pack-gltf should run toktx with default settings when no compression extension was found in texture
391
+
392
+ ## [0.10.7-pre] - 2023-01-18
393
+ - fix: pack-gltf when invoked with single glb path
394
+
395
+ ## [0.10.6-pre.1] - 2023-01-13
396
+ - fix: support for glbs using old texture pointer format ``textures/`` (new format is ``/textures/``)
397
+
398
+ ## [0.10.5-pre] - 2023-01-12
399
+ - fix: pack-gltf running in sequence again to avoid wasm memory error with many glbs
400
+
401
+ ## [0.10.4-pre] - 2023-01-11
402
+ - change: simplify mesh logs `lockBorder` setting
403
+ - change: pack-gltf now searches glb files in subdirectories
404
+
405
+ ## [0.10.3-pre] - 2023-01-09
406
+ - fix: issue with pack-gltf running out of memory when invoked for directory with many glbs
407
+ - change: await squoosh pool close
408
+ - change: disable extension read-write logs by default
409
+
410
+ ## [0.10.2-pre] - 2023-01-07
411
+ - add: mesh simplification now welds vertices with tiny threshold to be able to simplify disjointed meshes
412
+ - change: progressive loading handling of unknown slot, dont throw for unknown texture slot but instead log warning and proceed without making the texture progressively loaded
413
+ - change: update gltf-transform dependency to 2.5.1
414
+
415
+ ## [0.10.1-pre] - 2023-01-04
416
+ - fix: error in progressive texture resize where `maxSize` could be 0
417
+
418
+ ## [0.10.0-pre] - 2023-01-04
419
+ - add: caching for texture transforms
420
+ - change: use one needle_transform function to handle compressions of textures in one loop instead of mulitple toktx and squoosh transform methods
421
+
422
+ ## [0.9.1-pre] - 2023-01-03
423
+ - add: opaque extension support for primitive extensions to support mesh compression settings passed through when using progressive transformations
424
+
425
+ ## [0.9.0-pre] - 2023-01-03
426
+ - add: ``NEEDLE_mesh_compression`` support for running gltf-transform simplify per primitive
427
+
428
+ ## [0.8.1-pre.1] - 2022-12-14
429
+ - add: quality option to ``NEEDLE_compression_texture`` for webp compression
430
+ - fix: progressive glb should always use name from guid and index
431
+
432
+ ## [0.8.0-pre] - 2022-12-13
433
+ - add: webp compression mode
434
+ - change: progressive texture glbs use guid as filename
435
+ - change: pack-gltf can now take directory as argument
436
+
437
+ ## [0.7.1-pre] - 2022-12-08
438
+ - fix: processing gltf multiple times did cause texture json pointers being resolved wrongly including loosing previously set extensions
439
+
440
+ ## [0.7.0-pre] - 2022-12-05
441
+ - add: make-progressive tool to transform an existing glbs and resize images with high res images being loaded from external glbs
442
+
443
+ ## [0.6.4-pre] - 2022-12-03
444
+ - add: compression mode ``none`` to skip toktx compression
445
+ - fix: issue with texture pointer not finding previously assigned sampler when writing
446
+ - fix: if commandline parsing fails take path containing ``KTX-Software`` as additional toktx search path
447
+
448
+ ## [0.6.3-pre] - 2022-10-27
449
+ - fix: options.file nullreference error
450
+
451
+ ## [0.6.2-pre] - 2022-10-20
452
+ - change: toktx temp folder adjusted, use uuid for shorter names, generate uuid once per file [PR](https://github.com/donmccurdy/glTF-Transform/pull/708)
453
+
454
+ ## [0.6.1-pre] - 2022-10-20
455
+ - fix: NEEDLE_compression_settings havent been passed to toktx anymore
456
+
457
+ ## [0.6.0-pre] - 2022-10-19
458
+ - add: generate toktx textures in ``glTF-transform`` subdirectory, input and output textures having the same random name and are prefixed with the texture index
459
+
460
+ ## [0.5.1-pre] - 2022-10-12
461
+ - fix texture extensions surviving multiple compressions (e.g. compression same glb multiple times)
462
+ - fix cli args when invoked via npm run
463
+
464
+ ## [0.5.0-pre] - 2022-10-11
465
+ - add draco support again
466
+
467
+ ## [0.4.1-pre] - 2022-10-11
468
+ - fix texture extension pass-through
469
+
470
+ ## [0.4.0-pre] - 2022-10-11
471
+ - update toktx to gltf-Transform v2.4.4
472
+
473
+ ## [0.3.0-pre] - 2022-10-06
474
+ - add: handle NEEDLE_compression_texture extension and API to toktx to control cli arguments per texture
475
+
476
+ ## [0.2.2-pre] - 2022-10-03
477
+ - add: allow setting ``--toktxPath`` from commandline on windows
478
+
479
+ ## [0.2.1-pre] - 2022-10-03
480
+ - fix bug where EXT_texture_exr extension would be inserted in all textures
481
+
482
+ ## [0.2.0-pre] - 2022-10-02
483
+ - handle KHR_animation_pointer
484
+ - handle texture json pointers
485
+
486
+ ## [0.1.3-pre] - 2022-09-26
486
487
  - initial release