@galacean/engine 1.0.0-beta.5 → 1.0.0-beta.7

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/browser.js CHANGED
@@ -19840,7 +19840,7 @@
19840
19840
  // vertices
19841
19841
  this._vertexBuffers[index] = new Buffer(engine, exports.BufferBindFlag.VertexBuffer, MAX_VERTEX_COUNT * 4 * vertexStride, exports.BufferUsage.Dynamic);
19842
19842
  // indices
19843
- this._indiceBuffers[index] = new Buffer(engine, exports.BufferBindFlag.IndexBuffer, MAX_VERTEX_COUNT * 3, exports.BufferUsage.Dynamic);
19843
+ this._indiceBuffers[index] = new Buffer(engine, exports.BufferBindFlag.IndexBuffer, MAX_VERTEX_COUNT * 2 * 3, exports.BufferUsage.Dynamic);
19844
19844
  mesh.setVertexBufferBinding(this._vertexBuffers[index], vertexStride);
19845
19845
  mesh.setIndexBufferBinding(this._indiceBuffers[index], exports.IndexFormat.UInt16);
19846
19846
  mesh.setVertexElements(vertexElements);
@@ -22708,7 +22708,7 @@
22708
22708
  // prepare render target
22709
22709
  var renderTarget = this._getAvailableRenderTarget();
22710
22710
  // @todo: shouldn't set viewport and scissor in activeRenderTarget
22711
- rhi.activeRenderTarget(renderTarget, null, 0);
22711
+ rhi.activeRenderTarget(renderTarget, CascadedShadowCasterPass._viewport, 0);
22712
22712
  if (this._supportDepthTexture) {
22713
22713
  rhi.clearRenderTarget(engine, exports.CameraClearFlags.Depth, null);
22714
22714
  } else {
@@ -22913,6 +22913,9 @@
22913
22913
  (function() {
22914
22914
  CascadedShadowCasterPass._cascadesSplitDistance = new Array(CascadedShadowCasterPass._maxCascades + 1);
22915
22915
  })();
22916
+ (function() {
22917
+ CascadedShadowCasterPass._viewport = new Vector4(0, 0, 1, 1);
22918
+ })();
22916
22919
  (function() {
22917
22920
  CascadedShadowCasterPass._clearColor = new Color$1(1, 1, 1, 1);
22918
22921
  })();
@@ -33375,12 +33378,6 @@
33375
33378
  this.vertexBuffers = [];
33376
33379
  this.blendShapes = [];
33377
33380
  };
33378
- /**
33379
- * @internal
33380
- */ var BufferRestoreInfo = function BufferRestoreInfo(buffer, data) {
33381
- this.buffer = buffer;
33382
- this.data = data;
33383
- };
33384
33381
  /**
33385
33382
  * @internal
33386
33383
  */ var BufferDataRestoreInfo = function BufferDataRestoreInfo(main, typeSize, sparseCount, sparseIndices, sparseValues) {
@@ -34684,21 +34681,31 @@
34684
34681
  var vertexCount;
34685
34682
  var bufferBindIndex = 0;
34686
34683
  var positions;
34687
- keepMeshData && (positions = new Array(vertexCount));
34684
+ var boneIndices;
34685
+ var boneWeights;
34686
+ if (keepMeshData) {
34687
+ positions = new Array(vertexCount);
34688
+ boneIndices = new Array(vertexCount);
34689
+ boneWeights = new Array(vertexCount);
34690
+ }
34688
34691
  for(var attribute in attributes){
34689
34692
  var accessor = accessors[attributes[attribute]];
34690
34693
  var accessorBuffer = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor);
34691
34694
  var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
34692
- var attributeCount = accessor.count;
34695
+ var accessorCount = accessor.count;
34693
34696
  var vertices = accessorBuffer.data;
34694
34697
  var vertexElement = void 0;
34695
34698
  var meshId = mesh.instanceId;
34696
34699
  var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
34697
- var elementFormat = GLTFUtils.getElementFormat(accessor.componentType, dataElementSize, accessor.normalized);
34700
+ var elementNormalized = accessor.normalized;
34701
+ var elementFormat = GLTFUtils.getElementFormat(accessor.componentType, dataElementSize, elementNormalized);
34702
+ var scaleFactor = void 0;
34703
+ elementNormalized && (scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType));
34704
+ var elementOffset = void 0;
34698
34705
  if (accessorBuffer.interleaved) {
34699
34706
  var byteOffset = accessor.byteOffset || 0;
34700
34707
  var stride = accessorBuffer.stride;
34701
- var elementOffset = byteOffset % stride;
34708
+ elementOffset = byteOffset % stride;
34702
34709
  if (vertexBindingInfos[meshId] === undefined) {
34703
34710
  vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
34704
34711
  var vertexBuffer = accessorBuffer.vertexBuffer;
@@ -34706,7 +34713,6 @@
34706
34713
  vertexBuffer = new Buffer(engine, exports.BufferBindFlag.VertexBuffer, vertices.byteLength, exports.BufferUsage.Static);
34707
34714
  vertexBuffer.setData(vertices);
34708
34715
  accessorBuffer.vertexBuffer = vertexBuffer;
34709
- meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer, accessorBuffer.restoreInfo));
34710
34716
  }
34711
34717
  mesh.setVertexBufferBinding(vertexBuffer, stride, bufferBindIndex);
34712
34718
  vertexBindingInfos[meshId] = bufferBindIndex++;
@@ -34714,44 +34720,70 @@
34714
34720
  vertexElement = new VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
34715
34721
  }
34716
34722
  } else {
34717
- vertexElement = new VertexElement(attribute, 0, elementFormat, bufferBindIndex);
34723
+ elementOffset = 0;
34724
+ vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
34718
34725
  var vertexBuffer1 = new Buffer(engine, exports.BufferBindFlag.VertexBuffer, vertices.byteLength, exports.BufferUsage.Static);
34719
34726
  vertexBuffer1.setData(vertices);
34720
- meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer1, accessorBuffer.restoreInfo));
34721
34727
  mesh.setVertexBufferBinding(vertexBuffer1, accessorBuffer.stride, bufferBindIndex);
34722
34728
  vertexBindingInfos[meshId] = bufferBindIndex++;
34723
34729
  }
34724
34730
  vertexElements.push(vertexElement);
34725
34731
  if (attribute === "POSITION") {
34726
- vertexCount = attributeCount;
34732
+ vertexCount = accessorCount;
34727
34733
  var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
34728
34734
  if (accessor.min && accessor.max) {
34729
34735
  min.copyFromArray(accessor.min);
34730
34736
  max.copyFromArray(accessor.max);
34731
34737
  if (keepMeshData) {
34732
- var stride1 = vertices.length / attributeCount;
34733
- for(var j = 0; j < attributeCount; j++){
34734
- var offset = j * stride1;
34735
- positions[j] = new Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
34738
+ var baseOffset = elementOffset / vertices.BYTES_PER_ELEMENT;
34739
+ var stride1 = vertices.length / accessorCount;
34740
+ for(var j = 0; j < accessorCount; j++){
34741
+ var offset = baseOffset + j * stride1;
34742
+ var position = new Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
34743
+ elementNormalized && position.scale(scaleFactor);
34744
+ positions[j] = position;
34736
34745
  }
34737
34746
  }
34738
34747
  } else {
34739
- var position = GLTFMeshParser._tempVector3;
34748
+ var position1 = GLTFMeshParser._tempVector3;
34740
34749
  min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
34741
34750
  max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
34742
- var stride2 = vertices.length / attributeCount;
34743
- for(var j1 = 0; j1 < attributeCount; j1++){
34744
- var offset1 = j1 * stride2;
34745
- position.copyFromArray(vertices, offset1);
34746
- Vector3.min(min, position, min);
34747
- Vector3.max(max, position, max);
34751
+ var baseOffset1 = elementOffset / vertices.BYTES_PER_ELEMENT;
34752
+ var stride2 = vertices.length / accessorCount;
34753
+ for(var j1 = 0; j1 < accessorCount; j1++){
34754
+ var offset1 = baseOffset1 + j1 * stride2;
34755
+ position1.copyFromArray(vertices, offset1);
34756
+ Vector3.min(min, position1, min);
34757
+ Vector3.max(max, position1, max);
34758
+ if (keepMeshData) {
34759
+ var clonePosition = position1.clone();
34760
+ elementNormalized && clonePosition.scale(scaleFactor);
34761
+ positions[j1] = clonePosition;
34762
+ }
34748
34763
  }
34749
34764
  }
34750
- if (accessor.normalized) {
34751
- var scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType);
34765
+ if (elementNormalized) {
34752
34766
  min.scale(scaleFactor);
34753
34767
  max.scale(scaleFactor);
34754
34768
  }
34769
+ } else if (attribute === "JOINTS_0" && keepMeshData) {
34770
+ var baseOffset2 = elementOffset / vertices.BYTES_PER_ELEMENT;
34771
+ var stride3 = vertices.length / accessorCount;
34772
+ for(var j2 = 0; j2 < accessorCount; j2++){
34773
+ var offset2 = baseOffset2 + j2 * stride3;
34774
+ var boneIndex = new Vector4(vertices[offset2], vertices[offset2 + 1], vertices[offset2 + 2], vertices[offset2 + 3]);
34775
+ elementNormalized && boneIndex.scale(scaleFactor);
34776
+ boneIndices[j2] = boneIndex;
34777
+ }
34778
+ } else if (attribute === "WEIGHTS_0" && keepMeshData) {
34779
+ var baseOffset3 = elementOffset / vertices.BYTES_PER_ELEMENT;
34780
+ var stride4 = vertices.length / accessorCount;
34781
+ for(var j3 = 0; j3 < accessorCount; j3++){
34782
+ var offset3 = baseOffset3 + j3 * stride4;
34783
+ var boneWeight = new Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
34784
+ elementNormalized && boneWeight.scale(scaleFactor);
34785
+ boneWeights[j3] = boneWeight;
34786
+ }
34755
34787
  }
34756
34788
  }
34757
34789
  mesh.setVertexElements(vertexElements);
@@ -34770,6 +34802,10 @@
34770
34802
  mesh.uploadData(!keepMeshData);
34771
34803
  //@ts-ignore
34772
34804
  mesh._positions = positions;
34805
+ //@ts-ignore
34806
+ mesh._boneIndices = boneIndices;
34807
+ //@ts-ignore
34808
+ mesh._boneWeights = boneWeights;
34773
34809
  return Promise.resolve(mesh);
34774
34810
  };
34775
34811
  /**
@@ -37636,7 +37672,7 @@
37636
37672
  ], GALACEAN_animation_event);
37637
37673
 
37638
37674
  //@ts-ignore
37639
- var version = "1.0.0-beta.5";
37675
+ var version = "1.0.0-beta.7";
37640
37676
  console.log("Galacean engine version: " + version);
37641
37677
  for(var key in CoreObjects){
37642
37678
  Loader.registerClass(key, CoreObjects[key]);