@galacean/engine-loader 1.2.0-beta.4 → 1.2.0-beta.5

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.
package/dist/main.js CHANGED
@@ -4534,25 +4534,31 @@ exports.GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4534
4534
  camera.enabled = false;
4535
4535
  };
4536
4536
  _proto._createRenderer = function _createRenderer(context, entityInfo, entity) {
4537
- var _loop = function(i) {
4538
- var glTFPrimitive = glTFMeshPrimitives[i];
4539
- var materialIndex = glTFPrimitive.material;
4540
- promises.push(Promise.all([
4541
- context.get(exports.GLTFParserType.Mesh, meshID),
4542
- skinID !== undefined && context.get(exports.GLTFParserType.Skin, skinID),
4543
- materialIndex !== undefined && context.get(exports.GLTFParserType.Material, materialIndex)
4544
- ]).then(function(param) {
4545
- var meshes = param[0], skin = param[1], material = param[2];
4537
+ var _this = this;
4538
+ var meshID = entityInfo.mesh, skinID = entityInfo.skin;
4539
+ var glTFMesh = context.glTF.meshes[meshID];
4540
+ var glTFMeshPrimitives = glTFMesh.primitives;
4541
+ var rendererCount = glTFMeshPrimitives.length;
4542
+ var blendShapeWeights = entityInfo.weights || glTFMesh.weights;
4543
+ var materialPromises = new Array(rendererCount);
4544
+ for(var i = 0; i < rendererCount; i++){
4545
+ materialPromises[i] = context.get(exports.GLTFParserType.Material, glTFMeshPrimitives[i].material);
4546
+ }
4547
+ return Promise.all([
4548
+ context.get(exports.GLTFParserType.Mesh, meshID),
4549
+ skinID !== undefined && context.get(exports.GLTFParserType.Skin, skinID),
4550
+ Promise.all(materialPromises)
4551
+ ]).then(function(param) {
4552
+ var _loop = function(i) {
4553
+ var material = materials[i] || exports.GLTFMaterialParser._getDefaultMaterial(context.glTFResource.engine);
4554
+ var glTFPrimitive = glTFMeshPrimitives[i];
4546
4555
  var mesh = meshes[i];
4547
- var renderer;
4548
- material || (material = exports.GLTFMaterialParser._getDefaultMaterial(context.glTFResource.engine));
4556
+ var renderer = void 0;
4549
4557
  if (skin || blendShapeWeights) {
4550
4558
  var skinRenderer = entity.addComponent(engineCore.SkinnedMeshRenderer);
4551
4559
  skinRenderer.mesh = mesh;
4552
4560
  if (skin) {
4553
- skinRenderer.rootBone = skin._rootBone;
4554
- skinRenderer.bones = skin._bones;
4555
- _this._computeLocalBounds(skinRenderer, mesh, skin._bones, skin._rootBone, skin.inverseBindMatrices);
4561
+ _this._computeLocalBounds(skinRenderer, mesh, skin.bones, skin.rootBone, skin.inverseBindMatrices);
4556
4562
  skinRenderer.skin = skin;
4557
4563
  }
4558
4564
  if (blendShapeWeights) {
@@ -4571,17 +4577,10 @@ exports.GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4571
4577
  }
4572
4578
  });
4573
4579
  GLTFParser.executeExtensionsAdditiveAndParse(glTFPrimitive.extensions, context, renderer, glTFPrimitive);
4574
- }));
4575
- };
4576
- var _this = this;
4577
- var glTFMeshes = context.glTF.meshes;
4578
- var meshID = entityInfo.mesh, skinID = entityInfo.skin;
4579
- var glTFMesh = glTFMeshes[meshID];
4580
- var glTFMeshPrimitives = glTFMesh.primitives;
4581
- var blendShapeWeights = entityInfo.weights || glTFMesh.weights;
4582
- var promises = new Array();
4583
- for(var i = 0; i < glTFMeshPrimitives.length; i++)_loop(i);
4584
- return Promise.all(promises);
4580
+ };
4581
+ var meshes = param[0], skin = param[1], materials = param[2];
4582
+ for(var i = 0; i < rendererCount; i++)_loop(i);
4583
+ });
4585
4584
  };
4586
4585
  _proto._computeLocalBounds = function _computeLocalBounds(skinnedMeshRenderer, mesh, bones, rootBone, inverseBindMatrices) {
4587
4586
  var rootBoneIndex = bones.indexOf(rootBone);
@@ -4635,7 +4634,7 @@ exports.GLTFSkinParser = /*#__PURE__*/ function(GLTFParser1) {
4635
4634
  var jointCount = joints.length;
4636
4635
  var skin = new engineCore.Skin(name);
4637
4636
  skin.inverseBindMatrices.length = jointCount;
4638
- skin._bones.length = jointCount;
4637
+ var bones = new Array(jointCount);
4639
4638
  // parse IBM
4640
4639
  var accessor = glTF.accessors[inverseBindMatrices];
4641
4640
  var skinPromise = GLTFUtils.getAccessorBuffer(context, glTF.bufferViews, accessor).then(function(bufferInfo) {
@@ -4647,21 +4646,20 @@ exports.GLTFSkinParser = /*#__PURE__*/ function(GLTFParser1) {
4647
4646
  skin.inverseBindMatrices[i] = inverseBindMatrix;
4648
4647
  // Get bones
4649
4648
  var bone = entities[joints[i]];
4650
- skin._bones[i] = bone;
4649
+ bones[i] = bone;
4651
4650
  skin.joints[i] = bone.name;
4652
- // Get skeleton
4653
- if (skeleton !== undefined) {
4654
- var rootBone = entities[skeleton];
4655
- skin._rootBone = rootBone;
4656
- skin.skeleton = rootBone.name;
4651
+ }
4652
+ skin.bones = bones;
4653
+ // Get skeleton
4654
+ if (skeleton !== undefined) {
4655
+ var rootBone = entities[skeleton];
4656
+ skin.rootBone = rootBone;
4657
+ } else {
4658
+ var rootBone1 = _this._findSkeletonRootBone(joints, entities);
4659
+ if (rootBone1) {
4660
+ skin.rootBone = rootBone1;
4657
4661
  } else {
4658
- var rootBone1 = _this._findSkeletonRootBone(joints, entities);
4659
- if (rootBone1) {
4660
- skin._rootBone = rootBone1;
4661
- skin.skeleton = rootBone1.name;
4662
- } else {
4663
- throw "Failed to find skeleton root bone.";
4664
- }
4662
+ throw "Failed to find skeleton root bone.";
4665
4663
  }
4666
4664
  }
4667
4665
  return skin;