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