@galacean/engine-loader 1.0.0-beta.17 → 1.0.0-beta.18
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 +67 -23
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +67 -23
- package/dist/module.js +67 -23
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
- package/types/GLTFContentRestorer.d.ts +17 -7
- package/types/gltf/GLTFUtil.d.ts +3 -3
- package/types/gltf/GLTFUtils.d.ts +1 -0
- package/types/gltf/parser/GLTFAnimationParser.d.ts +1 -1
- package/types/gltf/parser/GLTFMeshParser.d.ts +3 -3
- package/types/gltf/parser/GLTFSceneParser.d.ts +2 -2
- package/types/gltf/parser/GLTFTextureParser.d.ts +1 -1
package/dist/main.js
CHANGED
|
@@ -443,15 +443,18 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
|
|
|
443
443
|
for(var _iterator2 = _create_for_of_iterator_helper_loose(meshInfo.blendShapes), _step2; !(_step2 = _iterator2()).done;){
|
|
444
444
|
var restoreInfo = _step2.value;
|
|
445
445
|
var frame = restoreInfo.blendShape.frames[0];
|
|
446
|
-
var
|
|
447
|
-
|
|
446
|
+
var position = restoreInfo.position;
|
|
447
|
+
var positionData = _this._getBufferData(buffers, position.buffer);
|
|
448
|
+
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.stride, position.byteOffset, position.count);
|
|
448
449
|
if (restoreInfo.normal) {
|
|
449
|
-
var
|
|
450
|
-
|
|
450
|
+
var normal = restoreInfo.normal;
|
|
451
|
+
var normalData = _this._getBufferData(buffers, normal.buffer);
|
|
452
|
+
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.stride, normal.byteOffset, normal.count);
|
|
451
453
|
}
|
|
452
454
|
if (restoreInfo.tangent) {
|
|
453
|
-
var
|
|
454
|
-
|
|
455
|
+
var tangent = restoreInfo.tangent;
|
|
456
|
+
var tangentData = _this._getBufferData(buffers, tangent.buffer);
|
|
457
|
+
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.stride, tangent.byteOffset, tangent.count);
|
|
455
458
|
}
|
|
456
459
|
}
|
|
457
460
|
mesh.uploadData(true);
|
|
@@ -535,6 +538,14 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
|
|
|
535
538
|
this.normal = normal;
|
|
536
539
|
this.tangent = tangent;
|
|
537
540
|
};
|
|
541
|
+
/**
|
|
542
|
+
* @internal
|
|
543
|
+
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, stride, byteOffset, count) {
|
|
544
|
+
this.buffer = buffer;
|
|
545
|
+
this.stride = stride;
|
|
546
|
+
this.byteOffset = byteOffset;
|
|
547
|
+
this.count = count;
|
|
548
|
+
};
|
|
538
549
|
|
|
539
550
|
/**
|
|
540
551
|
* Module for glTF 2.0 Interface
|
|
@@ -837,8 +848,10 @@ var TextureWrapMode;
|
|
|
837
848
|
return context.getBuffers().then(function(buffers) {
|
|
838
849
|
var bufferIndex = bufferView.buffer;
|
|
839
850
|
var buffer = buffers[bufferIndex];
|
|
840
|
-
var
|
|
841
|
-
var
|
|
851
|
+
var _bufferView_byteOffset;
|
|
852
|
+
var bufferByteOffset = (_bufferView_byteOffset = bufferView.byteOffset) != null ? _bufferView_byteOffset : 0;
|
|
853
|
+
var _accessor_byteOffset;
|
|
854
|
+
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
842
855
|
var TypedArray = GLTFUtils.getComponentType(componentType);
|
|
843
856
|
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
844
857
|
var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
|
|
@@ -872,6 +885,17 @@ var TextureWrapMode;
|
|
|
872
885
|
return bufferInfo;
|
|
873
886
|
});
|
|
874
887
|
};
|
|
888
|
+
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(data, byteStride, accessorByteOffset, count) {
|
|
889
|
+
var bytesPerElement = data.BYTES_PER_ELEMENT;
|
|
890
|
+
var offset = accessorByteOffset % byteStride / bytesPerElement;
|
|
891
|
+
var stride = byteStride / bytesPerElement;
|
|
892
|
+
var vector3s = new Array(count);
|
|
893
|
+
for(var i = 0; i < count; i++){
|
|
894
|
+
var index = offset + i * stride;
|
|
895
|
+
vector3s[i] = new engineMath.Vector3(data[index], data[index + 1], data[index + 2]);
|
|
896
|
+
}
|
|
897
|
+
return vector3s;
|
|
898
|
+
};
|
|
875
899
|
/**
|
|
876
900
|
* @deprecated
|
|
877
901
|
* Get accessor data.
|
|
@@ -1975,7 +1999,7 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1975
1999
|
}
|
|
1976
2000
|
// BlendShapes
|
|
1977
2001
|
if (targets) {
|
|
1978
|
-
promises.push(GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh, targets, getBlendShapeData));
|
|
2002
|
+
promises.push(GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh, accessors, targets, getBlendShapeData));
|
|
1979
2003
|
}
|
|
1980
2004
|
return Promise.all(promises).then(function() {
|
|
1981
2005
|
mesh.uploadData(!keepMeshData);
|
|
@@ -1991,7 +2015,7 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1991
2015
|
};
|
|
1992
2016
|
/**
|
|
1993
2017
|
* @internal
|
|
1994
|
-
*/ GLTFMeshParser._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh, glTFTargets, getBlendShapeData) {
|
|
2018
|
+
*/ GLTFMeshParser._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh, accessors, glTFTargets, getBlendShapeData) {
|
|
1995
2019
|
var _loop = function(i, n) {
|
|
1996
2020
|
var name = blendShapeNames ? blendShapeNames[i] : "blendShape" + i;
|
|
1997
2021
|
var promise = Promise.all([
|
|
@@ -1999,16 +2023,36 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1999
2023
|
getBlendShapeData("NORMAL", i),
|
|
2000
2024
|
getBlendShapeData("TANGENT", i)
|
|
2001
2025
|
]).then(function(infos) {
|
|
2002
|
-
var
|
|
2003
|
-
var
|
|
2004
|
-
var
|
|
2005
|
-
var
|
|
2006
|
-
var
|
|
2007
|
-
var
|
|
2026
|
+
var posBufferInfo = infos[0];
|
|
2027
|
+
var norBufferInfo = infos[1];
|
|
2028
|
+
var tanBufferInfo = infos[2];
|
|
2029
|
+
var target = glTFTargets[i];
|
|
2030
|
+
var posAccessor;
|
|
2031
|
+
var norAccessor;
|
|
2032
|
+
var tanAccessor;
|
|
2033
|
+
var positions = null;
|
|
2034
|
+
if (posBufferInfo) {
|
|
2035
|
+
posAccessor = accessors[target["POSITION"]];
|
|
2036
|
+
var _posAccessor_byteOffset;
|
|
2037
|
+
positions = GLTFUtils.bufferToVector3Array(posBufferInfo.data, posBufferInfo.stride, (_posAccessor_byteOffset = posAccessor.byteOffset) != null ? _posAccessor_byteOffset : 0, posAccessor.count);
|
|
2038
|
+
}
|
|
2039
|
+
var normals = null;
|
|
2040
|
+
if (norBufferInfo) {
|
|
2041
|
+
norAccessor = accessors[target["NORMAL"]];
|
|
2042
|
+
var _norAccessor_byteOffset;
|
|
2043
|
+
normals = GLTFUtils.bufferToVector3Array(norBufferInfo.data, norBufferInfo.stride, (_norAccessor_byteOffset = norAccessor.byteOffset) != null ? _norAccessor_byteOffset : 0, norAccessor.count);
|
|
2044
|
+
}
|
|
2045
|
+
var tangents = null;
|
|
2046
|
+
if (tanBufferInfo) {
|
|
2047
|
+
tanAccessor = accessors[target["NORMAL"]];
|
|
2048
|
+
var _tanAccessor_byteOffset;
|
|
2049
|
+
tangents = GLTFUtils.bufferToVector3Array(tanBufferInfo.data, tanBufferInfo.stride, (_tanAccessor_byteOffset = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset : 0, tanAccessor.count);
|
|
2050
|
+
}
|
|
2008
2051
|
var blendShape = new engineCore.BlendShape(name);
|
|
2009
|
-
blendShape.addFrame(1.0,
|
|
2052
|
+
blendShape.addFrame(1.0, positions, normals, tangents);
|
|
2010
2053
|
mesh.addBlendShape(blendShape);
|
|
2011
|
-
|
|
2054
|
+
var _posAccessor_byteOffset1, _norAccessor_byteOffset1, _tanAccessor_byteOffset1;
|
|
2055
|
+
meshRestoreInfo.blendShapes.push(new BlendShapeRestoreInfo(blendShape, new BlendShapeDataRestoreInfo(posBufferInfo.restoreInfo, posBufferInfo.stride, (_posAccessor_byteOffset1 = posAccessor.byteOffset) != null ? _posAccessor_byteOffset1 : 0, posAccessor.count), norBufferInfo ? new BlendShapeDataRestoreInfo(norBufferInfo.restoreInfo, norBufferInfo.stride, (_norAccessor_byteOffset1 = norAccessor.byteOffset) != null ? _norAccessor_byteOffset1 : 0, norAccessor.count) : null, tanBufferInfo ? new BlendShapeDataRestoreInfo(tanBufferInfo.restoreInfo, tanBufferInfo.stride, (_tanAccessor_byteOffset1 = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset1 : 0, tanAccessor.count) : null));
|
|
2012
2056
|
});
|
|
2013
2057
|
promises.push(promise);
|
|
2014
2058
|
};
|
|
@@ -2338,13 +2382,13 @@ var GLTFTextureParser = /*#__PURE__*/ function(GLTFParser) {
|
|
|
2338
2382
|
};
|
|
2339
2383
|
_proto._parseSampler = function _parseSampler(texture, samplerInfo) {
|
|
2340
2384
|
var filterMode = samplerInfo.filterMode, wrapModeU = samplerInfo.wrapModeU, wrapModeV = samplerInfo.wrapModeV;
|
|
2341
|
-
if (filterMode) {
|
|
2385
|
+
if (filterMode !== undefined) {
|
|
2342
2386
|
texture.filterMode = filterMode;
|
|
2343
2387
|
}
|
|
2344
|
-
if (wrapModeU) {
|
|
2388
|
+
if (wrapModeU !== undefined) {
|
|
2345
2389
|
texture.wrapModeU = wrapModeU;
|
|
2346
2390
|
}
|
|
2347
|
-
if (wrapModeV) {
|
|
2391
|
+
if (wrapModeV !== undefined) {
|
|
2348
2392
|
texture.wrapModeV = wrapModeV;
|
|
2349
2393
|
}
|
|
2350
2394
|
};
|
|
@@ -2482,7 +2526,7 @@ var GLTFLoader = /*#__PURE__*/ function(Loader) {
|
|
|
2482
2526
|
resourceManager.addContentRestorer(restorer);
|
|
2483
2527
|
masterPromiseInfo.resolve(glTFResource);
|
|
2484
2528
|
}).catch(function(e) {
|
|
2485
|
-
var msg = "Error loading glTF model from " + url + "
|
|
2529
|
+
var msg = "Error loading glTF model from " + url + " : " + e;
|
|
2486
2530
|
engineCore.Logger.error(msg);
|
|
2487
2531
|
masterPromiseInfo.reject(msg);
|
|
2488
2532
|
context.defaultSceneRootPromiseInfo.reject(e);
|
|
@@ -4720,7 +4764,7 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
4720
4764
|
mesh.addSubMesh(0, vertexCount, mode);
|
|
4721
4765
|
}
|
|
4722
4766
|
// BlendShapes
|
|
4723
|
-
targets && GLTFMeshParser._createBlendShape(mesh, null, gltfMesh, targets, getBlendShapeData);
|
|
4767
|
+
targets && GLTFMeshParser._createBlendShape(mesh, null, gltfMesh, accessors, targets, getBlendShapeData);
|
|
4724
4768
|
mesh.uploadData(!keepMeshData);
|
|
4725
4769
|
return Promise.resolve(mesh);
|
|
4726
4770
|
};
|