@luma.gl/gltf 9.2.6 → 9.3.0-alpha.10

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 (91) hide show
  1. package/dist/dist.dev.js +1362 -313
  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 +39 -2
  14. package/dist/gltf/create-scenegraph-from-gltf.d.ts.map +1 -1
  15. package/dist/gltf/create-scenegraph-from-gltf.js +76 -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 +1302 -276
  26. package/dist/index.cjs.map +4 -4
  27. package/dist/index.d.ts +3 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -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 +5 -0
  36. package/dist/parsers/parse-gltf-lights.d.ts.map +1 -0
  37. package/dist/parsers/parse-gltf-lights.js +163 -0
  38. package/dist/parsers/parse-gltf-lights.js.map +1 -0
  39. package/dist/parsers/parse-gltf.d.ts +19 -2
  40. package/dist/parsers/parse-gltf.d.ts.map +1 -1
  41. package/dist/parsers/parse-gltf.js +101 -61
  42. package/dist/parsers/parse-gltf.js.map +1 -1
  43. package/dist/parsers/parse-pbr-material.d.ts +115 -2
  44. package/dist/parsers/parse-pbr-material.d.ts.map +1 -1
  45. package/dist/parsers/parse-pbr-material.js +570 -54
  46. package/dist/parsers/parse-pbr-material.js.map +1 -1
  47. package/dist/pbr/pbr-environment.d.ts +10 -4
  48. package/dist/pbr/pbr-environment.d.ts.map +1 -1
  49. package/dist/pbr/pbr-environment.js +18 -15
  50. package/dist/pbr/pbr-environment.js.map +1 -1
  51. package/dist/pbr/pbr-material.d.ts +13 -3
  52. package/dist/pbr/pbr-material.d.ts.map +1 -1
  53. package/dist/webgl-to-webgpu/convert-webgl-attribute.d.ts +12 -1
  54. package/dist/webgl-to-webgpu/convert-webgl-attribute.d.ts.map +1 -1
  55. package/dist/webgl-to-webgpu/convert-webgl-attribute.js +3 -0
  56. package/dist/webgl-to-webgpu/convert-webgl-attribute.js.map +1 -1
  57. package/dist/webgl-to-webgpu/convert-webgl-sampler.d.ts +11 -5
  58. package/dist/webgl-to-webgpu/convert-webgl-sampler.d.ts.map +1 -1
  59. package/dist/webgl-to-webgpu/convert-webgl-sampler.js +16 -12
  60. package/dist/webgl-to-webgpu/convert-webgl-sampler.js.map +1 -1
  61. package/dist/webgl-to-webgpu/convert-webgl-topology.d.ts +2 -9
  62. package/dist/webgl-to-webgpu/convert-webgl-topology.d.ts.map +1 -1
  63. package/dist/webgl-to-webgpu/convert-webgl-topology.js +2 -14
  64. package/dist/webgl-to-webgpu/convert-webgl-topology.js.map +1 -1
  65. package/dist/webgl-to-webgpu/gltf-webgl-constants.d.ts +27 -0
  66. package/dist/webgl-to-webgpu/gltf-webgl-constants.d.ts.map +1 -0
  67. package/dist/webgl-to-webgpu/gltf-webgl-constants.js +34 -0
  68. package/dist/webgl-to-webgpu/gltf-webgl-constants.js.map +1 -0
  69. package/package.json +8 -9
  70. package/src/gltf/animations/animations.ts +17 -5
  71. package/src/gltf/animations/interpolate.ts +49 -68
  72. package/src/gltf/create-gltf-model.ts +214 -48
  73. package/src/gltf/create-scenegraph-from-gltf.ts +134 -11
  74. package/src/gltf/gltf-animator.ts +34 -25
  75. package/src/gltf/gltf-extension-support.ts +214 -0
  76. package/src/index.ts +11 -2
  77. package/src/parsers/parse-gltf-animations.ts +94 -33
  78. package/src/parsers/parse-gltf-lights.ts +218 -0
  79. package/src/parsers/parse-gltf.ts +170 -90
  80. package/src/parsers/parse-pbr-material.ts +870 -80
  81. package/src/pbr/pbr-environment.ts +44 -21
  82. package/src/pbr/pbr-material.ts +18 -3
  83. package/src/webgl-to-webgpu/convert-webgl-attribute.ts +12 -1
  84. package/src/webgl-to-webgpu/convert-webgl-sampler.ts +38 -29
  85. package/src/webgl-to-webgpu/convert-webgl-topology.ts +2 -14
  86. package/src/webgl-to-webgpu/gltf-webgl-constants.ts +35 -0
  87. package/dist/utils/deep-copy.d.ts +0 -3
  88. package/dist/utils/deep-copy.d.ts.map +0 -1
  89. package/dist/utils/deep-copy.js +0 -21
  90. package/dist/utils/deep-copy.js.map +0 -1
  91. package/src/utils/deep-copy.ts +0 -22
@@ -1,8 +1,11 @@
1
- import type { Device } from '@luma.gl/core';
1
+ import type { Device, SamplerProps, TextureFormat, TypedArray } from '@luma.gl/core';
2
+ import { Texture } from '@luma.gl/core';
3
+ import type { GLTFPostprocessed } from '@loaders.gl/gltf';
2
4
  import { type ParsedPBRMaterial } from "../pbr/pbr-material.js";
3
5
  import { type PBREnvironment } from "../pbr/pbr-environment.js";
4
6
  type GLTFTexture = {
5
7
  id: string;
8
+ index?: number;
6
9
  texture: {
7
10
  source: {
8
11
  image: any;
@@ -23,15 +26,77 @@ type GLTFPBRMetallicRoughness = {
23
26
  roughnessFactor?: number;
24
27
  };
25
28
  type GLTFPBRMaterial = {
29
+ extensions?: GLTFMaterialExtensions;
26
30
  unlit?: boolean;
27
31
  pbrMetallicRoughness?: GLTFPBRMetallicRoughness;
28
32
  normalTexture?: GLTFTexture;
29
33
  occlusionTexture?: GLTFTexture;
30
34
  emissiveTexture?: GLTFTexture;
31
35
  emissiveFactor?: [number, number, number];
32
- alphaMode?: 'MASK' | 'BLEND';
36
+ alphaMode?: 'OPAQUE' | 'MASK' | 'BLEND';
37
+ doubleSided?: boolean;
33
38
  alphaCutoff?: number;
34
39
  };
40
+ type GLTFMaterialSpecularExtension = {
41
+ specularFactor?: number;
42
+ specularTexture?: GLTFTexture;
43
+ specularColorFactor?: [number, number, number];
44
+ specularColorTexture?: GLTFTexture;
45
+ };
46
+ type GLTFMaterialIorExtension = {
47
+ ior?: number;
48
+ };
49
+ type GLTFMaterialTransmissionExtension = {
50
+ transmissionFactor?: number;
51
+ transmissionTexture?: GLTFTexture;
52
+ };
53
+ type GLTFMaterialVolumeExtension = {
54
+ thicknessFactor?: number;
55
+ thicknessTexture?: GLTFTexture;
56
+ attenuationDistance?: number;
57
+ attenuationColor?: [number, number, number];
58
+ };
59
+ type GLTFMaterialClearcoatExtension = {
60
+ clearcoatFactor?: number;
61
+ clearcoatTexture?: GLTFTexture;
62
+ clearcoatRoughnessFactor?: number;
63
+ clearcoatRoughnessTexture?: GLTFTexture;
64
+ clearcoatNormalTexture?: GLTFTexture;
65
+ };
66
+ type GLTFMaterialSheenExtension = {
67
+ sheenColorFactor?: [number, number, number];
68
+ sheenColorTexture?: GLTFTexture;
69
+ sheenRoughnessFactor?: number;
70
+ sheenRoughnessTexture?: GLTFTexture;
71
+ };
72
+ type GLTFMaterialIridescenceExtension = {
73
+ iridescenceFactor?: number;
74
+ iridescenceTexture?: GLTFTexture;
75
+ iridescenceIor?: number;
76
+ iridescenceThicknessMinimum?: number;
77
+ iridescenceThicknessMaximum?: number;
78
+ iridescenceThicknessTexture?: GLTFTexture;
79
+ };
80
+ type GLTFMaterialAnisotropyExtension = {
81
+ anisotropyStrength?: number;
82
+ anisotropyRotation?: number;
83
+ anisotropyTexture?: GLTFTexture;
84
+ };
85
+ type GLTFMaterialEmissiveStrengthExtension = {
86
+ emissiveStrength?: number;
87
+ };
88
+ type GLTFMaterialExtensions = {
89
+ KHR_materials_unlit?: Record<string, never>;
90
+ KHR_materials_specular?: GLTFMaterialSpecularExtension;
91
+ KHR_materials_ior?: GLTFMaterialIorExtension;
92
+ KHR_materials_transmission?: GLTFMaterialTransmissionExtension;
93
+ KHR_materials_volume?: GLTFMaterialVolumeExtension;
94
+ KHR_materials_clearcoat?: GLTFMaterialClearcoatExtension;
95
+ KHR_materials_sheen?: GLTFMaterialSheenExtension;
96
+ KHR_materials_iridescence?: GLTFMaterialIridescenceExtension;
97
+ KHR_materials_anisotropy?: GLTFMaterialAnisotropyExtension;
98
+ KHR_materials_emissive_strength?: GLTFMaterialEmissiveStrengthExtension;
99
+ };
35
100
  export type ParsePBRMaterialOptions = {
36
101
  /** Debug PBR shader */
37
102
  pbrDebug?: boolean;
@@ -41,10 +106,58 @@ export type ParsePBRMaterialOptions = {
41
106
  useTangents?: boolean;
42
107
  /** provide an image based (texture cube) lighting environment */
43
108
  imageBasedLightingEnvironment?: PBREnvironment;
109
+ /** parent post-processed glTF, used to resolve extension texture infos */
110
+ gltf?: GLTFPostprocessed;
111
+ /** run primitive-attribute diagnostics such as missing TEXCOORD_0 / NORMAL */
112
+ validateAttributes?: boolean;
44
113
  };
45
114
  /**
46
115
  * Parses a GLTF material definition into uniforms and parameters for the PBR shader module
47
116
  */
48
117
  export declare function parsePBRMaterial(device: Device, material: GLTFPBRMaterial, attributes: Record<string, any>, options: ParsePBRMaterialOptions): ParsedPBRMaterial;
118
+ /** One mip level as produced by loaders.gl compressed texture parsers */
119
+ export type CompressedMipLevel = {
120
+ data: TypedArray;
121
+ width: number;
122
+ height: number;
123
+ textureFormat?: TextureFormat;
124
+ };
125
+ /**
126
+ * Compressed image from current loaders.gl releases.
127
+ * - `mipmaps` is a boolean (true), NOT an array
128
+ * - `data` is an Array of TextureLevel-like objects
129
+ * - Per-level `textureFormat` is already a luma.gl TextureFormat
130
+ * - Top-level `width`/`height` may be undefined
131
+ */
132
+ export type CompressedImageDataArray = {
133
+ compressed: true;
134
+ mipmaps?: boolean;
135
+ width?: number;
136
+ height?: number;
137
+ data: CompressedMipLevel[];
138
+ };
139
+ /**
140
+ * Hypothetical future format where `mipmaps` is an actual array.
141
+ * Kept for forward compatibility.
142
+ */
143
+ export type CompressedImageMipmapArray = {
144
+ compressed: true;
145
+ width?: number;
146
+ height?: number;
147
+ mipmaps: CompressedMipLevel[];
148
+ };
149
+ /** Union of all known loaders.gl compressed image shapes */
150
+ export type CompressedImage = CompressedImageDataArray | CompressedImageMipmapArray;
151
+ /**
152
+ * Create a texture from compressed image data produced by loaders.gl.
153
+ * Handles current loaders.gl compressed image layouts:
154
+ *
155
+ * current: {compressed, mipmaps: true, data: [{data, width, height, textureFormat}, ...]}
156
+ * forward: {compressed, mipmaps: [{data, width, height, textureFormat}, ...]}
157
+ */
158
+ export declare function createCompressedTexture(device: Device, image: CompressedImage, baseOptions: {
159
+ id: string;
160
+ sampler: SamplerProps;
161
+ }): Texture;
49
162
  export {};
50
163
  //# sourceMappingURL=parse-pbr-material.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-pbr-material.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-pbr-material.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAU,MAAM,eAAe,CAAC;AAInD,OAAO,EAAC,KAAK,iBAAiB,EAAC,+BAA4B;AAC3D,OAAO,EAAC,KAAK,cAAc,EAAC,kCAA+B;AAS3D,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE;QAAC,MAAM,EAAE;YAAC,KAAK,EAAE,GAAG,CAAA;SAAC,CAAC;QAAC,OAAO,EAAE;YAAC,UAAU,EAAE,GAAG,CAAA;SAAC,CAAA;KAAC,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,wBAAwB,CAAC,EAAE,WAAW,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;IAChD,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,mBAAmB;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iEAAiE;IACjE,6BAA6B,CAAC,EAAE,cAAc,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,OAAO,EAAE,uBAAuB,GAC/B,iBAAiB,CAmDnB"}
1
+ {"version":3,"file":"parse-pbr-material.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-pbr-material.ts"],"names":[],"mappings":"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"}