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

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 (64) hide show
  1. package/dist/dist.dev.js +4396 -3081
  2. package/dist/dist.min.js +33 -14
  3. package/dist/gltf/animations/animations.d.ts +43 -3
  4. package/dist/gltf/animations/animations.d.ts.map +1 -1
  5. package/dist/gltf/animations/interpolate.d.ts +2 -0
  6. package/dist/gltf/animations/interpolate.d.ts.map +1 -1
  7. package/dist/gltf/animations/interpolate.js +27 -22
  8. package/dist/gltf/animations/interpolate.js.map +1 -1
  9. package/dist/gltf/create-gltf-model.d.ts.map +1 -1
  10. package/dist/gltf/create-gltf-model.js +29 -10
  11. package/dist/gltf/create-gltf-model.js.map +1 -1
  12. package/dist/gltf/create-scenegraph-from-gltf.js +2 -2
  13. package/dist/gltf/create-scenegraph-from-gltf.js.map +1 -1
  14. package/dist/gltf/gltf-animator.d.ts +12 -1
  15. package/dist/gltf/gltf-animator.d.ts.map +1 -1
  16. package/dist/gltf/gltf-animator.js +98 -6
  17. package/dist/gltf/gltf-animator.js.map +1 -1
  18. package/dist/gltf/gltf-extension-support.d.ts +3 -0
  19. package/dist/gltf/gltf-extension-support.d.ts.map +1 -1
  20. package/dist/gltf/gltf-extension-support.js +10 -5
  21. package/dist/gltf/gltf-extension-support.js.map +1 -1
  22. package/dist/index.cjs +763 -272
  23. package/dist/index.cjs.map +4 -4
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/parsers/parse-gltf-animations.d.ts.map +1 -1
  28. package/dist/parsers/parse-gltf-animations.js +319 -18
  29. package/dist/parsers/parse-gltf-animations.js.map +1 -1
  30. package/dist/parsers/parse-gltf-lights.d.ts +6 -2
  31. package/dist/parsers/parse-gltf-lights.d.ts.map +1 -1
  32. package/dist/parsers/parse-gltf-lights.js +9 -6
  33. package/dist/parsers/parse-gltf-lights.js.map +1 -1
  34. package/dist/parsers/parse-gltf.d.ts +2 -0
  35. package/dist/parsers/parse-gltf.d.ts.map +1 -1
  36. package/dist/parsers/parse-gltf.js +21 -7
  37. package/dist/parsers/parse-gltf.js.map +1 -1
  38. package/dist/parsers/parse-pbr-material.d.ts.map +1 -1
  39. package/dist/parsers/parse-pbr-material.js +114 -81
  40. package/dist/parsers/parse-pbr-material.js.map +1 -1
  41. package/dist/pbr/pbr-environment.d.ts.map +1 -1
  42. package/dist/pbr/pbr-environment.js +7 -3
  43. package/dist/pbr/pbr-environment.js.map +1 -1
  44. package/dist/pbr/texture-transform.d.ts +24 -0
  45. package/dist/pbr/texture-transform.d.ts.map +1 -0
  46. package/dist/pbr/texture-transform.js +98 -0
  47. package/dist/pbr/texture-transform.js.map +1 -0
  48. package/dist/webgl-to-webgpu/convert-webgl-topology.js +1 -1
  49. package/dist/webgl-to-webgpu/convert-webgl-topology.js.map +1 -1
  50. package/package.json +5 -5
  51. package/src/gltf/animations/animations.ts +73 -3
  52. package/src/gltf/animations/interpolate.ts +50 -43
  53. package/src/gltf/create-gltf-model.ts +29 -10
  54. package/src/gltf/create-scenegraph-from-gltf.ts +2 -2
  55. package/src/gltf/gltf-animator.ts +177 -8
  56. package/src/gltf/gltf-extension-support.ts +17 -5
  57. package/src/index.ts +1 -1
  58. package/src/parsers/parse-gltf-animations.ts +461 -21
  59. package/src/parsers/parse-gltf-lights.ts +27 -8
  60. package/src/parsers/parse-gltf.ts +23 -7
  61. package/src/parsers/parse-pbr-material.ts +184 -79
  62. package/src/pbr/pbr-environment.ts +10 -3
  63. package/src/pbr/texture-transform.ts +263 -0
  64. package/src/webgl-to-webgpu/convert-webgl-topology.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parse-pbr-material.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-pbr-material.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-pbr-material.d.ts","sourceRoot":"","sources":["../../src/parsers/parse-pbr-material.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  import { Texture, log, textureFormatDecoder } from '@luma.gl/core';
5
5
  import { GLEnum } from "../webgl-to-webgpu/gltf-webgl-constants.js";
6
6
  import { convertSampler } from "../webgl-to-webgpu/convert-webgl-sampler.js";
7
+ import { getTextureTransformSlotDefinition, getTextureTransformSlotDefinitions, getTextureTransformMatrix, resolveTextureCoordinateSet, resolveTextureTransform } from "../pbr/texture-transform.js";
7
8
  /**
8
9
  * Parses a GLTF material definition into uniforms and parameters for the PBR shader module
9
10
  */
@@ -48,6 +49,8 @@ export function parsePBRMaterial(device, material, attributes, options) {
48
49
  parsedMaterial.defines['HAS_TANGENTS'] = true;
49
50
  if (attributes['TEXCOORD_0'])
50
51
  parsedMaterial.defines['HAS_UV'] = true;
52
+ if (attributes['TEXCOORD_1'])
53
+ parsedMaterial.defines['HAS_UV_1'] = true;
51
54
  if (attributes['JOINTS_0'] && attributes['WEIGHTS_0'])
52
55
  parsedMaterial.defines['HAS_SKIN'] = true;
53
56
  if (attributes['COLOR_0'])
@@ -60,15 +63,19 @@ export function parsePBRMaterial(device, material, attributes, options) {
60
63
  if (options.validateAttributes !== false) {
61
64
  warnOnMissingExpectedAttributes(material, attributes);
62
65
  }
63
- parseMaterial(device, material, parsedMaterial, options.gltf);
66
+ parseMaterial(device, material, parsedMaterial, attributes, options.gltf);
64
67
  }
65
68
  return parsedMaterial;
66
69
  }
67
70
  function warnOnMissingExpectedAttributes(material, attributes) {
68
- const uvDependentTextureSlots = getUvDependentTextureSlots(material);
71
+ const uvDependentTextureSlots = getUvDependentTextureSlots(material, 0);
69
72
  if (uvDependentTextureSlots.length > 0 && !attributes['TEXCOORD_0']) {
70
73
  log.warn(`glTF material uses ${uvDependentTextureSlots.join(', ')} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();
71
74
  }
75
+ const uv1DependentTextureSlots = getUvDependentTextureSlots(material, 1);
76
+ if (uv1DependentTextureSlots.length > 0 && !attributes['TEXCOORD_1']) {
77
+ log.warn(`glTF material uses ${uv1DependentTextureSlots.join(', ')} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)();
78
+ }
72
79
  const isUnlitMaterial = Boolean(material.unlit || material.extensions?.KHR_materials_unlit);
73
80
  if (isUnlitMaterial || attributes['NORMAL']) {
74
81
  return;
@@ -78,57 +85,34 @@ function warnOnMissingExpectedAttributes(material, attributes) {
78
85
  : 'lit PBR shading';
79
86
  log.warn(`glTF primitive is missing NORMAL while using ${missingNormalReason}; shading will fall back to geometric normals`)();
80
87
  }
81
- function getUvDependentTextureSlots(material) {
88
+ function getUvDependentTextureSlots(material, textureCoordinateSet) {
82
89
  const uvDependentTextureSlots = [];
83
- if (material.pbrMetallicRoughness?.baseColorTexture) {
84
- uvDependentTextureSlots.push('baseColorTexture');
85
- }
86
- if (material.pbrMetallicRoughness?.metallicRoughnessTexture) {
87
- uvDependentTextureSlots.push('metallicRoughnessTexture');
88
- }
89
- if (material.normalTexture) {
90
- uvDependentTextureSlots.push('normalTexture');
91
- }
92
- if (material.occlusionTexture) {
93
- uvDependentTextureSlots.push('occlusionTexture');
94
- }
95
- if (material.emissiveTexture) {
96
- uvDependentTextureSlots.push('emissiveTexture');
97
- }
98
- if (material.extensions?.KHR_materials_specular?.specularTexture) {
99
- uvDependentTextureSlots.push('KHR_materials_specular.specularTexture');
100
- }
101
- if (material.extensions?.KHR_materials_specular?.specularColorTexture) {
102
- uvDependentTextureSlots.push('KHR_materials_specular.specularColorTexture');
103
- }
104
- if (material.extensions?.KHR_materials_transmission?.transmissionTexture) {
105
- uvDependentTextureSlots.push('KHR_materials_transmission.transmissionTexture');
106
- }
107
- if (material.extensions?.KHR_materials_clearcoat?.clearcoatTexture) {
108
- uvDependentTextureSlots.push('KHR_materials_clearcoat.clearcoatTexture');
109
- }
110
- if (material.extensions?.KHR_materials_clearcoat?.clearcoatRoughnessTexture) {
111
- uvDependentTextureSlots.push('KHR_materials_clearcoat.clearcoatRoughnessTexture');
112
- }
113
- if (material.extensions?.KHR_materials_sheen?.sheenColorTexture) {
114
- uvDependentTextureSlots.push('KHR_materials_sheen.sheenColorTexture');
115
- }
116
- if (material.extensions?.KHR_materials_sheen?.sheenRoughnessTexture) {
117
- uvDependentTextureSlots.push('KHR_materials_sheen.sheenRoughnessTexture');
118
- }
119
- if (material.extensions?.KHR_materials_iridescence?.iridescenceTexture) {
120
- uvDependentTextureSlots.push('KHR_materials_iridescence.iridescenceTexture');
121
- }
122
- if (material.extensions?.KHR_materials_anisotropy?.anisotropyTexture) {
123
- uvDependentTextureSlots.push('KHR_materials_anisotropy.anisotropyTexture');
90
+ for (const slotDefinition of getTextureTransformSlotDefinitions()) {
91
+ const textureInfo = getNestedTextureInfo(material, slotDefinition.pathSegments);
92
+ if (!textureInfo) {
93
+ continue;
94
+ }
95
+ if (resolveTextureCoordinateSet(textureInfo) === textureCoordinateSet) {
96
+ uvDependentTextureSlots.push(slotDefinition.displayName);
97
+ }
124
98
  }
125
99
  return uvDependentTextureSlots;
126
100
  }
101
+ function getNestedTextureInfo(material, pathSegments) {
102
+ let value = material;
103
+ for (const pathSegment of pathSegments) {
104
+ value = value?.[pathSegment];
105
+ if (!value) {
106
+ return null;
107
+ }
108
+ }
109
+ return value;
110
+ }
127
111
  /** Parse GLTF material record */
128
- function parseMaterial(device, material, parsedMaterial, gltf) {
112
+ function parseMaterial(device, material, parsedMaterial, attributes, gltf) {
129
113
  parsedMaterial.uniforms.unlit = Boolean(material.unlit || material.extensions?.KHR_materials_unlit);
130
114
  if (material.pbrMetallicRoughness) {
131
- parsePbrMetallicRoughness(device, material.pbrMetallicRoughness, parsedMaterial, gltf);
115
+ parsePbrMetallicRoughness(device, material.pbrMetallicRoughness, parsedMaterial, attributes, gltf);
132
116
  }
133
117
  if (material.normalTexture) {
134
118
  addTexture(device, material.normalTexture, 'pbr_normalSampler', parsedMaterial, {
@@ -136,7 +120,9 @@ function parseMaterial(device, material, parsedMaterial, gltf) {
136
120
  define: 'HAS_NORMALMAP',
137
121
  enabledUniformName: 'normalMapEnabled'
138
122
  },
139
- gltf
123
+ gltf,
124
+ attributes,
125
+ textureTransformSlot: 'normal'
140
126
  });
141
127
  const { scale = 1 } = material.normalTexture;
142
128
  parsedMaterial.uniforms.normalScale = scale;
@@ -147,7 +133,9 @@ function parseMaterial(device, material, parsedMaterial, gltf) {
147
133
  define: 'HAS_OCCLUSIONMAP',
148
134
  enabledUniformName: 'occlusionMapEnabled'
149
135
  },
150
- gltf
136
+ gltf,
137
+ attributes,
138
+ textureTransformSlot: 'occlusion'
151
139
  });
152
140
  const { strength = 1 } = material.occlusionTexture;
153
141
  parsedMaterial.uniforms.occlusionStrength = strength;
@@ -159,10 +147,12 @@ function parseMaterial(device, material, parsedMaterial, gltf) {
159
147
  define: 'HAS_EMISSIVEMAP',
160
148
  enabledUniformName: 'emissiveMapEnabled'
161
149
  },
162
- gltf
150
+ gltf,
151
+ attributes,
152
+ textureTransformSlot: 'emissive'
163
153
  });
164
154
  }
165
- parseMaterialExtensions(device, material.extensions, parsedMaterial, gltf);
155
+ parseMaterialExtensions(device, material.extensions, parsedMaterial, gltf, attributes);
166
156
  switch (material.alphaMode || 'OPAQUE') {
167
157
  case 'OPAQUE':
168
158
  break;
@@ -216,14 +206,16 @@ function applyTransmissionBlendApproximation(parsedMaterial) {
216
206
  ];
217
207
  }
218
208
  /** Parse GLTF material sub record */
219
- function parsePbrMetallicRoughness(device, pbrMetallicRoughness, parsedMaterial, gltf) {
209
+ function parsePbrMetallicRoughness(device, pbrMetallicRoughness, parsedMaterial, attributes, gltf) {
220
210
  if (pbrMetallicRoughness.baseColorTexture) {
221
211
  addTexture(device, pbrMetallicRoughness.baseColorTexture, 'pbr_baseColorSampler', parsedMaterial, {
222
212
  featureOptions: {
223
213
  define: 'HAS_BASECOLORMAP',
224
214
  enabledUniformName: 'baseColorMapEnabled'
225
215
  },
226
- gltf
216
+ gltf,
217
+ attributes,
218
+ textureTransformSlot: 'baseColor'
227
219
  });
228
220
  }
229
221
  parsedMaterial.uniforms.baseColorFactor = pbrMetallicRoughness.baseColorFactor || [1, 1, 1, 1];
@@ -233,27 +225,29 @@ function parsePbrMetallicRoughness(device, pbrMetallicRoughness, parsedMaterial,
233
225
  define: 'HAS_METALROUGHNESSMAP',
234
226
  enabledUniformName: 'metallicRoughnessMapEnabled'
235
227
  },
236
- gltf
228
+ gltf,
229
+ attributes,
230
+ textureTransformSlot: 'metallicRoughness'
237
231
  });
238
232
  }
239
233
  const { metallicFactor = 1, roughnessFactor = 1 } = pbrMetallicRoughness;
240
234
  parsedMaterial.uniforms.metallicRoughnessValues = [metallicFactor, roughnessFactor];
241
235
  }
242
- function parseMaterialExtensions(device, extensions, parsedMaterial, gltf) {
236
+ function parseMaterialExtensions(device, extensions, parsedMaterial, gltf, attributes = {}) {
243
237
  if (!extensions) {
244
238
  return;
245
239
  }
246
240
  if (hasMaterialExtensionShading(extensions)) {
247
241
  parsedMaterial.defines['USE_MATERIAL_EXTENSIONS'] = true;
248
242
  }
249
- parseSpecularExtension(device, extensions.KHR_materials_specular, parsedMaterial, gltf);
243
+ parseSpecularExtension(device, extensions.KHR_materials_specular, parsedMaterial, gltf, attributes);
250
244
  parseIorExtension(extensions.KHR_materials_ior, parsedMaterial);
251
- parseTransmissionExtension(device, extensions.KHR_materials_transmission, parsedMaterial, gltf);
252
- parseVolumeExtension(device, extensions.KHR_materials_volume, parsedMaterial, gltf);
253
- parseClearcoatExtension(device, extensions.KHR_materials_clearcoat, parsedMaterial, gltf);
254
- parseSheenExtension(device, extensions.KHR_materials_sheen, parsedMaterial, gltf);
255
- parseIridescenceExtension(device, extensions.KHR_materials_iridescence, parsedMaterial, gltf);
256
- parseAnisotropyExtension(device, extensions.KHR_materials_anisotropy, parsedMaterial, gltf);
245
+ parseTransmissionExtension(device, extensions.KHR_materials_transmission, parsedMaterial, gltf, attributes);
246
+ parseVolumeExtension(device, extensions.KHR_materials_volume, parsedMaterial, gltf, attributes);
247
+ parseClearcoatExtension(device, extensions.KHR_materials_clearcoat, parsedMaterial, gltf, attributes);
248
+ parseSheenExtension(device, extensions.KHR_materials_sheen, parsedMaterial, gltf, attributes);
249
+ parseIridescenceExtension(device, extensions.KHR_materials_iridescence, parsedMaterial, gltf, attributes);
250
+ parseAnisotropyExtension(device, extensions.KHR_materials_anisotropy, parsedMaterial, gltf, attributes);
257
251
  parseEmissiveStrengthExtension(extensions.KHR_materials_emissive_strength, parsedMaterial);
258
252
  }
259
253
  function hasMaterialExtensionShading(extensions) {
@@ -266,7 +260,7 @@ function hasMaterialExtensionShading(extensions) {
266
260
  extensions.KHR_materials_iridescence ||
267
261
  extensions.KHR_materials_anisotropy);
268
262
  }
269
- function parseSpecularExtension(device, extension, parsedMaterial, gltf) {
263
+ function parseSpecularExtension(device, extension, parsedMaterial, gltf, attributes = {}) {
270
264
  if (!extension) {
271
265
  return;
272
266
  }
@@ -282,7 +276,9 @@ function parseSpecularExtension(device, extension, parsedMaterial, gltf) {
282
276
  define: 'HAS_SPECULARCOLORMAP',
283
277
  enabledUniformName: 'specularColorMapEnabled'
284
278
  },
285
- gltf
279
+ gltf,
280
+ attributes,
281
+ textureTransformSlot: 'specularColor'
286
282
  });
287
283
  }
288
284
  if (extension.specularTexture) {
@@ -291,7 +287,9 @@ function parseSpecularExtension(device, extension, parsedMaterial, gltf) {
291
287
  define: 'HAS_SPECULARINTENSITYMAP',
292
288
  enabledUniformName: 'specularIntensityMapEnabled'
293
289
  },
294
- gltf
290
+ gltf,
291
+ attributes,
292
+ textureTransformSlot: 'specularIntensity'
295
293
  });
296
294
  }
297
295
  }
@@ -300,7 +298,7 @@ function parseIorExtension(extension, parsedMaterial) {
300
298
  parsedMaterial.uniforms.ior = extension.ior;
301
299
  }
302
300
  }
303
- function parseTransmissionExtension(device, extension, parsedMaterial, gltf) {
301
+ function parseTransmissionExtension(device, extension, parsedMaterial, gltf, attributes = {}) {
304
302
  if (!extension) {
305
303
  return;
306
304
  }
@@ -313,7 +311,9 @@ function parseTransmissionExtension(device, extension, parsedMaterial, gltf) {
313
311
  define: 'HAS_TRANSMISSIONMAP',
314
312
  enabledUniformName: 'transmissionMapEnabled'
315
313
  },
316
- gltf
314
+ gltf,
315
+ attributes,
316
+ textureTransformSlot: 'transmission'
317
317
  });
318
318
  }
319
319
  if ((extension.transmissionFactor ?? 0) > 0 || extension.transmissionTexture) {
@@ -321,7 +321,7 @@ function parseTransmissionExtension(device, extension, parsedMaterial, gltf) {
321
321
  applyTransmissionBlendApproximation(parsedMaterial);
322
322
  }
323
323
  }
324
- function parseVolumeExtension(device, extension, parsedMaterial, gltf) {
324
+ function parseVolumeExtension(device, extension, parsedMaterial, gltf, attributes = {}) {
325
325
  if (!extension) {
326
326
  return;
327
327
  }
@@ -333,7 +333,9 @@ function parseVolumeExtension(device, extension, parsedMaterial, gltf) {
333
333
  featureOptions: {
334
334
  define: 'HAS_THICKNESSMAP'
335
335
  },
336
- gltf
336
+ gltf,
337
+ attributes,
338
+ textureTransformSlot: 'thickness'
337
339
  });
338
340
  }
339
341
  if (extension.attenuationDistance !== undefined) {
@@ -343,7 +345,7 @@ function parseVolumeExtension(device, extension, parsedMaterial, gltf) {
343
345
  parsedMaterial.uniforms.attenuationColor = extension.attenuationColor;
344
346
  }
345
347
  }
346
- function parseClearcoatExtension(device, extension, parsedMaterial, gltf) {
348
+ function parseClearcoatExtension(device, extension, parsedMaterial, gltf, attributes = {}) {
347
349
  if (!extension) {
348
350
  return;
349
351
  }
@@ -359,7 +361,9 @@ function parseClearcoatExtension(device, extension, parsedMaterial, gltf) {
359
361
  define: 'HAS_CLEARCOATMAP',
360
362
  enabledUniformName: 'clearcoatMapEnabled'
361
363
  },
362
- gltf
364
+ gltf,
365
+ attributes,
366
+ textureTransformSlot: 'clearcoat'
363
367
  });
364
368
  }
365
369
  if (extension.clearcoatRoughnessTexture) {
@@ -368,7 +372,9 @@ function parseClearcoatExtension(device, extension, parsedMaterial, gltf) {
368
372
  define: 'HAS_CLEARCOATROUGHNESSMAP',
369
373
  enabledUniformName: 'clearcoatRoughnessMapEnabled'
370
374
  },
371
- gltf
375
+ gltf,
376
+ attributes,
377
+ textureTransformSlot: 'clearcoatRoughness'
372
378
  });
373
379
  }
374
380
  if (extension.clearcoatNormalTexture) {
@@ -376,11 +382,13 @@ function parseClearcoatExtension(device, extension, parsedMaterial, gltf) {
376
382
  featureOptions: {
377
383
  define: 'HAS_CLEARCOATNORMALMAP'
378
384
  },
379
- gltf
385
+ gltf,
386
+ attributes,
387
+ textureTransformSlot: 'clearcoatNormal'
380
388
  });
381
389
  }
382
390
  }
383
- function parseSheenExtension(device, extension, parsedMaterial, gltf) {
391
+ function parseSheenExtension(device, extension, parsedMaterial, gltf, attributes = {}) {
384
392
  if (!extension) {
385
393
  return;
386
394
  }
@@ -396,7 +404,9 @@ function parseSheenExtension(device, extension, parsedMaterial, gltf) {
396
404
  define: 'HAS_SHEENCOLORMAP',
397
405
  enabledUniformName: 'sheenColorMapEnabled'
398
406
  },
399
- gltf
407
+ gltf,
408
+ attributes,
409
+ textureTransformSlot: 'sheenColor'
400
410
  });
401
411
  }
402
412
  if (extension.sheenRoughnessTexture) {
@@ -405,11 +415,13 @@ function parseSheenExtension(device, extension, parsedMaterial, gltf) {
405
415
  define: 'HAS_SHEENROUGHNESSMAP',
406
416
  enabledUniformName: 'sheenRoughnessMapEnabled'
407
417
  },
408
- gltf
418
+ gltf,
419
+ attributes,
420
+ textureTransformSlot: 'sheenRoughness'
409
421
  });
410
422
  }
411
423
  }
412
- function parseIridescenceExtension(device, extension, parsedMaterial, gltf) {
424
+ function parseIridescenceExtension(device, extension, parsedMaterial, gltf, attributes = {}) {
413
425
  if (!extension) {
414
426
  return;
415
427
  }
@@ -432,7 +444,9 @@ function parseIridescenceExtension(device, extension, parsedMaterial, gltf) {
432
444
  define: 'HAS_IRIDESCENCEMAP',
433
445
  enabledUniformName: 'iridescenceMapEnabled'
434
446
  },
435
- gltf
447
+ gltf,
448
+ attributes,
449
+ textureTransformSlot: 'iridescence'
436
450
  });
437
451
  }
438
452
  if (extension.iridescenceThicknessTexture) {
@@ -440,11 +454,13 @@ function parseIridescenceExtension(device, extension, parsedMaterial, gltf) {
440
454
  featureOptions: {
441
455
  define: 'HAS_IRIDESCENCETHICKNESSMAP'
442
456
  },
443
- gltf
457
+ gltf,
458
+ attributes,
459
+ textureTransformSlot: 'iridescenceThickness'
444
460
  });
445
461
  }
446
462
  }
447
- function parseAnisotropyExtension(device, extension, parsedMaterial, gltf) {
463
+ function parseAnisotropyExtension(device, extension, parsedMaterial, gltf, attributes = {}) {
448
464
  if (!extension) {
449
465
  return;
450
466
  }
@@ -460,7 +476,9 @@ function parseAnisotropyExtension(device, extension, parsedMaterial, gltf) {
460
476
  define: 'HAS_ANISOTROPYMAP',
461
477
  enabledUniformName: 'anisotropyMapEnabled'
462
478
  },
463
- gltf
479
+ gltf,
480
+ attributes,
481
+ textureTransformSlot: 'anisotropy'
464
482
  });
465
483
  }
466
484
  }
@@ -471,8 +489,17 @@ function parseEmissiveStrengthExtension(extension, parsedMaterial) {
471
489
  }
472
490
  /** Create a texture from a glTF texture/sampler/image combo and add it to bindings */
473
491
  function addTexture(device, gltfTexture, uniformName, parsedMaterial, textureParseOptions = {}) {
474
- const { featureOptions = {}, gltf } = textureParseOptions;
492
+ const { featureOptions = {}, gltf, attributes = {}, textureTransformSlot } = textureParseOptions;
475
493
  const { define, enabledUniformName } = featureOptions;
494
+ const textureCoordinateSet = resolveTextureCoordinateSet(gltfTexture);
495
+ if (textureCoordinateSet > 1) {
496
+ log.warn(`Skipping ${String(uniformName)} because ${textureCoordinateSet} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();
497
+ return;
498
+ }
499
+ if (textureCoordinateSet === 1 && !attributes['TEXCOORD_1']) {
500
+ log.warn(`Skipping ${String(uniformName)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();
501
+ return;
502
+ }
476
503
  const resolvedTextureInfo = resolveTextureInfo(gltfTexture, gltf);
477
504
  const image = resolvedTextureInfo.texture?.source?.image;
478
505
  if (!image) {
@@ -509,6 +536,12 @@ function addTexture(device, gltfTexture, uniformName, parsedMaterial, texturePar
509
536
  if (enabledUniformName) {
510
537
  parsedMaterial.uniforms[enabledUniformName] = true;
511
538
  }
539
+ if (textureTransformSlot) {
540
+ const textureTransformSlotDefinition = getTextureTransformSlotDefinition(textureTransformSlot);
541
+ parsedMaterial.uniforms[textureTransformSlotDefinition.uvSetUniform] =
542
+ textureCoordinateSet;
543
+ parsedMaterial.uniforms[textureTransformSlotDefinition.uvTransformUniform] = getTextureTransformMatrix(resolveTextureTransform(gltfTexture));
544
+ }
512
545
  parsedMaterial.generatedTextures.push(texture);
513
546
  }
514
547
  function resolveTextureInfo(gltfTexture, gltf) {
@@ -1 +1 @@
1
- {"version":3,"file":"parse-pbr-material.js","sourceRoot":"","sources":["../../src/parsers/parse-pbr-material.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-pbr-material.js","sourceRoot":"","sources":["../../src/parsers/parse-pbr-material.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pbr-environment.d.ts","sourceRoot":"","sources":["../../src/pbr/pbr-environment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAe,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAGzB,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG;IAC3B,2EAA2E;IAC3E,cAAc,EAAE,cAAc,CAAC;IAC/B,kCAAkC;IAClC,iBAAiB,EAAE,cAAc,CAAC;IAClC,kDAAkD;IAClD,kBAAkB,EAAE,cAAc,CAAC;CACpC,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,yCAAyC;AACzC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAoD7F"}
1
+ {"version":3,"file":"pbr-environment.d.ts","sourceRoot":"","sources":["../../src/pbr/pbr-environment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAe,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAGzB,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG;IAC3B,2EAA2E;IAC3E,cAAc,EAAE,cAAc,CAAC;IAC/B,kCAAkC;IAClC,iBAAiB,EAAE,cAAc,CAAC;IAClC,kDAAkD;IAClD,kBAAkB,EAAE,cAAc,CAAC;CACpC,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,yCAAyC;AACzC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAsD7F"}
@@ -15,11 +15,11 @@ export function loadPBREnvironment(device, props) {
15
15
  magFilter: 'linear'
16
16
  },
17
17
  // Texture accepts a promise that returns an image as data (Async Textures)
18
- data: loadImageTexture(props.brdfLutUrl)
18
+ data: loadImageTexture(resolveTextureUrl(props.brdfLutUrl))
19
19
  });
20
20
  const diffuseEnvSampler = makeCube(device, {
21
21
  id: 'DiffuseEnvSampler',
22
- getTextureForFace: face => loadImageTexture(props.getTexUrl('diffuse', FACES.indexOf(face), 0)),
22
+ getTextureForFace: face => loadImageTexture(resolveTextureUrl(props.getTexUrl('diffuse', FACES.indexOf(face), 0))),
23
23
  sampler: {
24
24
  addressModeU: 'clamp-to-edge',
25
25
  addressModeV: 'clamp-to-edge',
@@ -33,7 +33,7 @@ export function loadPBREnvironment(device, props) {
33
33
  const imageArray = [];
34
34
  const direction = FACES.indexOf(face);
35
35
  for (let lod = 0; lod < specularMipLevels; lod++) {
36
- imageArray.push(loadImageTexture(props.getTexUrl('specular', direction, lod)));
36
+ imageArray.push(loadImageTexture(resolveTextureUrl(props.getTexUrl('specular', direction, lod))));
37
37
  }
38
38
  return Promise.all(imageArray);
39
39
  },
@@ -52,6 +52,10 @@ export function loadPBREnvironment(device, props) {
52
52
  }
53
53
  // TODO put somewhere common
54
54
  const FACES = ['+X', '-X', '+Y', '-Y', '+Z', '-Z'];
55
+ function resolveTextureUrl(url) {
56
+ const baseUrl = globalThis.document?.baseURI ?? globalThis.location?.href;
57
+ return baseUrl ? new URL(url, baseUrl).toString() : url;
58
+ }
55
59
  /** Construction props for an asynchronously loaded cubemap. */
56
60
  function makeCube(device, { id, getTextureForFace, sampler }) {
57
61
  const data = Promise.all(FACES.map(face => getTextureForFace(face))).then(faceDataArray => {
@@ -1 +1 @@
1
- {"version":3,"file":"pbr-environment.js","sourceRoot":"","sources":["../../src/pbr/pbr-environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pbr-environment.js","sourceRoot":"","sources":["../../src/pbr/pbr-environment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export type PBRTextureTransformSlot = 'baseColor' | 'metallicRoughness' | 'normal' | 'occlusion' | 'emissive' | 'specularColor' | 'specularIntensity' | 'transmission' | 'thickness' | 'clearcoat' | 'clearcoatRoughness' | 'clearcoatNormal' | 'sheenColor' | 'sheenRoughness' | 'iridescence' | 'iridescenceThickness' | 'anisotropy';
2
+ export type PBRTextureTransformPath = 'offset' | 'rotation' | 'scale';
3
+ export type PBRTextureTransform = {
4
+ offset: [number, number];
5
+ rotation: number;
6
+ scale: [number, number];
7
+ };
8
+ export type PBRTextureTransformSlotDefinition = {
9
+ slot: PBRTextureTransformSlot;
10
+ binding: string;
11
+ displayName: string;
12
+ pathSegments: string[];
13
+ uvSetUniform: string;
14
+ uvTransformUniform: string;
15
+ };
16
+ export declare function getTextureTransformSlotDefinitions(): PBRTextureTransformSlotDefinition[];
17
+ export declare function getTextureTransformSlotDefinition(slot: PBRTextureTransformSlot): PBRTextureTransformSlotDefinition;
18
+ export declare function getDefaultTextureTransform(): PBRTextureTransform;
19
+ export declare function resolveTextureTransform(textureInfo: Record<string, any> | undefined): PBRTextureTransform;
20
+ export declare function resolveTextureCoordinateSet(textureInfo: Record<string, any> | undefined): number;
21
+ export declare function resolveTextureTransformSlot(pointerSegments: string[]): PBRTextureTransformSlotDefinition | null;
22
+ export declare function getTextureTransformMatrix(transform: PBRTextureTransform): number[];
23
+ export declare function getTextureTransformDeltaMatrix(baseTransform: PBRTextureTransform, currentTransform: PBRTextureTransform): number[];
24
+ //# sourceMappingURL=texture-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texture-transform.d.ts","sourceRoot":"","sources":["../../src/pbr/texture-transform.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,mBAAmB,GACnB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,eAAe,GACf,mBAAmB,GACnB,cAAc,GACd,WAAW,GACX,WAAW,GACX,oBAAoB,GACpB,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,aAAa,GACb,sBAAsB,GACtB,YAAY,CAAC;AAEjB,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AA0HF,wBAAgB,kCAAkC,IAAI,iCAAiC,EAAE,CAExF;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,uBAAuB,GAC5B,iCAAiC,CAMnC;AAED,wBAAgB,0BAA0B,IAAI,mBAAmB,CAMhE;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAC3C,mBAAmB,CAWrB;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,CAGhG;AAED,wBAAgB,2BAA2B,CACzC,eAAe,EAAE,MAAM,EAAE,GACxB,iCAAiC,GAAG,IAAI,CAQ1C;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAoClF;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,mBAAmB,EAClC,gBAAgB,EAAE,mBAAmB,GACpC,MAAM,EAAE,CAKV"}