@luma.gl/gltf 9.3.5 → 9.4.0-alpha.1

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.
@@ -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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"}
@@ -5,6 +5,15 @@ 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
7
  import { getTextureTransformSlotDefinition, getTextureTransformSlotDefinitions, getTextureTransformMatrix, resolveTextureCoordinateSet, resolveTextureTransform } from "../pbr/texture-transform.js";
8
+ const GLTF_ATTRIBUTE_ALIASES = {
9
+ NORMAL: ['NORMAL', 'normals'],
10
+ TANGENT: ['TANGENT'],
11
+ TEXCOORD_0: ['TEXCOORD_0', 'texCoords'],
12
+ TEXCOORD_1: ['TEXCOORD_1', 'texCoords1'],
13
+ JOINTS_0: ['JOINTS_0'],
14
+ WEIGHTS_0: ['WEIGHTS_0'],
15
+ COLOR_0: ['COLOR_0', 'colors']
16
+ };
8
17
  /**
9
18
  * Parses a GLTF material definition into uniforms and parameters for the PBR shader module
10
19
  */
@@ -43,17 +52,19 @@ export function parsePBRMaterial(device, material, attributes, options) {
43
52
  parsedMaterial.uniforms.scaleDiffBaseMR = [0, 0, 0, 0];
44
53
  parsedMaterial.uniforms.scaleFGDSpec = [0, 0, 0, 0];
45
54
  }
46
- if (attributes['NORMAL'])
55
+ if (hasGLTFAttribute(attributes, 'NORMAL'))
47
56
  parsedMaterial.defines['HAS_NORMALS'] = true;
48
- if (attributes['TANGENT'] && options?.useTangents)
57
+ if (hasGLTFAttribute(attributes, 'TANGENT') && options?.useTangents) {
49
58
  parsedMaterial.defines['HAS_TANGENTS'] = true;
50
- if (attributes['TEXCOORD_0'])
59
+ }
60
+ if (hasGLTFAttribute(attributes, 'TEXCOORD_0'))
51
61
  parsedMaterial.defines['HAS_UV'] = true;
52
- if (attributes['TEXCOORD_1'])
62
+ if (hasGLTFAttribute(attributes, 'TEXCOORD_1'))
53
63
  parsedMaterial.defines['HAS_UV_1'] = true;
54
- if (attributes['JOINTS_0'] && attributes['WEIGHTS_0'])
64
+ if (hasGLTFAttribute(attributes, 'JOINTS_0') && hasGLTFAttribute(attributes, 'WEIGHTS_0')) {
55
65
  parsedMaterial.defines['HAS_SKIN'] = true;
56
- if (attributes['COLOR_0'])
66
+ }
67
+ if (hasGLTFAttribute(attributes, 'COLOR_0'))
57
68
  parsedMaterial.defines['HAS_COLORS'] = true;
58
69
  if (options?.imageBasedLightingEnvironment)
59
70
  parsedMaterial.defines['USE_IBL'] = true;
@@ -69,15 +80,15 @@ export function parsePBRMaterial(device, material, attributes, options) {
69
80
  }
70
81
  function warnOnMissingExpectedAttributes(material, attributes) {
71
82
  const uvDependentTextureSlots = getUvDependentTextureSlots(material, 0);
72
- if (uvDependentTextureSlots.length > 0 && !attributes['TEXCOORD_0']) {
83
+ if (uvDependentTextureSlots.length > 0 && !hasGLTFAttribute(attributes, 'TEXCOORD_0')) {
73
84
  log.warn(`glTF material uses ${uvDependentTextureSlots.join(', ')} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();
74
85
  }
75
86
  const uv1DependentTextureSlots = getUvDependentTextureSlots(material, 1);
76
- if (uv1DependentTextureSlots.length > 0 && !attributes['TEXCOORD_1']) {
87
+ if (uv1DependentTextureSlots.length > 0 && !hasGLTFAttribute(attributes, 'TEXCOORD_1')) {
77
88
  log.warn(`glTF material uses ${uv1DependentTextureSlots.join(', ')} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)();
78
89
  }
79
90
  const isUnlitMaterial = Boolean(material.unlit || material.extensions?.KHR_materials_unlit);
80
- if (isUnlitMaterial || attributes['NORMAL']) {
91
+ if (isUnlitMaterial || hasGLTFAttribute(attributes, 'NORMAL')) {
81
92
  return;
82
93
  }
83
94
  const missingNormalReason = material.normalTexture
@@ -98,6 +109,9 @@ function getUvDependentTextureSlots(material, textureCoordinateSet) {
98
109
  }
99
110
  return uvDependentTextureSlots;
100
111
  }
112
+ function hasGLTFAttribute(attributes, attributeName) {
113
+ return GLTF_ATTRIBUTE_ALIASES[attributeName].some(alias => Boolean(attributes[alias]));
114
+ }
101
115
  function getNestedTextureInfo(material, pathSegments) {
102
116
  let value = material;
103
117
  for (const pathSegment of pathSegments) {
@@ -496,7 +510,7 @@ function addTexture(device, gltfTexture, uniformName, parsedMaterial, texturePar
496
510
  log.warn(`Skipping ${String(uniformName)} because ${textureCoordinateSet} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();
497
511
  return;
498
512
  }
499
- if (textureCoordinateSet === 1 && !attributes['TEXCOORD_1']) {
513
+ if (textureCoordinateSet === 1 && !hasGLTFAttribute(attributes, 'TEXCOORD_1')) {
500
514
  log.warn(`Skipping ${String(uniformName)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();
501
515
  return;
502
516
  }
@@ -741,10 +755,10 @@ export class PBRMaterialParser {
741
755
  this.uniforms.scaleFGDSpec = [0, 0, 0, 0];
742
756
  }
743
757
 
744
- this.defineIfPresent(attributes.NORMAL, 'HAS_NORMALS');
745
- this.defineIfPresent(attributes.TANGENT && useTangents, 'HAS_TANGENTS');
746
- this.defineIfPresent(attributes.TEXCOORD_0, 'HAS_UV');
747
- this.defineIfPresent(attributes.COLOR_0, 'HAS_COLORS');
758
+ this.defineIfPresent(hasGLTFAttribute(attributes, 'NORMAL'), 'HAS_NORMALS');
759
+ this.defineIfPresent(hasGLTFAttribute(attributes, 'TANGENT') && useTangents, 'HAS_TANGENTS');
760
+ this.defineIfPresent(hasGLTFAttribute(attributes, 'TEXCOORD_0'), 'HAS_UV');
761
+ this.defineIfPresent(hasGLTFAttribute(attributes, 'COLOR_0'), 'HAS_COLORS');
748
762
 
749
763
  this.defineIfPresent(imageBasedLightingEnvironment, 'USE_IBL');
750
764
  this.defineIfPresent(lights, 'USE_LIGHTS');
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/gltf",
3
- "version": "9.3.5",
3
+ "version": "9.4.0-alpha.1",
4
4
  "description": "glTF support for luma.gl",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -45,10 +45,10 @@
45
45
  "@luma.gl/shadertools": "~9.3.0"
46
46
  },
47
47
  "dependencies": {
48
- "@loaders.gl/core": "~4.4.0",
49
- "@loaders.gl/gltf": "~4.4.0",
50
- "@loaders.gl/textures": "~4.4.0",
48
+ "@loaders.gl/core": "~4.4.2",
49
+ "@loaders.gl/gltf": "~4.4.2",
50
+ "@loaders.gl/textures": "~4.4.2",
51
51
  "@math.gl/core": "^4.1.0"
52
52
  },
53
- "gitHead": "7c66d63f213836a3fc83f2ad0103d1d3dadf7633"
53
+ "gitHead": "360b5ac37102a9ab1ae6470d2c70dfa473aba70d"
54
54
  }
@@ -2,8 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import {log} from '@luma.gl/core';
6
- import {GroupNode, Material} from '@luma.gl/engine';
5
+ import {AnimationClipController, Animator, GroupNode, Material} from '@luma.gl/engine';
7
6
  import {
8
7
  GLTFAnimation,
9
8
  GLTFMaterialAnimationChannel,
@@ -19,35 +18,23 @@ import {
19
18
  } from '../pbr/texture-transform';
20
19
 
21
20
  /** Construction props for a single glTF animation controller. */
22
- type GLTFSingleAnimatorProps = {
21
+ type GLTFAnimationClipProps = {
23
22
  /** Animation data to evaluate. */
24
23
  animation: GLTFAnimation;
25
24
  /** Mapping from glTF node ids to scenegraph nodes. */
26
25
  gltfNodeIdToNodeMap: Map<string, GroupNode>;
27
26
  /** Materials aligned with the source glTF materials array. */
28
27
  materials?: Material[];
29
- /** Start time in seconds. */
30
- startTime?: number;
31
- /** Whether playback is active. */
32
- playing?: boolean;
33
- /** Playback speed multiplier. */
34
- speed?: number;
35
28
  };
36
29
 
37
30
  /** Evaluates one glTF animation against the generated scenegraph. */
38
- class GLTFSingleAnimator {
31
+ export class GLTFAnimationClip extends AnimationClipController {
39
32
  /** Animation definition being played. */
40
33
  animation: GLTFAnimation;
41
34
  /** Target scenegraph lookup table. */
42
35
  gltfNodeIdToNodeMap: Map<string, GroupNode>;
43
36
  /** Materials aligned with the source glTF materials array. */
44
37
  materials: Material[];
45
- /** Playback start time in seconds. */
46
- startTime: number = 0;
47
- /** Whether playback is currently enabled. */
48
- playing: boolean = true;
49
- /** Playback speed multiplier. */
50
- speed: number = 1;
51
38
  /** Mutable runtime texture-transform state for animated material slots. */
52
39
  materialTextureTransformState = new Map<
53
40
  Material,
@@ -55,11 +42,13 @@ class GLTFSingleAnimator {
55
42
  >();
56
43
 
57
44
  /** Creates a single-animation controller. */
58
- constructor(props: GLTFSingleAnimatorProps) {
45
+ constructor(props: GLTFAnimationClipProps) {
46
+ super({name: props.animation.name || 'unnamed'});
59
47
  this.animation = props.animation;
60
48
  this.gltfNodeIdToNodeMap = props.gltfNodeIdToNodeMap;
61
49
  this.materials = props.materials || [];
62
50
  this.animation.name ||= 'unnamed';
51
+ this.name = this.animation.name;
63
52
  Object.assign(this, props);
64
53
 
65
54
  if (
@@ -72,15 +61,8 @@ class GLTFSingleAnimator {
72
61
  }
73
62
  }
74
63
 
75
- /** Advances the animation to the supplied wall-clock time in milliseconds. */
76
- setTime(timeMs: number) {
77
- if (!this.playing) {
78
- return;
79
- }
80
-
81
- const absTime = timeMs / 1000;
82
- const time = (absTime - this.startTime) * this.speed;
83
-
64
+ /** Applies the resolved local clip time in seconds. */
65
+ protected override applyTime(time: number): void {
84
66
  this.animation.channels.forEach(channel => {
85
67
  if (channel.type === 'node') {
86
68
  const {sampler, targetNodeId, path} = channel;
@@ -128,36 +110,19 @@ export type GLTFAnimatorProps = {
128
110
  };
129
111
 
130
112
  /** Coordinates playback of every animation found in a glTF scene. */
131
- export class GLTFAnimator {
132
- /** Individual animation controllers. */
133
- animations: GLTFSingleAnimator[];
134
-
113
+ export class GLTFAnimator extends Animator<GLTFAnimationClip> {
135
114
  /** Creates an animator for the supplied glTF scenegraph. */
136
115
  constructor(props: GLTFAnimatorProps) {
137
- this.animations = props.animations.map((animation, index) => {
138
- const name = animation.name || `Animation-${index}`;
139
- return new GLTFSingleAnimator({
140
- gltfNodeIdToNodeMap: props.gltfNodeIdToNodeMap,
141
- materials: props.materials,
142
- animation: {name, channels: animation.channels}
143
- });
144
- });
145
- }
146
-
147
- /** @deprecated Use .setTime(). Will be removed (deck.gl is using this) */
148
- animate(time: number): void {
149
- log.warn('GLTFAnimator#animate is deprecated. Use GLTFAnimator#setTime instead')();
150
- this.setTime(time);
151
- }
152
-
153
- /** Advances every animation to the supplied wall-clock time in milliseconds. */
154
- setTime(time: number): void {
155
- this.animations.forEach(animation => animation.setTime(time));
156
- }
157
-
158
- /** Returns the per-animation controllers managed by this animator. */
159
- getAnimations() {
160
- return this.animations;
116
+ super(
117
+ props.animations.map((animation, index) => {
118
+ const name = animation.name || `Animation-${index}`;
119
+ return new GLTFAnimationClip({
120
+ gltfNodeIdToNodeMap: props.gltfNodeIdToNodeMap,
121
+ materials: props.materials,
122
+ animation: {name, channels: animation.channels}
123
+ });
124
+ })
125
+ );
161
126
  }
162
127
  }
163
128
 
@@ -155,6 +155,25 @@ type TextureParseOptions = {
155
155
  textureTransformSlot?: PBRTextureTransformSlot;
156
156
  };
157
157
 
158
+ type GLTFAttributeName =
159
+ | 'NORMAL'
160
+ | 'TANGENT'
161
+ | 'TEXCOORD_0'
162
+ | 'TEXCOORD_1'
163
+ | 'JOINTS_0'
164
+ | 'WEIGHTS_0'
165
+ | 'COLOR_0';
166
+
167
+ const GLTF_ATTRIBUTE_ALIASES: Record<GLTFAttributeName, string[]> = {
168
+ NORMAL: ['NORMAL', 'normals'],
169
+ TANGENT: ['TANGENT'],
170
+ TEXCOORD_0: ['TEXCOORD_0', 'texCoords'],
171
+ TEXCOORD_1: ['TEXCOORD_1', 'texCoords1'],
172
+ JOINTS_0: ['JOINTS_0'],
173
+ WEIGHTS_0: ['WEIGHTS_0'],
174
+ COLOR_0: ['COLOR_0', 'colors']
175
+ };
176
+
158
177
  export type ParsePBRMaterialOptions = {
159
178
  /** Debug PBR shader */
160
179
  pbrDebug?: boolean;
@@ -218,12 +237,16 @@ export function parsePBRMaterial(
218
237
  parsedMaterial.uniforms.scaleFGDSpec = [0, 0, 0, 0];
219
238
  }
220
239
 
221
- if (attributes['NORMAL']) parsedMaterial.defines['HAS_NORMALS'] = true;
222
- if (attributes['TANGENT'] && options?.useTangents) parsedMaterial.defines['HAS_TANGENTS'] = true;
223
- if (attributes['TEXCOORD_0']) parsedMaterial.defines['HAS_UV'] = true;
224
- if (attributes['TEXCOORD_1']) parsedMaterial.defines['HAS_UV_1'] = true;
225
- if (attributes['JOINTS_0'] && attributes['WEIGHTS_0']) parsedMaterial.defines['HAS_SKIN'] = true;
226
- if (attributes['COLOR_0']) parsedMaterial.defines['HAS_COLORS'] = true;
240
+ if (hasGLTFAttribute(attributes, 'NORMAL')) parsedMaterial.defines['HAS_NORMALS'] = true;
241
+ if (hasGLTFAttribute(attributes, 'TANGENT') && options?.useTangents) {
242
+ parsedMaterial.defines['HAS_TANGENTS'] = true;
243
+ }
244
+ if (hasGLTFAttribute(attributes, 'TEXCOORD_0')) parsedMaterial.defines['HAS_UV'] = true;
245
+ if (hasGLTFAttribute(attributes, 'TEXCOORD_1')) parsedMaterial.defines['HAS_UV_1'] = true;
246
+ if (hasGLTFAttribute(attributes, 'JOINTS_0') && hasGLTFAttribute(attributes, 'WEIGHTS_0')) {
247
+ parsedMaterial.defines['HAS_SKIN'] = true;
248
+ }
249
+ if (hasGLTFAttribute(attributes, 'COLOR_0')) parsedMaterial.defines['HAS_COLORS'] = true;
227
250
 
228
251
  if (options?.imageBasedLightingEnvironment) parsedMaterial.defines['USE_IBL'] = true;
229
252
  if (options?.lights) parsedMaterial.defines['USE_LIGHTS'] = true;
@@ -243,20 +266,20 @@ function warnOnMissingExpectedAttributes(
243
266
  attributes: Record<string, any>
244
267
  ): void {
245
268
  const uvDependentTextureSlots = getUvDependentTextureSlots(material, 0);
246
- if (uvDependentTextureSlots.length > 0 && !attributes['TEXCOORD_0']) {
269
+ if (uvDependentTextureSlots.length > 0 && !hasGLTFAttribute(attributes, 'TEXCOORD_0')) {
247
270
  log.warn(
248
271
  `glTF material uses ${uvDependentTextureSlots.join(', ')} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`
249
272
  )();
250
273
  }
251
274
  const uv1DependentTextureSlots = getUvDependentTextureSlots(material, 1);
252
- if (uv1DependentTextureSlots.length > 0 && !attributes['TEXCOORD_1']) {
275
+ if (uv1DependentTextureSlots.length > 0 && !hasGLTFAttribute(attributes, 'TEXCOORD_1')) {
253
276
  log.warn(
254
277
  `glTF material uses ${uv1DependentTextureSlots.join(', ')} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`
255
278
  )();
256
279
  }
257
280
 
258
281
  const isUnlitMaterial = Boolean(material.unlit || material.extensions?.KHR_materials_unlit);
259
- if (isUnlitMaterial || attributes['NORMAL']) {
282
+ if (isUnlitMaterial || hasGLTFAttribute(attributes, 'NORMAL')) {
260
283
  return;
261
284
  }
262
285
 
@@ -288,6 +311,13 @@ function getUvDependentTextureSlots(
288
311
  return uvDependentTextureSlots;
289
312
  }
290
313
 
314
+ function hasGLTFAttribute(
315
+ attributes: Record<string, any>,
316
+ attributeName: GLTFAttributeName
317
+ ): boolean {
318
+ return GLTF_ATTRIBUTE_ALIASES[attributeName].some(alias => Boolean(attributes[alias]));
319
+ }
320
+
291
321
  function getNestedTextureInfo(
292
322
  material: GLTFPBRMaterial,
293
323
  pathSegments: string[]
@@ -879,7 +909,7 @@ function addTexture(
879
909
  )();
880
910
  return;
881
911
  }
882
- if (textureCoordinateSet === 1 && !attributes['TEXCOORD_1']) {
912
+ if (textureCoordinateSet === 1 && !hasGLTFAttribute(attributes, 'TEXCOORD_1')) {
883
913
  log.warn(
884
914
  `Skipping ${String(uniformName)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`
885
915
  )();
@@ -1207,10 +1237,10 @@ export class PBRMaterialParser {
1207
1237
  this.uniforms.scaleFGDSpec = [0, 0, 0, 0];
1208
1238
  }
1209
1239
 
1210
- this.defineIfPresent(attributes.NORMAL, 'HAS_NORMALS');
1211
- this.defineIfPresent(attributes.TANGENT && useTangents, 'HAS_TANGENTS');
1212
- this.defineIfPresent(attributes.TEXCOORD_0, 'HAS_UV');
1213
- this.defineIfPresent(attributes.COLOR_0, 'HAS_COLORS');
1240
+ this.defineIfPresent(hasGLTFAttribute(attributes, 'NORMAL'), 'HAS_NORMALS');
1241
+ this.defineIfPresent(hasGLTFAttribute(attributes, 'TANGENT') && useTangents, 'HAS_TANGENTS');
1242
+ this.defineIfPresent(hasGLTFAttribute(attributes, 'TEXCOORD_0'), 'HAS_UV');
1243
+ this.defineIfPresent(hasGLTFAttribute(attributes, 'COLOR_0'), 'HAS_COLORS');
1214
1244
 
1215
1245
  this.defineIfPresent(imageBasedLightingEnvironment, 'USE_IBL');
1216
1246
  this.defineIfPresent(lights, 'USE_LIGHTS');