@luma.gl/gltf 9.3.0-alpha.4 → 9.3.0-alpha.8

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 (90) hide show
  1. package/dist/dist.dev.js +1305 -327
  2. package/dist/dist.min.js +98 -46
  3. package/dist/gltf/animations/animations.d.ts +16 -4
  4. package/dist/gltf/animations/animations.d.ts.map +1 -1
  5. package/dist/gltf/animations/interpolate.d.ts +4 -3
  6. package/dist/gltf/animations/interpolate.d.ts.map +1 -1
  7. package/dist/gltf/animations/interpolate.js +27 -36
  8. package/dist/gltf/animations/interpolate.js.map +1 -1
  9. package/dist/gltf/create-gltf-model.d.ts +15 -1
  10. package/dist/gltf/create-gltf-model.d.ts.map +1 -1
  11. package/dist/gltf/create-gltf-model.js +154 -48
  12. package/dist/gltf/create-gltf-model.js.map +1 -1
  13. package/dist/gltf/create-scenegraph-from-gltf.d.ts +37 -2
  14. package/dist/gltf/create-scenegraph-from-gltf.d.ts.map +1 -1
  15. package/dist/gltf/create-scenegraph-from-gltf.js +74 -6
  16. package/dist/gltf/create-scenegraph-from-gltf.js.map +1 -1
  17. package/dist/gltf/gltf-animator.d.ts +26 -0
  18. package/dist/gltf/gltf-animator.d.ts.map +1 -1
  19. package/dist/gltf/gltf-animator.js +22 -19
  20. package/dist/gltf/gltf-animator.js.map +1 -1
  21. package/dist/gltf/gltf-extension-support.d.ts +10 -0
  22. package/dist/gltf/gltf-extension-support.d.ts.map +1 -0
  23. package/dist/gltf/gltf-extension-support.js +173 -0
  24. package/dist/gltf/gltf-extension-support.js.map +1 -0
  25. package/dist/index.cjs +1247 -294
  26. package/dist/index.cjs.map +4 -4
  27. package/dist/index.d.ts +2 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/parsers/parse-gltf-animations.d.ts +1 -0
  32. package/dist/parsers/parse-gltf-animations.d.ts.map +1 -1
  33. package/dist/parsers/parse-gltf-animations.js +73 -28
  34. package/dist/parsers/parse-gltf-animations.js.map +1 -1
  35. package/dist/parsers/parse-gltf-lights.d.ts.map +1 -1
  36. package/dist/parsers/parse-gltf-lights.js +112 -18
  37. package/dist/parsers/parse-gltf-lights.js.map +1 -1
  38. package/dist/parsers/parse-gltf.d.ts +19 -2
  39. package/dist/parsers/parse-gltf.d.ts.map +1 -1
  40. package/dist/parsers/parse-gltf.js +101 -61
  41. package/dist/parsers/parse-gltf.js.map +1 -1
  42. package/dist/parsers/parse-pbr-material.d.ts +115 -2
  43. package/dist/parsers/parse-pbr-material.d.ts.map +1 -1
  44. package/dist/parsers/parse-pbr-material.js +565 -54
  45. package/dist/parsers/parse-pbr-material.js.map +1 -1
  46. package/dist/pbr/pbr-environment.d.ts +6 -0
  47. package/dist/pbr/pbr-environment.d.ts.map +1 -1
  48. package/dist/pbr/pbr-environment.js +15 -12
  49. package/dist/pbr/pbr-environment.js.map +1 -1
  50. package/dist/pbr/pbr-material.d.ts +13 -3
  51. package/dist/pbr/pbr-material.d.ts.map +1 -1
  52. package/dist/webgl-to-webgpu/convert-webgl-attribute.d.ts +12 -1
  53. package/dist/webgl-to-webgpu/convert-webgl-attribute.d.ts.map +1 -1
  54. package/dist/webgl-to-webgpu/convert-webgl-attribute.js +3 -0
  55. package/dist/webgl-to-webgpu/convert-webgl-attribute.js.map +1 -1
  56. package/dist/webgl-to-webgpu/convert-webgl-sampler.d.ts +11 -5
  57. package/dist/webgl-to-webgpu/convert-webgl-sampler.d.ts.map +1 -1
  58. package/dist/webgl-to-webgpu/convert-webgl-sampler.js +16 -12
  59. package/dist/webgl-to-webgpu/convert-webgl-sampler.js.map +1 -1
  60. package/dist/webgl-to-webgpu/convert-webgl-topology.d.ts +2 -9
  61. package/dist/webgl-to-webgpu/convert-webgl-topology.d.ts.map +1 -1
  62. package/dist/webgl-to-webgpu/convert-webgl-topology.js +2 -14
  63. package/dist/webgl-to-webgpu/convert-webgl-topology.js.map +1 -1
  64. package/dist/webgl-to-webgpu/gltf-webgl-constants.d.ts +27 -0
  65. package/dist/webgl-to-webgpu/gltf-webgl-constants.d.ts.map +1 -0
  66. package/dist/webgl-to-webgpu/gltf-webgl-constants.js +34 -0
  67. package/dist/webgl-to-webgpu/gltf-webgl-constants.js.map +1 -0
  68. package/package.json +8 -9
  69. package/src/gltf/animations/animations.ts +17 -5
  70. package/src/gltf/animations/interpolate.ts +49 -68
  71. package/src/gltf/create-gltf-model.ts +214 -48
  72. package/src/gltf/create-scenegraph-from-gltf.ts +131 -12
  73. package/src/gltf/gltf-animator.ts +34 -25
  74. package/src/gltf/gltf-extension-support.ts +214 -0
  75. package/src/index.ts +10 -2
  76. package/src/parsers/parse-gltf-animations.ts +94 -33
  77. package/src/parsers/parse-gltf-lights.ts +147 -20
  78. package/src/parsers/parse-gltf.ts +170 -90
  79. package/src/parsers/parse-pbr-material.ts +865 -80
  80. package/src/pbr/pbr-environment.ts +38 -15
  81. package/src/pbr/pbr-material.ts +18 -3
  82. package/src/webgl-to-webgpu/convert-webgl-attribute.ts +12 -1
  83. package/src/webgl-to-webgpu/convert-webgl-sampler.ts +38 -29
  84. package/src/webgl-to-webgpu/convert-webgl-topology.ts +2 -14
  85. package/src/webgl-to-webgpu/gltf-webgl-constants.ts +35 -0
  86. package/dist/utils/deep-copy.d.ts +0 -3
  87. package/dist/utils/deep-copy.d.ts.map +0 -1
  88. package/dist/utils/deep-copy.js +0 -21
  89. package/dist/utils/deep-copy.js.map +0 -1
  90. package/src/utils/deep-copy.ts +0 -22
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-animator.js","sourceRoot":"","sources":["../../src/gltf/gltf-animator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gltf-animator.js","sourceRoot":"","sources":["../../src/gltf/gltf-animator.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,GAAG,EAAC,MAAM,eAAe,CAAC;AAGlC,OAAO,EAAC,WAAW,EAAC,oCAAiC;AAgBrD,qEAAqE;AACrE,MAAM,kBAAkB;IACtB,yCAAyC;IACzC,SAAS,CAAgB;IACzB,sCAAsC;IACtC,mBAAmB,CAAyB;IAC5C,sCAAsC;IACtC,SAAS,GAAW,CAAC,CAAC;IACtB,6CAA6C;IAC7C,OAAO,GAAY,IAAI,CAAC;IACxB,iCAAiC;IACjC,KAAK,GAAW,CAAC,CAAC;IAElB,6CAA6C;IAC7C,YAAY,KAA8B;QACxC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,8EAA8E;IAC9E,OAAO,CAAC,MAAc;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;QAC9B,MAAM,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAErD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAC,EAAE,EAAE;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAUD,qEAAqE;AACrE,MAAM,OAAO,YAAY;IACvB,wCAAwC;IACxC,UAAU,CAAuB;IAEjC,4DAA4D;IAC5D,YAAY,KAAwB;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,aAAa,KAAK,EAAE,CAAC;YACpD,OAAO,IAAI,kBAAkB,CAAC;gBAC5B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,SAAS,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAC;aAChD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,OAAO,CAAC,IAAY;QAClB,GAAG,CAAC,IAAI,CAAC,sEAAsE,CAAC,EAAE,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,gFAAgF;IAChF,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,sEAAsE;IACtE,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { GLTFPostprocessed } from '@loaders.gl/gltf';
2
+ export type GLTFExtensionSupportLevel = 'built-in' | 'parsed-and-wired' | 'loader-only' | 'none';
3
+ export type GLTFExtensionSupport = {
4
+ extensionName: string;
5
+ supported: boolean;
6
+ supportLevel: GLTFExtensionSupportLevel;
7
+ comment: string;
8
+ };
9
+ export declare function getGLTFExtensionSupport(gltf: GLTFPostprocessed): Map<string, GLTFExtensionSupport>;
10
+ //# sourceMappingURL=gltf-extension-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf-extension-support.d.ts","sourceRoot":"","sources":["../../src/gltf/gltf-extension-support.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,yBAAyB,GAAG,UAAU,GAAG,kBAAkB,GAAG,aAAa,GAAG,MAAM,CAAC;AAEjG,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,yBAAyB,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAmJF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,GACtB,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAoBnC"}
@@ -0,0 +1,173 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const UNKNOWN_EXTENSION_SUPPORT = {
5
+ supportLevel: 'none',
6
+ comment: 'Not currently listed in the luma.gl glTF extension support registry.'
7
+ };
8
+ const GLTF_EXTENSION_SUPPORT_REGISTRY = {
9
+ KHR_draco_mesh_compression: {
10
+ supportLevel: 'built-in',
11
+ comment: 'Decoded by loaders.gl before luma.gl builds the scenegraph.'
12
+ },
13
+ EXT_meshopt_compression: {
14
+ supportLevel: 'built-in',
15
+ comment: 'Meshopt-compressed primitives are decoded during load.'
16
+ },
17
+ KHR_mesh_quantization: {
18
+ supportLevel: 'built-in',
19
+ comment: 'Quantized accessors are unpacked before geometry creation.'
20
+ },
21
+ KHR_lights_punctual: {
22
+ supportLevel: 'built-in',
23
+ comment: 'Parsed into luma.gl Light objects.'
24
+ },
25
+ KHR_materials_unlit: {
26
+ supportLevel: 'built-in',
27
+ comment: 'Unlit materials bypass the default lighting path.'
28
+ },
29
+ KHR_materials_emissive_strength: {
30
+ supportLevel: 'built-in',
31
+ comment: 'Applied by the stock PBR shader.'
32
+ },
33
+ KHR_texture_basisu: {
34
+ supportLevel: 'built-in',
35
+ comment: 'BasisU / KTX2 textures pass through when the device supports them.'
36
+ },
37
+ KHR_texture_transform: {
38
+ supportLevel: 'built-in',
39
+ comment: 'UV transforms are applied during load.'
40
+ },
41
+ EXT_texture_webp: {
42
+ supportLevel: 'loader-only',
43
+ comment: 'Texture source is resolved during load; final support depends on browser and device decode support.'
44
+ },
45
+ EXT_texture_avif: {
46
+ supportLevel: 'loader-only',
47
+ comment: 'Texture source is resolved during load; final support depends on browser and device decode support.'
48
+ },
49
+ KHR_materials_specular: {
50
+ supportLevel: 'built-in',
51
+ comment: 'The stock shader now applies specular factors and textures to the dielectric F0 term.'
52
+ },
53
+ KHR_materials_ior: {
54
+ supportLevel: 'built-in',
55
+ comment: 'The stock shader now drives dielectric reflectance from the glTF IOR value.'
56
+ },
57
+ KHR_materials_transmission: {
58
+ supportLevel: 'built-in',
59
+ comment: 'The stock shader now applies transmission to the base layer and exposes transparency through alpha, without a scene-color refraction buffer.'
60
+ },
61
+ KHR_materials_volume: {
62
+ supportLevel: 'built-in',
63
+ comment: 'Thickness and attenuation now tint transmitted light in the stock shader.'
64
+ },
65
+ KHR_materials_clearcoat: {
66
+ supportLevel: 'built-in',
67
+ comment: 'The stock shader now adds a secondary clearcoat specular lobe.'
68
+ },
69
+ KHR_materials_sheen: {
70
+ supportLevel: 'built-in',
71
+ comment: 'The stock shader now adds a sheen lobe for cloth-like materials.'
72
+ },
73
+ KHR_materials_iridescence: {
74
+ supportLevel: 'built-in',
75
+ comment: 'The stock shader now tints specular response with a view-dependent thin-film iridescence approximation.'
76
+ },
77
+ KHR_materials_anisotropy: {
78
+ supportLevel: 'built-in',
79
+ comment: 'The stock shader now shapes highlights and IBL response with an anisotropy-direction approximation.'
80
+ },
81
+ KHR_materials_pbrSpecularGlossiness: {
82
+ supportLevel: 'loader-only',
83
+ comment: 'Extension data can be loaded, but it is not translated into the default metallic-roughness material path.'
84
+ },
85
+ KHR_materials_variants: {
86
+ supportLevel: 'loader-only',
87
+ comment: 'Variant metadata can be loaded, but applications must choose and apply variants.'
88
+ },
89
+ EXT_mesh_gpu_instancing: {
90
+ supportLevel: 'none',
91
+ comment: 'GPU instancing data is not yet converted into luma.gl instanced draw setup.'
92
+ },
93
+ KHR_node_visibility: {
94
+ supportLevel: 'none',
95
+ comment: 'Node-visibility animations and toggles are not mapped onto runtime scenegraph state.'
96
+ },
97
+ KHR_animation_pointer: {
98
+ supportLevel: 'none',
99
+ comment: 'Animation pointers are not mapped onto runtime scenegraph updates.'
100
+ },
101
+ KHR_materials_diffuse_transmission: {
102
+ supportLevel: 'none',
103
+ comment: 'Diffuse-transmission shading is not implemented in the stock PBR shader.'
104
+ },
105
+ KHR_materials_dispersion: {
106
+ supportLevel: 'none',
107
+ comment: 'Chromatic dispersion is not implemented in the stock PBR shader.'
108
+ },
109
+ KHR_materials_volume_scatter: {
110
+ supportLevel: 'none',
111
+ comment: 'Volume scattering is not implemented in the stock PBR shader.'
112
+ },
113
+ KHR_xmp: {
114
+ supportLevel: 'none',
115
+ comment: 'Metadata payloads remain in the loaded glTF, but luma.gl does not interpret them.'
116
+ },
117
+ KHR_xmp_json_ld: {
118
+ supportLevel: 'none',
119
+ comment: 'Metadata is preserved in the glTF, but luma.gl does not interpret it.'
120
+ },
121
+ EXT_lights_image_based: {
122
+ supportLevel: 'none',
123
+ comment: 'Use loadPBREnvironment() or custom environment setup instead.'
124
+ },
125
+ EXT_texture_video: {
126
+ supportLevel: 'none',
127
+ comment: 'Video textures are not created automatically by the stock pipeline.'
128
+ },
129
+ MSFT_lod: {
130
+ supportLevel: 'none',
131
+ comment: 'Level-of-detail switching is not implemented in the stock scenegraph loader.'
132
+ }
133
+ };
134
+ export function getGLTFExtensionSupport(gltf) {
135
+ const extensionNames = Array.from(collectGLTFExtensionNames(gltf)).sort();
136
+ const extensionSupportEntries = extensionNames.map(extensionName => {
137
+ const extensionSupportDefinition = GLTF_EXTENSION_SUPPORT_REGISTRY[extensionName] || UNKNOWN_EXTENSION_SUPPORT;
138
+ return [
139
+ extensionName,
140
+ {
141
+ extensionName,
142
+ supported: extensionSupportDefinition.supportLevel === 'built-in',
143
+ supportLevel: extensionSupportDefinition.supportLevel,
144
+ comment: extensionSupportDefinition.comment
145
+ }
146
+ ];
147
+ });
148
+ return new Map(extensionSupportEntries);
149
+ }
150
+ function collectGLTFExtensionNames(gltf) {
151
+ const gltfWithRemovedExtensions = gltf;
152
+ const extensionNames = new Set();
153
+ addExtensionNames(extensionNames, gltf.extensionsUsed);
154
+ addExtensionNames(extensionNames, gltf.extensionsRequired);
155
+ addExtensionNames(extensionNames, gltfWithRemovedExtensions.extensionsRemoved);
156
+ addExtensionNames(extensionNames, Object.keys(gltf.extensions || {}));
157
+ if (gltfWithRemovedExtensions.lights?.length || gltf.nodes.some(node => 'light' in node)) {
158
+ extensionNames.add('KHR_lights_punctual');
159
+ }
160
+ if (gltf.materials.some(material => {
161
+ const gltfMaterial = material;
162
+ return gltfMaterial.unlit || gltfMaterial.extensions?.KHR_materials_unlit;
163
+ })) {
164
+ extensionNames.add('KHR_materials_unlit');
165
+ }
166
+ return extensionNames;
167
+ }
168
+ function addExtensionNames(extensionNames, newExtensionNames = []) {
169
+ for (const extensionName of newExtensionNames) {
170
+ extensionNames.add(extensionName);
171
+ }
172
+ }
173
+ //# sourceMappingURL=gltf-extension-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf-extension-support.js","sourceRoot":"","sources":["../../src/gltf/gltf-extension-support.ts"],"names":[],"mappings":"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"}