@galacean/engine-loader 0.0.0-experimental-double11.13 → 0.0.0-experimental-uploadSameBuffer.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 (40) hide show
  1. package/dist/main.js +247 -178
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +247 -178
  4. package/dist/module.js +248 -179
  5. package/dist/module.js.map +1 -1
  6. package/package.json +5 -5
  7. package/types/Texture2DLoader.d.ts +9 -1
  8. package/types/gltf/parser/GLTFParserContext.d.ts +1 -0
  9. package/types/gltf/parser/GLTFSceneParser.d.ts +0 -1
  10. package/types/index.d.ts +1 -1
  11. package/types/ktx2/KTX2Loader.d.ts +12 -2
  12. package/types/resource-deserialize/resources/parser/ReflectionParser.d.ts +1 -1
  13. package/types/resource-deserialize/resources/schema/BasicSchema.d.ts +2 -0
  14. package/types/resource-deserialize/resources/schema/MaterialSchema.d.ts +1 -1
  15. package/types/resource-deserialize/resources/schema/SceneSchema.d.ts +3 -1
  16. package/types/resource-deserialize/utils/BufferReader.d.ts +1 -1
  17. package/types/gltf/GLTFParser.d.ts +0 -9
  18. package/types/gltf/GLTFUtil.d.ts +0 -53
  19. package/types/gltf/Schema.d.ts +0 -814
  20. package/types/gltf/extensions/ExtensionParser.d.ts +0 -8
  21. package/types/gltf/extensions/OASIS_animation.d.ts +0 -1
  22. package/types/gltf/extensions/OASIS_materials_remap.d.ts +0 -1
  23. package/types/gltf/extensions/Schema.d.ts +0 -142
  24. package/types/gltf/parser/AnimationParser.d.ts +0 -7
  25. package/types/gltf/parser/BufferParser.d.ts +0 -7
  26. package/types/gltf/parser/EntityParser.d.ts +0 -9
  27. package/types/gltf/parser/MaterialParser.d.ts +0 -8
  28. package/types/gltf/parser/MeshParser.d.ts +0 -13
  29. package/types/gltf/parser/Parser.d.ts +0 -21
  30. package/types/gltf/parser/ParserContext.d.ts +0 -46
  31. package/types/gltf/parser/SceneParser.d.ts +0 -11
  32. package/types/gltf/parser/SkinParser.d.ts +0 -6
  33. package/types/gltf/parser/TextureParser.d.ts +0 -8
  34. package/types/gltf/parser/Validator.d.ts +0 -5
  35. package/types/resource-deserialize/resources/animationClip/type.d.ts +0 -30
  36. package/types/resource-deserialize/resources/animatorController/AnimatorControllerDecoder.d.ts +0 -6
  37. package/types/resource-deserialize/resources/animatorController/type.d.ts +0 -0
  38. package/types/resource-deserialize/resources/prefab/PrefabDesign.d.ts +0 -70
  39. package/types/resource-deserialize/resources/prefab/PrefabParser.d.ts +0 -5
  40. package/types/resource-deserialize/resources/prefab/ReflectionParser.d.ts +0 -14
package/dist/main.js CHANGED
@@ -120,116 +120,116 @@ var BufferReader = /*#__PURE__*/ function() {
120
120
  this.data = data;
121
121
  this._dataView = new DataView(data.buffer, data.byteOffset + byteOffset, byteLength != null ? byteLength : data.byteLength - byteOffset);
122
122
  this._littleEndian = littleEndian;
123
- this._offset = 0;
123
+ this._position = 0;
124
124
  this._baseOffset = byteOffset;
125
125
  }
126
126
  var _proto = BufferReader.prototype;
127
127
  _proto.nextUint8 = function nextUint8() {
128
- var value = this._dataView.getUint8(this._offset);
129
- this._offset += 1;
128
+ var value = this._dataView.getUint8(this._position);
129
+ this._position += 1;
130
130
  return value;
131
131
  };
132
132
  _proto.nextUint16 = function nextUint16() {
133
- var value = this._dataView.getUint16(this._offset, this._littleEndian);
134
- this._offset += 2;
133
+ var value = this._dataView.getUint16(this._position, this._littleEndian);
134
+ this._position += 2;
135
135
  return value;
136
136
  };
137
137
  _proto.nextUint32 = function nextUint32() {
138
- var value = this._dataView.getUint32(this._offset, this._littleEndian);
139
- this._offset += 4;
138
+ var value = this._dataView.getUint32(this._position, this._littleEndian);
139
+ this._position += 4;
140
140
  return value;
141
141
  };
142
142
  _proto.nextInt32 = function nextInt32() {
143
- var value = this._dataView.getInt32(this._offset, this._littleEndian);
144
- this._offset += 4;
143
+ var value = this._dataView.getInt32(this._position, this._littleEndian);
144
+ this._position += 4;
145
145
  return value;
146
146
  };
147
147
  _proto.nextInt32Array = function nextInt32Array(len) {
148
- var value = new Int32Array(this.data.buffer, this._offset + this._dataView.byteOffset, len);
149
- this._offset += 4 * len;
148
+ var value = new Int32Array(this.data.buffer, this._position + this._dataView.byteOffset, len);
149
+ this._position += 4 * len;
150
150
  return value;
151
151
  };
152
152
  _proto.nextFloat32 = function nextFloat32() {
153
- var value = this._dataView.getFloat32(this._offset, this._littleEndian);
154
- this._offset += 4;
153
+ var value = this._dataView.getFloat32(this._position, this._littleEndian);
154
+ this._position += 4;
155
155
  return value;
156
156
  };
157
157
  _proto.nextFloat32Array = function nextFloat32Array(len) {
158
- var value = new Float32Array(this.data.buffer, this._offset + this._dataView.byteOffset, len);
159
- this._offset += 4 * len;
158
+ var value = new Float32Array(this.data.buffer, this._position + this._dataView.byteOffset, len);
159
+ this._position += 4 * len;
160
160
  return value;
161
161
  };
162
162
  _proto.nextUint32Array = function nextUint32Array(len) {
163
- var value = new Uint32Array(this.data.buffer, this._offset + this._dataView.byteOffset, len);
164
- this._offset += 4 * len;
163
+ var value = new Uint32Array(this.data.buffer, this._position + this._dataView.byteOffset, len);
164
+ this._position += 4 * len;
165
165
  return value;
166
166
  };
167
167
  _proto.nextUint8Array = function nextUint8Array(len) {
168
- var value = new Uint8Array(this.data.buffer, this._offset + this._dataView.byteOffset, len);
169
- this._offset += len;
168
+ var value = new Uint8Array(this.data.buffer, this._position + this._dataView.byteOffset, len);
169
+ this._position += len;
170
170
  return value;
171
171
  };
172
172
  _proto.nextUint64 = function nextUint64() {
173
- var left = this._dataView.getUint32(this._offset, this._littleEndian);
174
- var right = this._dataView.getUint32(this._offset + 4, this._littleEndian);
173
+ var left = this._dataView.getUint32(this._position, this._littleEndian);
174
+ var right = this._dataView.getUint32(this._position + 4, this._littleEndian);
175
175
  var value = left + Math.pow(2, 32) * right;
176
- this._offset += 8;
176
+ this._position += 8;
177
177
  return value;
178
178
  };
179
179
  _proto.nextStr = function nextStr() {
180
180
  var strByteLength = this.nextUint16();
181
- var uint8Array = new Uint8Array(this.data.buffer, this._offset + this._dataView.byteOffset, strByteLength);
182
- this._offset += strByteLength;
181
+ var uint8Array = new Uint8Array(this.data.buffer, this._position + this._dataView.byteOffset, strByteLength);
182
+ this._position += strByteLength;
183
183
  return engineCore.Utils.decodeText(uint8Array);
184
184
  };
185
185
  /**
186
186
  * image data 放在最后
187
187
  */ _proto.nextImageData = function nextImageData(count) {
188
- return new Uint8Array(this.data.buffer, this.data.byteOffset + this._offset);
188
+ return new Uint8Array(this.data.buffer, this.data.byteOffset + this._position);
189
189
  };
190
190
  _proto.nextImagesData = function nextImagesData(count) {
191
191
  var imagesLen = new Array(count);
192
192
  // Start offset of Uint32Array should be a multiple of 4. ref: https://stackoverflow.com/questions/15417310/why-typed-array-constructors-require-offset-to-be-multiple-of-underlying-type-si
193
193
  for(var i = 0; i < count; i++){
194
- var len = this._dataView.getUint32(this._offset, this._littleEndian);
194
+ var len = this._dataView.getUint32(this._position, this._littleEndian);
195
195
  imagesLen[i] = len;
196
- this._offset += 4;
196
+ this._position += 4;
197
197
  }
198
198
  var imagesData = [];
199
199
  for(var i1 = 0; i1 < count; i1++){
200
200
  var len1 = imagesLen[i1];
201
- var buffer = new Uint8Array(this.data.buffer, this._dataView.byteOffset + this._offset, len1);
202
- this._offset += len1;
201
+ var buffer = new Uint8Array(this.data.buffer, this._dataView.byteOffset + this._position, len1);
202
+ this._position += len1;
203
203
  imagesData.push(buffer);
204
204
  }
205
205
  return imagesData;
206
206
  };
207
207
  _proto.skip = function skip(bytes) {
208
- this._offset += bytes;
208
+ this._position += bytes;
209
209
  return this;
210
210
  };
211
211
  _proto.scan = function scan(maxByteLength, term) {
212
212
  if (term === void 0) term = 0x00;
213
- var byteOffset = this._offset;
213
+ var byteOffset = this._position;
214
214
  var byteLength = 0;
215
- while(this._dataView.getUint8(this._offset) !== term && byteLength < maxByteLength){
215
+ while(this._dataView.getUint8(this._position) !== term && byteLength < maxByteLength){
216
216
  byteLength++;
217
- this._offset++;
217
+ this._position++;
218
218
  }
219
- if (byteLength < maxByteLength) this._offset++;
219
+ if (byteLength < maxByteLength) this._position++;
220
220
  return new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + byteOffset, byteLength);
221
221
  };
222
222
  _create_class(BufferReader, [
223
223
  {
224
224
  key: "position",
225
225
  get: function get() {
226
- return this._offset;
226
+ return this._position;
227
227
  }
228
228
  },
229
229
  {
230
230
  key: "offset",
231
231
  get: function get() {
232
- return this._offset + this._baseOffset;
232
+ return this._position + this._baseOffset;
233
233
  }
234
234
  }
235
235
  ]);
@@ -293,75 +293,74 @@ exports.MeshDecoder = /*#__PURE__*/ function() {
293
293
  var encodedMeshData = JSON.parse(jsonDataString);
294
294
  // @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
295
295
  encodedMeshData.bounds && modelMesh.bounds.copyFrom(encodedMeshData.bounds);
296
- var offset = Math.ceil(bufferReader.position / 4) * 4;
296
+ var offset = Math.ceil(bufferReader.offset / 4) * 4 + bufferReader.data.byteOffset;
297
297
  var buffer = bufferReader.data.buffer;
298
- var byteOffset = bufferReader.data.byteOffset;
299
- var float32Array = new Float32Array(buffer, encodedMeshData.positions.start + offset + byteOffset, (encodedMeshData.positions.end - encodedMeshData.positions.start) / 4);
298
+ var float32Array = new Float32Array(buffer, encodedMeshData.positions.start + offset, (encodedMeshData.positions.end - encodedMeshData.positions.start) / 4);
300
299
  var vertexCount = float32Array.length / 3;
301
300
  var positions = float32ArrayToVector3(float32Array, vertexCount);
302
301
  modelMesh.setPositions(positions);
303
302
  if (encodedMeshData.normals) {
304
- var float32Array1 = new Float32Array(buffer, encodedMeshData.normals.start + offset + byteOffset, (encodedMeshData.normals.end - encodedMeshData.normals.start) / 4);
303
+ var float32Array1 = new Float32Array(buffer, encodedMeshData.normals.start + offset, (encodedMeshData.normals.end - encodedMeshData.normals.start) / 4);
305
304
  var normals = float32ArrayToVector3(float32Array1, vertexCount);
306
305
  modelMesh.setNormals(normals);
307
306
  }
308
307
  if (encodedMeshData.uvs) {
309
- var float32Array2 = new Float32Array(buffer, encodedMeshData.uvs.start + offset + byteOffset, (encodedMeshData.uvs.end - encodedMeshData.uvs.start) / 4);
308
+ var float32Array2 = new Float32Array(buffer, encodedMeshData.uvs.start + offset, (encodedMeshData.uvs.end - encodedMeshData.uvs.start) / 4);
310
309
  modelMesh.setUVs(float32ArrayToVector2(float32Array2, vertexCount));
311
310
  }
312
311
  if (encodedMeshData.uv1) {
313
- var float32Array3 = new Float32Array(buffer, encodedMeshData.uv1.start + offset + byteOffset, (encodedMeshData.uv1.end - encodedMeshData.uv1.start) / 4);
312
+ var float32Array3 = new Float32Array(buffer, encodedMeshData.uv1.start + offset, (encodedMeshData.uv1.end - encodedMeshData.uv1.start) / 4);
314
313
  modelMesh.setUVs(float32ArrayToVector2(float32Array3, vertexCount), 1);
315
314
  }
316
315
  if (encodedMeshData.uv2) {
317
- var float32Array4 = new Float32Array(buffer, encodedMeshData.uv2.start + offset + byteOffset, (encodedMeshData.uv2.end - encodedMeshData.uv2.start) / 4);
316
+ var float32Array4 = new Float32Array(buffer, encodedMeshData.uv2.start + offset, (encodedMeshData.uv2.end - encodedMeshData.uv2.start) / 4);
318
317
  modelMesh.setUVs(float32ArrayToVector2(float32Array4, vertexCount), 2);
319
318
  }
320
319
  if (encodedMeshData.uv3) {
321
- var float32Array5 = new Float32Array(buffer, encodedMeshData.uv3.start + offset + byteOffset, (encodedMeshData.uv3.end - encodedMeshData.uv3.start) / 4);
320
+ var float32Array5 = new Float32Array(buffer, encodedMeshData.uv3.start + offset, (encodedMeshData.uv3.end - encodedMeshData.uv3.start) / 4);
322
321
  modelMesh.setUVs(float32ArrayToVector2(float32Array5, vertexCount), 3);
323
322
  }
324
323
  if (encodedMeshData.uv4) {
325
- var float32Array6 = new Float32Array(buffer, encodedMeshData.uv4.start + offset + byteOffset, (encodedMeshData.uv4.end - encodedMeshData.uv4.start) / 4);
324
+ var float32Array6 = new Float32Array(buffer, encodedMeshData.uv4.start + offset, (encodedMeshData.uv4.end - encodedMeshData.uv4.start) / 4);
326
325
  modelMesh.setUVs(float32ArrayToVector2(float32Array6, vertexCount), 4);
327
326
  }
328
327
  if (encodedMeshData.uv5) {
329
- var float32Array7 = new Float32Array(buffer, encodedMeshData.uv5.start + offset + byteOffset, (encodedMeshData.uv5.end - encodedMeshData.uv5.start) / 4);
328
+ var float32Array7 = new Float32Array(buffer, encodedMeshData.uv5.start + offset, (encodedMeshData.uv5.end - encodedMeshData.uv5.start) / 4);
330
329
  modelMesh.setUVs(float32ArrayToVector2(float32Array7, vertexCount), 5);
331
330
  }
332
331
  if (encodedMeshData.uv6) {
333
- var float32Array8 = new Float32Array(buffer, encodedMeshData.uv6.start + offset + byteOffset, (encodedMeshData.uv6.end - encodedMeshData.uv6.start) / 4);
332
+ var float32Array8 = new Float32Array(buffer, encodedMeshData.uv6.start + offset, (encodedMeshData.uv6.end - encodedMeshData.uv6.start) / 4);
334
333
  modelMesh.setUVs(float32ArrayToVector2(float32Array8, vertexCount), 6);
335
334
  }
336
335
  if (encodedMeshData.uv7) {
337
- var float32Array9 = new Float32Array(buffer, encodedMeshData.uv7.start + offset + byteOffset, (encodedMeshData.uv7.end - encodedMeshData.uv7.start) / 4);
336
+ var float32Array9 = new Float32Array(buffer, encodedMeshData.uv7.start + offset, (encodedMeshData.uv7.end - encodedMeshData.uv7.start) / 4);
338
337
  modelMesh.setUVs(float32ArrayToVector2(float32Array9, vertexCount), 7);
339
338
  }
340
339
  if (encodedMeshData.colors) {
341
- var float32Array10 = new Float32Array(buffer, encodedMeshData.colors.start + offset + byteOffset, (encodedMeshData.colors.end - encodedMeshData.colors.start) / 4);
340
+ var float32Array10 = new Float32Array(buffer, encodedMeshData.colors.start + offset, (encodedMeshData.colors.end - encodedMeshData.colors.start) / 4);
342
341
  modelMesh.setColors(float32ArrayToVColor(float32Array10, vertexCount));
343
342
  }
344
343
  if (encodedMeshData.boneWeights) {
345
- var float32Array11 = new Float32Array(buffer, encodedMeshData.boneWeights.start + offset + byteOffset, (encodedMeshData.boneWeights.end - encodedMeshData.boneWeights.start) / 4);
344
+ var float32Array11 = new Float32Array(buffer, encodedMeshData.boneWeights.start + offset, (encodedMeshData.boneWeights.end - encodedMeshData.boneWeights.start) / 4);
346
345
  modelMesh.setBoneWeights(float32ArrayToVector4(float32Array11, vertexCount));
347
346
  }
348
347
  if (encodedMeshData.boneIndices) {
349
- var float32Array12 = new Float32Array(buffer, encodedMeshData.boneIndices.start + offset + byteOffset, (encodedMeshData.boneIndices.end - encodedMeshData.boneIndices.start) / 4);
348
+ var float32Array12 = new Float32Array(buffer, encodedMeshData.boneIndices.start + offset, (encodedMeshData.boneIndices.end - encodedMeshData.boneIndices.start) / 4);
350
349
  modelMesh.setBoneIndices(float32ArrayToVector4(float32Array12, vertexCount));
351
350
  }
352
351
  if (encodedMeshData.blendShapes) {
353
352
  encodedMeshData.blendShapes.forEach(function(blendShapeData) {
354
353
  var blendShape = new engineCore.BlendShape(blendShapeData.name);
355
354
  blendShapeData.frames.forEach(function(frameData) {
356
- var positionArray = new Float32Array(buffer, frameData.deltaPosition.start + offset + byteOffset, (frameData.deltaPosition.end - frameData.deltaPosition.start) / 4);
355
+ var positionArray = new Float32Array(buffer, frameData.deltaPosition.start + offset, (frameData.deltaPosition.end - frameData.deltaPosition.start) / 4);
357
356
  var count = positionArray.length / 3;
358
357
  var deltaPosition = float32ArrayToVector3(positionArray, count);
359
358
  if (frameData.deltaNormals) {
360
- var normalsArray = new Float32Array(buffer, frameData.deltaNormals.start + offset + byteOffset, (frameData.deltaNormals.end - frameData.deltaNormals.start) / 4);
359
+ var normalsArray = new Float32Array(buffer, frameData.deltaNormals.start + offset, (frameData.deltaNormals.end - frameData.deltaNormals.start) / 4);
361
360
  float32ArrayToVector3(normalsArray, count);
362
361
  }
363
362
  if (frameData.deltaTangents) {
364
- var tangentsArray = new Float32Array(buffer, frameData.deltaTangents.start + offset + byteOffset, (frameData.deltaTangents.end - frameData.deltaTangents.start) / 4);
363
+ var tangentsArray = new Float32Array(buffer, frameData.deltaTangents.start + offset, (frameData.deltaTangents.end - frameData.deltaTangents.start) / 4);
365
364
  float32ArrayToVector4(tangentsArray, count);
366
365
  }
367
366
  blendShape.addFrame(frameData.weight, deltaPosition);
@@ -372,9 +371,9 @@ exports.MeshDecoder = /*#__PURE__*/ function() {
372
371
  if (encodedMeshData.indices) {
373
372
  var indices = null;
374
373
  if (encodedMeshData.indices.type === 0) {
375
- indices = new Uint16Array(buffer, encodedMeshData.indices.start + offset + byteOffset, (encodedMeshData.indices.end - encodedMeshData.indices.start) / 2);
374
+ indices = new Uint16Array(buffer, encodedMeshData.indices.start + offset, (encodedMeshData.indices.end - encodedMeshData.indices.start) / 2);
376
375
  } else {
377
- indices = new Uint32Array(buffer, encodedMeshData.indices.start + offset + byteOffset, (encodedMeshData.indices.end - encodedMeshData.indices.start) / 4);
376
+ indices = new Uint32Array(buffer, encodedMeshData.indices.start + offset, (encodedMeshData.indices.end - encodedMeshData.indices.start) / 4);
378
377
  }
379
378
  modelMesh.setIndices(indices);
380
379
  }
@@ -539,15 +538,23 @@ var ReflectionParser = /*#__PURE__*/ function() {
539
538
  if (position) entity.transform.position.copyFrom(position);
540
539
  if (rotation) entity.transform.rotation.copyFrom(rotation);
541
540
  if (scale) entity.transform.scale.copyFrom(scale);
541
+ var _entityConfig_layer;
542
+ entity.layer = (_entityConfig_layer = entityConfig.layer) != null ? _entityConfig_layer : entity.layer;
542
543
  return entity;
543
544
  });
544
545
  };
545
546
  _proto.parseClassObject = function parseClassObject(item) {
547
+ var _this = this;
546
548
  var Class = engineCore.Loader.getClass(item.class);
547
549
  var _item_constructParams;
548
550
  var params = (_item_constructParams = item.constructParams) != null ? _item_constructParams : [];
549
- var instance = _construct(Class, [].concat(params));
550
- return this.parsePropsAndMethods(instance, item);
551
+ return Promise.all(params.map(function(param) {
552
+ return _this.parseBasicType(param);
553
+ })).then(function(resultParams) {
554
+ return _construct(Class, [].concat(resultParams));
555
+ }).then(function(instance) {
556
+ return _this.parsePropsAndMethods(instance, item);
557
+ });
551
558
  };
552
559
  _proto.parsePropsAndMethods = function parsePropsAndMethods(instance, item) {
553
560
  var promises = [];
@@ -555,16 +562,14 @@ var ReflectionParser = /*#__PURE__*/ function() {
555
562
  for(var methodName in item.methods){
556
563
  var methodParams = item.methods[methodName];
557
564
  for(var i = 0, count = methodParams.length; i < count; i++){
558
- var params = methodParams[i];
559
- var promise = this.parseMethod(instance, methodName, params);
560
- promises.push(promise);
565
+ promises.push(this.parseMethod(instance, methodName, methodParams[i]));
561
566
  }
562
567
  }
563
568
  }
564
569
  if (item.props) {
565
570
  var _this = this, _loop = function(key) {
566
571
  var value = item.props[key];
567
- var promise = _this.parseBasicType(value).then(function(v) {
572
+ var promise = _this.parseBasicType(value, instance[key]).then(function(v) {
568
573
  return instance[key] = v;
569
574
  });
570
575
  promises.push(promise);
@@ -586,7 +591,7 @@ var ReflectionParser = /*#__PURE__*/ function() {
586
591
  return (_instance = instance)[methodName].apply(_instance, [].concat(result));
587
592
  });
588
593
  };
589
- _proto.parseBasicType = function parseBasicType(value) {
594
+ _proto.parseBasicType = function parseBasicType(value, originValue) {
590
595
  var _this = this;
591
596
  if (Array.isArray(value)) {
592
597
  return Promise.all(value.map(function(item) {
@@ -603,13 +608,33 @@ var ReflectionParser = /*#__PURE__*/ function() {
603
608
  } else if (ReflectionParser._isEntityRef(value)) {
604
609
  // entity reference
605
610
  return Promise.resolve(this._context.entityMap.get(value.entityId));
606
- } else {
607
- // basic type
608
- return Promise.resolve(value);
611
+ } else if (originValue) {
612
+ var _this1 = this, _loop = function(key) {
613
+ if (key === "methods") {
614
+ var methods = value[key];
615
+ for(var methodName in methods){
616
+ var methodParams = methods[methodName];
617
+ for(var i = 0, count = methodParams.length; i < count; i++){
618
+ var params = methodParams[i];
619
+ var promise = _this1.parseMethod(originValue, methodName, params);
620
+ promises.push(promise);
621
+ }
622
+ }
623
+ } else {
624
+ promises.push(_this1.parseBasicType(value[key], originValue[key]).then(function(v) {
625
+ return originValue[key] = v;
626
+ }));
627
+ }
628
+ };
629
+ var promises = [];
630
+ for(var key in value)_loop(key);
631
+ return Promise.all(promises).then(function() {
632
+ return originValue;
633
+ });
609
634
  }
610
- } else {
611
- return Promise.resolve(value);
612
635
  }
636
+ // primitive type
637
+ return Promise.resolve(value);
613
638
  };
614
639
  _proto._getEntityByConfig = function _getEntityByConfig(entityConfig) {
615
640
  // @ts-ignore
@@ -1603,11 +1628,37 @@ var TextureWrapMode;
1603
1628
  _this.get(9),
1604
1629
  _this.get(2)
1605
1630
  ]).then(function() {
1631
+ var glTFResource = _this.glTFResource;
1632
+ if (glTFResource.skins || glTFResource.animations) {
1633
+ _this._createAnimator(_this, glTFResource.animations);
1634
+ }
1606
1635
  _this.resourceManager.addContentRestorer(_this.contentRestorer);
1607
- return _this.glTFResource;
1636
+ return glTFResource;
1608
1637
  });
1609
1638
  });
1610
1639
  };
1640
+ _proto._createAnimator = function _createAnimator(context, animations) {
1641
+ var defaultSceneRoot = context.glTFResource.defaultSceneRoot;
1642
+ var animator = defaultSceneRoot.addComponent(engineCore.Animator);
1643
+ var animatorController = new engineCore.AnimatorController();
1644
+ var layer = new engineCore.AnimatorControllerLayer("layer");
1645
+ var animatorStateMachine = new engineCore.AnimatorStateMachine();
1646
+ animatorController.addLayer(layer);
1647
+ animator.animatorController = animatorController;
1648
+ layer.stateMachine = animatorStateMachine;
1649
+ if (animations) {
1650
+ for(var i = 0; i < animations.length; i++){
1651
+ var animationClip = animations[i];
1652
+ var name = animationClip.name;
1653
+ var uniqueName = animatorStateMachine.makeUniqueStateName(name);
1654
+ if (uniqueName !== name) {
1655
+ console.warn("AnimatorState name is existed, name: " + name + " reset to " + uniqueName);
1656
+ }
1657
+ var animatorState = animatorStateMachine.addState(uniqueName);
1658
+ animatorState.clip = animationClip;
1659
+ }
1660
+ }
1661
+ };
1611
1662
  _proto._handleSubAsset = function _handleSubAsset(resource, type, index) {
1612
1663
  var _this = this;
1613
1664
  var glTFResourceKey = glTFResourceMap[type];
@@ -2584,6 +2635,7 @@ function transcode(buffer, targetFormat, KTX2File) {
2584
2635
  var faceCount = ktx2File.getFaces();
2585
2636
  var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
2586
2637
  var faces = new Array(faceCount);
2638
+ var isBC = format === 2 || format === 3 || format === 7;
2587
2639
  for(var face = 0; face < faceCount; face++){
2588
2640
  var mipmaps = new Array(levelCount);
2589
2641
  for(var mip = 0; mip < levelCount; mip++){
@@ -2591,8 +2643,15 @@ function transcode(buffer, targetFormat, KTX2File) {
2591
2643
  var mipWidth = void 0, mipHeight = void 0;
2592
2644
  for(var layer = 0; layer < layerCount; layer++){
2593
2645
  var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
2594
- mipWidth = levelInfo.origWidth;
2595
- mipHeight = levelInfo.origHeight;
2646
+ // see: https://github.com/KhronosGroup/KTX-Software/issues/254
2647
+ if (isBC && mip === 0 && (width !== levelInfo.width || height !== levelInfo.height)) {
2648
+ width = mipWidth = levelInfo.width;
2649
+ height = mipHeight = levelInfo.height;
2650
+ console.warn("KTX2 transcode to BC will resize to width: " + width + ", height: " + height + ". You'd better use an image whose size if multiple of 4.");
2651
+ } else {
2652
+ mipWidth = levelInfo.origWidth;
2653
+ mipHeight = levelInfo.origHeight;
2654
+ }
2596
2655
  var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
2597
2656
  var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
2598
2657
  if (!status) {
@@ -2904,11 +2963,14 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
2904
2963
  return Loader1.apply(this, arguments);
2905
2964
  }
2906
2965
  var _proto = KTX2Loader1.prototype;
2907
- _proto.initialize = function initialize(engine, configuration) {
2966
+ _proto.initialize = function initialize(_, configuration) {
2908
2967
  if (configuration.ktx2Loader) {
2909
2968
  var options = configuration.ktx2Loader;
2910
- if (options.priorityFormats) exports.KTX2Loader._priorityFormats = options.priorityFormats;
2911
- if (this._isKhronosSupported(options.priorityFormats, engine) && options.workerCount !== 0) {
2969
+ if (options.priorityFormats) {
2970
+ exports.KTX2Loader._priorityFormats["etc1s"] = options.priorityFormats;
2971
+ exports.KTX2Loader._priorityFormats["uastc"] = options.priorityFormats;
2972
+ }
2973
+ if (options.transcoder === /** Khronos transcoder. */ 1) {
2912
2974
  return exports.KTX2Loader._getKhronosTranscoder(options.workerCount).init();
2913
2975
  } else {
2914
2976
  return exports.KTX2Loader._getBinomialLLCTranscoder(options.workerCount).init();
@@ -2927,17 +2989,6 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
2927
2989
  });
2928
2990
  });
2929
2991
  };
2930
- _proto._isKhronosSupported = function _isKhronosSupported(priorityFormats, engine) {
2931
- if (priorityFormats === void 0) priorityFormats = [
2932
- exports.KTX2TargetFormat.ASTC,
2933
- exports.KTX2TargetFormat.ETC,
2934
- exports.KTX2TargetFormat.BC7,
2935
- exports.KTX2TargetFormat.BC1_BC3,
2936
- exports.KTX2TargetFormat.PVRTC,
2937
- exports.KTX2TargetFormat.R8G8B8A8
2938
- ];
2939
- return !!KhronosTranscoder.transcoderMap[exports.KTX2Loader._detectSupportedFormat(engine._hardwareRenderer, priorityFormats)];
2940
- };
2941
2992
  /**
2942
2993
  * Destroy ktx2 transcoder worker.
2943
2994
  */ KTX2Loader1.destroy = function destroy() {
@@ -2951,7 +3002,7 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
2951
3002
  var _params;
2952
3003
  var ktx2Container = new KTX2Container(buffer);
2953
3004
  var _params_priorityFormats;
2954
- var formatPriorities = (_params_priorityFormats = (_params = params) == null ? void 0 : _params.priorityFormats) != null ? _params_priorityFormats : exports.KTX2Loader._priorityFormats;
3005
+ var formatPriorities = (_params_priorityFormats = (_params = params) == null ? void 0 : _params.priorityFormats) != null ? _params_priorityFormats : exports.KTX2Loader._priorityFormats[ktx2Container.isUASTC ? "uastc" : "etc1s"];
2955
3006
  var targetFormat = exports.KTX2Loader._decideTargetFormat(engine, ktx2Container, formatPriorities);
2956
3007
  var transcodeResultPromise;
2957
3008
  if (exports.KTX2Loader._isBinomialInit || !KhronosTranscoder.transcoderMap[targetFormat] || !ktx2Container.isUASTC) {
@@ -3019,11 +3070,21 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
3019
3070
  };
3020
3071
  KTX2Loader1._detectSupportedFormat = function _detectSupportedFormat(renderer, priorityFormats) {
3021
3072
  for(var i = 0; i < priorityFormats.length; i++){
3022
- var capabilities = this._supportedMap[priorityFormats[i]];
3023
- if (!capabilities) return null;
3024
- for(var j = 0; j < capabilities.length; j++){
3025
- if (renderer.canIUse(capabilities[j])) {
3026
- return priorityFormats[i];
3073
+ var format = priorityFormats[i];
3074
+ var capabilities = this._supportedMap[format];
3075
+ if (capabilities) {
3076
+ for(var j = 0; j < capabilities.length; j++){
3077
+ if (renderer.canIUse(capabilities[j])) {
3078
+ return format;
3079
+ }
3080
+ }
3081
+ } else {
3082
+ switch(priorityFormats[i]){
3083
+ case exports.KTX2TargetFormat.R8G8B8A8:
3084
+ return format;
3085
+ case exports.KTX2TargetFormat.R8:
3086
+ case exports.KTX2TargetFormat.R8G8:
3087
+ if (renderer.isWebGL2) return format;
3027
3088
  }
3028
3089
  }
3029
3090
  }
@@ -3061,13 +3122,22 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
3061
3122
  }(engineCore.Loader), function() {
3062
3123
  _KTX2Loader._isBinomialInit = false;
3063
3124
  }(), function() {
3064
- _KTX2Loader._priorityFormats = [
3065
- exports.KTX2TargetFormat.BC7,
3066
- exports.KTX2TargetFormat.ASTC,
3067
- exports.KTX2TargetFormat.BC1_BC3,
3068
- exports.KTX2TargetFormat.ETC,
3069
- exports.KTX2TargetFormat.PVRTC
3070
- ];
3125
+ _KTX2Loader._priorityFormats = {
3126
+ etc1s: [
3127
+ exports.KTX2TargetFormat.ETC,
3128
+ exports.KTX2TargetFormat.BC7,
3129
+ exports.KTX2TargetFormat.ASTC,
3130
+ exports.KTX2TargetFormat.BC1_BC3,
3131
+ exports.KTX2TargetFormat.PVRTC
3132
+ ],
3133
+ uastc: [
3134
+ exports.KTX2TargetFormat.ASTC,
3135
+ exports.KTX2TargetFormat.BC7,
3136
+ exports.KTX2TargetFormat.ETC,
3137
+ exports.KTX2TargetFormat.BC1_BC3,
3138
+ exports.KTX2TargetFormat.PVRTC
3139
+ ]
3140
+ };
3071
3141
  }(), function() {
3072
3142
  var _obj;
3073
3143
  _KTX2Loader._supportedMap = (_obj = {}, _obj[exports.KTX2TargetFormat.ASTC] = [
@@ -3088,6 +3158,11 @@ exports.KTX2Loader = __decorate([
3088
3158
  "ktx2"
3089
3159
  ])
3090
3160
  ], exports.KTX2Loader);
3161
+ exports.KTX2Transcoder = void 0;
3162
+ (function(KTX2Transcoder) {
3163
+ KTX2Transcoder[KTX2Transcoder[/** BinomialLLC transcoder. */ "BinomialLLC"] = 0] = "BinomialLLC";
3164
+ KTX2Transcoder[KTX2Transcoder["Khronos"] = 1] = "Khronos";
3165
+ })(exports.KTX2Transcoder || (exports.KTX2Transcoder = {}));
3091
3166
 
3092
3167
  /**
3093
3168
  * @internal
@@ -3531,6 +3606,7 @@ exports.GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
3531
3606
  var promises = new Array();
3532
3607
  // parse samplers
3533
3608
  for(var j = 0, m = samplers.length; j < m; j++)_loop(j);
3609
+ promises.push(context.get(exports.GLTFParserType.Scene));
3534
3610
  return Promise.all(promises).then(function() {
3535
3611
  for(var j = 0, m = channels.length; j < m; j++){
3536
3612
  var gltfChannel = channels[j];
@@ -3542,6 +3618,10 @@ exports.GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
3542
3618
  relativePath = relativePath === "" ? "" + entity.name : entity.name + "/" + relativePath;
3543
3619
  entity = entity.parent;
3544
3620
  }
3621
+ // If the target node is in the default scene, relativePath will be empty
3622
+ if (context.glTFResource.sceneRoots.indexOf(entity) === -1) {
3623
+ continue;
3624
+ }
3545
3625
  var ComponentType = void 0;
3546
3626
  var propertyName = void 0;
3547
3627
  switch(target.path){
@@ -4056,7 +4136,6 @@ exports.GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4056
4136
  }
4057
4137
  var _proto = GLTFSceneParser.prototype;
4058
4138
  _proto.parse = function parse(context, index) {
4059
- var _this = this;
4060
4139
  var _context_glTF = context.glTF, scenes = _context_glTF.scenes, _context_glTF_scene = _context_glTF.scene, scene = _context_glTF_scene === void 0 ? 0 : _context_glTF_scene, glTFResource = context.glTFResource;
4061
4140
  var sceneInfo = scenes[index];
4062
4141
  var sceneExtensions = sceneInfo.extensions;
@@ -4086,18 +4165,6 @@ exports.GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4086
4165
  }
4087
4166
  return Promise.all(promises).then(function() {
4088
4167
  GLTFParser.executeExtensionsAdditiveAndParse(sceneExtensions, context, sceneRoot, sceneInfo);
4089
- if (isDefaultScene) {
4090
- return Promise.all([
4091
- context.get(exports.GLTFParserType.Skin),
4092
- context.get(exports.GLTFParserType.Animation)
4093
- ]).then(function(param) {
4094
- var skins = param[0], animations = param[1];
4095
- if (skins || animations) {
4096
- _this._createAnimator(context, animations);
4097
- }
4098
- return sceneRoot;
4099
- });
4100
- }
4101
4168
  return sceneRoot;
4102
4169
  });
4103
4170
  };
@@ -4209,28 +4276,6 @@ exports.GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4209
4276
  for(var i = 0; i < glTFMeshPrimitives.length; i++)_loop(i);
4210
4277
  return Promise.all(promises);
4211
4278
  };
4212
- _proto._createAnimator = function _createAnimator(context, animations) {
4213
- var defaultSceneRoot = context.glTFResource.defaultSceneRoot;
4214
- var animator = defaultSceneRoot.addComponent(engineCore.Animator);
4215
- var animatorController = new engineCore.AnimatorController();
4216
- var layer = new engineCore.AnimatorControllerLayer("layer");
4217
- var animatorStateMachine = new engineCore.AnimatorStateMachine();
4218
- animatorController.addLayer(layer);
4219
- animator.animatorController = animatorController;
4220
- layer.stateMachine = animatorStateMachine;
4221
- if (animations) {
4222
- for(var i = 0; i < animations.length; i++){
4223
- var animationClip = animations[i];
4224
- var name = animationClip.name;
4225
- var uniqueName = animatorStateMachine.makeUniqueStateName(name);
4226
- if (uniqueName !== name) {
4227
- console.warn("AnimatorState name is existed, name: " + name + " reset to " + uniqueName);
4228
- }
4229
- var animatorState = animatorStateMachine.addState(uniqueName);
4230
- animatorState.clip = animationClip;
4231
- }
4232
- }
4233
- };
4234
4279
  _proto._computeLocalBounds = function _computeLocalBounds(skinnedMeshRenderer, mesh, bones, rootBone, inverseBindMatrices) {
4235
4280
  var rootBoneIndex = bones.indexOf(rootBone);
4236
4281
  if (rootBoneIndex !== -1) {
@@ -5115,6 +5160,12 @@ var MaterialLoader = /*#__PURE__*/ function(Loader1) {
5115
5160
  materialShaderData.setTexture(key, texture);
5116
5161
  }));
5117
5162
  break;
5163
+ case "Boolean":
5164
+ materialShaderData.setInt(key, value ? 1 : 0);
5165
+ break;
5166
+ case "Integer":
5167
+ materialShaderData.setInt(key, Number(value));
5168
+ break;
5118
5169
  }
5119
5170
  };
5120
5171
  var engine = resourceManager.engine;
@@ -5250,9 +5301,10 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
5250
5301
  var _loop = function(i) {
5251
5302
  var atlasItem = atlasItems[i];
5252
5303
  if (atlasItem.img) {
5304
+ var _atlasItem_type;
5253
5305
  chainPromises.push(resourceManager.load({
5254
5306
  url: engineCore.Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
5255
- type: engineCore.AssetType.Texture2D,
5307
+ type: (_atlasItem_type = atlasItem.type) != null ? _atlasItem_type : engineCore.AssetType.Texture2D,
5256
5308
  params: {
5257
5309
  format: format,
5258
5310
  mipmap: mipmap
@@ -5322,26 +5374,31 @@ var SpriteLoader = /*#__PURE__*/ function(Loader1) {
5322
5374
  var _proto = SpriteLoader.prototype;
5323
5375
  _proto.load = function load(item, resourceManager) {
5324
5376
  var _this = this;
5325
- return new engineCore.AssetPromise(function(resolve, reject) {
5326
- _this.request(item.url, _extends({}, item, {
5327
- type: "json"
5328
- })).then(function(data) {
5329
- if (data.belongToAtlas) {
5330
- resourceManager// @ts-ignore
5331
- .getResourceByRef(data.belongToAtlas).then(function(atlas) {
5332
- resolve(atlas.getSprite(data.fullPath));
5333
- }).catch(reject);
5334
- } else if (data.texture) {
5335
- resourceManager// @ts-ignore
5336
- .getResourceByRef(data.texture).then(function(texture) {
5337
- resolve(new engineCore.Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border));
5338
- }).catch(reject);
5339
- } else {
5340
- resolve(new engineCore.Sprite(resourceManager.engine, null, data.region, data.pivot, data.border));
5341
- }
5342
- }).catch(reject);
5377
+ return this.request(item.url, _extends({}, item, {
5378
+ type: "json"
5379
+ })).then(function(data) {
5380
+ return data.belongToAtlas ? _this._loadFromAtlas(resourceManager, data) : _this._loadFromTexture(resourceManager, data);
5381
+ });
5382
+ };
5383
+ _proto._loadFromAtlas = function _loadFromAtlas(resourceManager, data) {
5384
+ var _this = this;
5385
+ return resourceManager// @ts-ignore
5386
+ .getResourceByRef(data.belongToAtlas).then(function(atlas) {
5387
+ return atlas.getSprite(data.fullPath) || _this._loadFromTexture(resourceManager, data);
5343
5388
  });
5344
5389
  };
5390
+ _proto._loadFromTexture = function _loadFromTexture(resourceManager, data) {
5391
+ if (data.texture) {
5392
+ return resourceManager// @ts-ignore
5393
+ .getResourceByRef(data.texture).then(function(texture) {
5394
+ return new engineCore.Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border);
5395
+ });
5396
+ } else {
5397
+ return new engineCore.AssetPromise(function(resolve) {
5398
+ resolve(new engineCore.Sprite(resourceManager.engine, null, data.region, data.pivot, data.border));
5399
+ });
5400
+ }
5401
+ };
5345
5402
  return SpriteLoader;
5346
5403
  }(engineCore.Loader);
5347
5404
  SpriteLoader = __decorate([
@@ -5388,9 +5445,13 @@ var Texture2DLoader = /*#__PURE__*/ function(Loader1) {
5388
5445
  type: "image"
5389
5446
  });
5390
5447
  _this.request(url, requestConfig).then(function(image) {
5391
- var _params, _params1;
5392
- var params = item.params;
5393
- var texture = new engineCore.Texture2D(resourceManager.engine, image.width, image.height, (_params = params) == null ? void 0 : _params.format, (_params1 = params) == null ? void 0 : _params1.mipmap);
5448
+ var _item_params;
5449
+ var _ref = (_item_params = item.params) != null ? _item_params : {}, format = _ref.format, mipmap = _ref.mipmap, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode;
5450
+ var texture = new engineCore.Texture2D(resourceManager.engine, image.width, image.height, format, mipmap);
5451
+ texture.anisoLevel = anisoLevel != null ? anisoLevel : texture.anisoLevel;
5452
+ texture.filterMode = filterMode != null ? filterMode : texture.filterMode;
5453
+ texture.wrapModeU = wrapModeU != null ? wrapModeU : texture.wrapModeU;
5454
+ texture.wrapModeV = wrapModeV != null ? wrapModeV : texture.wrapModeV;
5394
5455
  texture.setImageSource(image);
5395
5456
  texture.generateMipmaps();
5396
5457
  if (url.indexOf("data:") !== 0) {
@@ -5538,29 +5599,34 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
5538
5599
  var promises = [];
5539
5600
  // parse ambient light
5540
5601
  var ambient = data.scene.ambient;
5541
- var useCustomAmbient = ambient.specularMode === "Custom";
5542
- var useSH = ambient.diffuseMode === engineCore.DiffuseMode.SphericalHarmonics;
5543
- scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
5544
- scene.ambientLight.specularIntensity = ambient.specularIntensity;
5545
- scene.ambientLight.diffuseMode = ambient.diffuseMode;
5546
- scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
5547
- scene.ambientLight.specularTextureDecodeRGBM = true;
5548
- if (useCustomAmbient && ambient.customAmbientLight) {
5549
- promises.push(// @ts-ignore
5550
- resourceManager.getResourceByRef(ambient.customAmbientLight).then(function(ambientLight) {
5551
- scene.ambientLight.specularTexture = ambientLight.specularTexture;
5552
- }));
5553
- }
5554
- if (ambient.ambientLight && (!useCustomAmbient || useSH)) {
5555
- promises.push(// @ts-ignore
5556
- resourceManager.getResourceByRef(ambient.ambientLight).then(function(ambientLight) {
5557
- if (!useCustomAmbient) {
5558
- scene.ambientLight.specularTexture = ambientLight.specularTexture;
5559
- }
5560
- if (useSH) {
5561
- scene.ambientLight.diffuseSphericalHarmonics = ambientLight.diffuseSphericalHarmonics;
5562
- }
5563
- }));
5602
+ if (ambient) {
5603
+ var useCustomAmbient = ambient.specularMode === "Custom";
5604
+ var useSH = ambient.diffuseMode === engineCore.DiffuseMode.SphericalHarmonics;
5605
+ scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
5606
+ scene.ambientLight.specularIntensity = ambient.specularIntensity;
5607
+ scene.ambientLight.diffuseMode = ambient.diffuseMode;
5608
+ scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
5609
+ scene.ambientLight.specularTextureDecodeRGBM = true;
5610
+ if (useCustomAmbient && ambient.customAmbientLight) {
5611
+ promises.push(// @ts-ignore
5612
+ resourceManager.getResourceByRef(ambient.customAmbientLight).then(function(ambientLight) {
5613
+ var _ambientLight;
5614
+ scene.ambientLight.specularTexture = (_ambientLight = ambientLight) == null ? void 0 : _ambientLight.specularTexture;
5615
+ }));
5616
+ }
5617
+ if (ambient.ambientLight && (!useCustomAmbient || useSH)) {
5618
+ promises.push(// @ts-ignore
5619
+ resourceManager.getResourceByRef(ambient.ambientLight).then(function(ambientLight) {
5620
+ if (!useCustomAmbient) {
5621
+ var _ambientLight;
5622
+ scene.ambientLight.specularTexture = (_ambientLight = ambientLight) == null ? void 0 : _ambientLight.specularTexture;
5623
+ }
5624
+ if (useSH) {
5625
+ var _ambientLight1;
5626
+ scene.ambientLight.diffuseSphericalHarmonics = (_ambientLight1 = ambientLight) == null ? void 0 : _ambientLight1.diffuseSphericalHarmonics;
5627
+ }
5628
+ }));
5629
+ }
5564
5630
  }
5565
5631
  var background = data.scene.background;
5566
5632
  scene.background.mode = background.mode;
@@ -5602,6 +5668,9 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
5602
5668
  if (shadow.shadowResolution != undefined) scene.shadowResolution = shadow.shadowResolution;
5603
5669
  if (shadow.shadowDistance != undefined) scene.shadowDistance = shadow.shadowDistance;
5604
5670
  if (shadow.shadowCascades != undefined) scene.shadowCascades = shadow.shadowCascades;
5671
+ var _shadow_shadowTwoCascadeSplits;
5672
+ scene.shadowTwoCascadeSplits = (_shadow_shadowTwoCascadeSplits = shadow.shadowTwoCascadeSplits) != null ? _shadow_shadowTwoCascadeSplits : scene.shadowTwoCascadeSplits;
5673
+ shadow.shadowFourCascadeSplits && scene.shadowFourCascadeSplits.copyFrom(shadow.shadowFourCascadeSplits);
5605
5674
  }
5606
5675
  return Promise.all(promises).then(function() {
5607
5676
  resolve(scene);