@galacean/engine-loader 0.9.0 → 0.9.2
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 +63 -23
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +63 -23
- package/dist/module.js +63 -23
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
package/dist/miniprogram.js
CHANGED
|
@@ -1808,21 +1808,31 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
|
|
|
1808
1808
|
var vertexCount;
|
|
1809
1809
|
var bufferBindIndex = 0;
|
|
1810
1810
|
var positions;
|
|
1811
|
-
|
|
1811
|
+
var boneIndices;
|
|
1812
|
+
var boneWeights;
|
|
1813
|
+
if (keepMeshData) {
|
|
1814
|
+
positions = new Array(vertexCount);
|
|
1815
|
+
boneIndices = new Array(vertexCount);
|
|
1816
|
+
boneWeights = new Array(vertexCount);
|
|
1817
|
+
}
|
|
1812
1818
|
for(var attribute in attributes){
|
|
1813
1819
|
var accessor = accessors[attributes[attribute]];
|
|
1814
1820
|
var accessorBuffer = GLTFUtil.getAccessorBuffer(context, gltf, accessor);
|
|
1815
|
-
var
|
|
1816
|
-
var
|
|
1821
|
+
var dataElementSize = GLTFUtil.getAccessorTypeSize(accessor.type);
|
|
1822
|
+
var accessorCount = accessor.count;
|
|
1817
1823
|
var vertices = accessorBuffer.data;
|
|
1818
1824
|
var vertexElement = void 0;
|
|
1819
1825
|
var meshId = mesh.instanceId;
|
|
1820
1826
|
var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
|
|
1821
|
-
var
|
|
1827
|
+
var elementNormalized = accessor.normalized;
|
|
1828
|
+
var elementFormat = GLTFUtil.getElementFormat(accessor.componentType, dataElementSize, elementNormalized);
|
|
1829
|
+
var scaleFactor = void 0;
|
|
1830
|
+
elementNormalized && (scaleFactor = GLTFUtil.getNormalizedComponentScale(accessor.componentType));
|
|
1831
|
+
var elementOffset = void 0;
|
|
1822
1832
|
if (accessorBuffer.interleaved) {
|
|
1823
1833
|
var byteOffset = accessor.byteOffset || 0;
|
|
1824
1834
|
var stride = accessorBuffer.stride;
|
|
1825
|
-
|
|
1835
|
+
elementOffset = byteOffset % stride;
|
|
1826
1836
|
if (vertexBindingInfos[meshId] === undefined) {
|
|
1827
1837
|
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1828
1838
|
var vertexBuffer = accessorBuffer.vertexBuffer;
|
|
@@ -1837,7 +1847,8 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
|
|
|
1837
1847
|
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
|
|
1838
1848
|
}
|
|
1839
1849
|
} else {
|
|
1840
|
-
|
|
1850
|
+
elementOffset = 0;
|
|
1851
|
+
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1841
1852
|
var vertexBuffer1 = new miniprogram.Buffer(engine, miniprogram.BufferBindFlag.VertexBuffer, vertices.byteLength, miniprogram.BufferUsage.Static);
|
|
1842
1853
|
vertexBuffer1.setData(vertices);
|
|
1843
1854
|
mesh.setVertexBufferBinding(vertexBuffer1, accessorBuffer.stride, bufferBindIndex);
|
|
@@ -1845,35 +1856,60 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
|
|
|
1845
1856
|
}
|
|
1846
1857
|
vertexElements.push(vertexElement);
|
|
1847
1858
|
if (attribute === "POSITION") {
|
|
1848
|
-
vertexCount =
|
|
1859
|
+
vertexCount = accessorCount;
|
|
1849
1860
|
var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
|
|
1850
1861
|
if (accessor.min && accessor.max) {
|
|
1851
1862
|
min.copyFromArray(accessor.min);
|
|
1852
1863
|
max.copyFromArray(accessor.max);
|
|
1853
1864
|
if (keepMeshData) {
|
|
1854
|
-
var
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1865
|
+
var baseOffset = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1866
|
+
var stride1 = vertices.length / accessorCount;
|
|
1867
|
+
for(var j = 0; j < accessorCount; j++){
|
|
1868
|
+
var offset = baseOffset + j * stride1;
|
|
1869
|
+
var position = new miniprogram$1.Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
|
|
1870
|
+
elementNormalized && position.scale(scaleFactor);
|
|
1871
|
+
positions[j] = position;
|
|
1858
1872
|
}
|
|
1859
1873
|
}
|
|
1860
1874
|
} else {
|
|
1861
|
-
var
|
|
1875
|
+
var position1 = MeshParser._tempVector3;
|
|
1862
1876
|
min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
1863
1877
|
max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
1864
|
-
var
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
miniprogram$1.Vector3.
|
|
1870
|
-
|
|
1878
|
+
var baseOffset1 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1879
|
+
var stride2 = vertices.length / accessorCount;
|
|
1880
|
+
for(var j1 = 0; j1 < accessorCount; j1++){
|
|
1881
|
+
var offset1 = baseOffset1 + j1 * stride2;
|
|
1882
|
+
position1.copyFromArray(vertices, offset1);
|
|
1883
|
+
miniprogram$1.Vector3.min(min, position1, min);
|
|
1884
|
+
miniprogram$1.Vector3.max(max, position1, max);
|
|
1885
|
+
if (keepMeshData) {
|
|
1886
|
+
var clonePosition = position1.clone();
|
|
1887
|
+
elementNormalized && clonePosition.scale(scaleFactor);
|
|
1888
|
+
positions[j1] = clonePosition;
|
|
1889
|
+
}
|
|
1871
1890
|
}
|
|
1872
1891
|
}
|
|
1873
|
-
if (
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1892
|
+
if (elementNormalized) {
|
|
1893
|
+
min.scale(scaleFactor);
|
|
1894
|
+
max.scale(scaleFactor);
|
|
1895
|
+
}
|
|
1896
|
+
} else if (attribute === "JOINTS_0" && keepMeshData) {
|
|
1897
|
+
var baseOffset2 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1898
|
+
var stride3 = vertices.length / accessorCount;
|
|
1899
|
+
for(var j2 = 0; j2 < accessorCount; j2++){
|
|
1900
|
+
var offset2 = baseOffset2 + j2 * stride3;
|
|
1901
|
+
var boneIndex = new miniprogram$1.Vector4(vertices[offset2], vertices[offset2 + 1], vertices[offset2 + 2], vertices[offset2 + 3]);
|
|
1902
|
+
elementNormalized && boneIndex.scale(scaleFactor);
|
|
1903
|
+
boneIndices[j2] = boneIndex;
|
|
1904
|
+
}
|
|
1905
|
+
} else if (attribute === "WEIGHTS_0" && keepMeshData) {
|
|
1906
|
+
var baseOffset3 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1907
|
+
var stride4 = vertices.length / accessorCount;
|
|
1908
|
+
for(var j3 = 0; j3 < accessorCount; j3++){
|
|
1909
|
+
var offset3 = baseOffset3 + j3 * stride4;
|
|
1910
|
+
var boneWeight = new miniprogram$1.Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
|
|
1911
|
+
elementNormalized && boneWeight.scale(scaleFactor);
|
|
1912
|
+
boneWeights[j3] = boneWeight;
|
|
1877
1913
|
}
|
|
1878
1914
|
}
|
|
1879
1915
|
}
|
|
@@ -1892,6 +1928,10 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
|
|
|
1892
1928
|
mesh.uploadData(!keepMeshData);
|
|
1893
1929
|
//@ts-ignore
|
|
1894
1930
|
mesh._positions = positions;
|
|
1931
|
+
//@ts-ignore
|
|
1932
|
+
mesh._boneIndices = boneIndices;
|
|
1933
|
+
//@ts-ignore
|
|
1934
|
+
mesh._boneWeights = boneWeights;
|
|
1895
1935
|
return Promise.resolve(mesh);
|
|
1896
1936
|
};
|
|
1897
1937
|
_proto._createBlendShape = function _createBlendShape(mesh, glTFMesh, glTFTargets, getBlendShapeData) {
|
package/dist/module.js
CHANGED
|
@@ -1803,21 +1803,31 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
|
|
|
1803
1803
|
var vertexCount;
|
|
1804
1804
|
var bufferBindIndex = 0;
|
|
1805
1805
|
var positions;
|
|
1806
|
-
|
|
1806
|
+
var boneIndices;
|
|
1807
|
+
var boneWeights;
|
|
1808
|
+
if (keepMeshData) {
|
|
1809
|
+
positions = new Array(vertexCount);
|
|
1810
|
+
boneIndices = new Array(vertexCount);
|
|
1811
|
+
boneWeights = new Array(vertexCount);
|
|
1812
|
+
}
|
|
1807
1813
|
for(var attribute in attributes){
|
|
1808
1814
|
var accessor = accessors[attributes[attribute]];
|
|
1809
1815
|
var accessorBuffer = GLTFUtil.getAccessorBuffer(context, gltf, accessor);
|
|
1810
|
-
var
|
|
1811
|
-
var
|
|
1816
|
+
var dataElementSize = GLTFUtil.getAccessorTypeSize(accessor.type);
|
|
1817
|
+
var accessorCount = accessor.count;
|
|
1812
1818
|
var vertices = accessorBuffer.data;
|
|
1813
1819
|
var vertexElement = void 0;
|
|
1814
1820
|
var meshId = mesh.instanceId;
|
|
1815
1821
|
var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
|
|
1816
|
-
var
|
|
1822
|
+
var elementNormalized = accessor.normalized;
|
|
1823
|
+
var elementFormat = GLTFUtil.getElementFormat(accessor.componentType, dataElementSize, elementNormalized);
|
|
1824
|
+
var scaleFactor = void 0;
|
|
1825
|
+
elementNormalized && (scaleFactor = GLTFUtil.getNormalizedComponentScale(accessor.componentType));
|
|
1826
|
+
var elementOffset = void 0;
|
|
1817
1827
|
if (accessorBuffer.interleaved) {
|
|
1818
1828
|
var byteOffset = accessor.byteOffset || 0;
|
|
1819
1829
|
var stride = accessorBuffer.stride;
|
|
1820
|
-
|
|
1830
|
+
elementOffset = byteOffset % stride;
|
|
1821
1831
|
if (vertexBindingInfos[meshId] === undefined) {
|
|
1822
1832
|
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1823
1833
|
var vertexBuffer = accessorBuffer.vertexBuffer;
|
|
@@ -1832,7 +1842,8 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
|
|
|
1832
1842
|
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
|
|
1833
1843
|
}
|
|
1834
1844
|
} else {
|
|
1835
|
-
|
|
1845
|
+
elementOffset = 0;
|
|
1846
|
+
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1836
1847
|
var vertexBuffer1 = new Buffer(engine, BufferBindFlag.VertexBuffer, vertices.byteLength, BufferUsage.Static);
|
|
1837
1848
|
vertexBuffer1.setData(vertices);
|
|
1838
1849
|
mesh.setVertexBufferBinding(vertexBuffer1, accessorBuffer.stride, bufferBindIndex);
|
|
@@ -1840,35 +1851,60 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
|
|
|
1840
1851
|
}
|
|
1841
1852
|
vertexElements.push(vertexElement);
|
|
1842
1853
|
if (attribute === "POSITION") {
|
|
1843
|
-
vertexCount =
|
|
1854
|
+
vertexCount = accessorCount;
|
|
1844
1855
|
var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
|
|
1845
1856
|
if (accessor.min && accessor.max) {
|
|
1846
1857
|
min.copyFromArray(accessor.min);
|
|
1847
1858
|
max.copyFromArray(accessor.max);
|
|
1848
1859
|
if (keepMeshData) {
|
|
1849
|
-
var
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1860
|
+
var baseOffset = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1861
|
+
var stride1 = vertices.length / accessorCount;
|
|
1862
|
+
for(var j = 0; j < accessorCount; j++){
|
|
1863
|
+
var offset = baseOffset + j * stride1;
|
|
1864
|
+
var position = new Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
|
|
1865
|
+
elementNormalized && position.scale(scaleFactor);
|
|
1866
|
+
positions[j] = position;
|
|
1853
1867
|
}
|
|
1854
1868
|
}
|
|
1855
1869
|
} else {
|
|
1856
|
-
var
|
|
1870
|
+
var position1 = MeshParser._tempVector3;
|
|
1857
1871
|
min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
1858
1872
|
max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
1859
|
-
var
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
Vector3.
|
|
1865
|
-
|
|
1873
|
+
var baseOffset1 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1874
|
+
var stride2 = vertices.length / accessorCount;
|
|
1875
|
+
for(var j1 = 0; j1 < accessorCount; j1++){
|
|
1876
|
+
var offset1 = baseOffset1 + j1 * stride2;
|
|
1877
|
+
position1.copyFromArray(vertices, offset1);
|
|
1878
|
+
Vector3.min(min, position1, min);
|
|
1879
|
+
Vector3.max(max, position1, max);
|
|
1880
|
+
if (keepMeshData) {
|
|
1881
|
+
var clonePosition = position1.clone();
|
|
1882
|
+
elementNormalized && clonePosition.scale(scaleFactor);
|
|
1883
|
+
positions[j1] = clonePosition;
|
|
1884
|
+
}
|
|
1866
1885
|
}
|
|
1867
1886
|
}
|
|
1868
|
-
if (
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1887
|
+
if (elementNormalized) {
|
|
1888
|
+
min.scale(scaleFactor);
|
|
1889
|
+
max.scale(scaleFactor);
|
|
1890
|
+
}
|
|
1891
|
+
} else if (attribute === "JOINTS_0" && keepMeshData) {
|
|
1892
|
+
var baseOffset2 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1893
|
+
var stride3 = vertices.length / accessorCount;
|
|
1894
|
+
for(var j2 = 0; j2 < accessorCount; j2++){
|
|
1895
|
+
var offset2 = baseOffset2 + j2 * stride3;
|
|
1896
|
+
var boneIndex = new Vector4(vertices[offset2], vertices[offset2 + 1], vertices[offset2 + 2], vertices[offset2 + 3]);
|
|
1897
|
+
elementNormalized && boneIndex.scale(scaleFactor);
|
|
1898
|
+
boneIndices[j2] = boneIndex;
|
|
1899
|
+
}
|
|
1900
|
+
} else if (attribute === "WEIGHTS_0" && keepMeshData) {
|
|
1901
|
+
var baseOffset3 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1902
|
+
var stride4 = vertices.length / accessorCount;
|
|
1903
|
+
for(var j3 = 0; j3 < accessorCount; j3++){
|
|
1904
|
+
var offset3 = baseOffset3 + j3 * stride4;
|
|
1905
|
+
var boneWeight = new Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
|
|
1906
|
+
elementNormalized && boneWeight.scale(scaleFactor);
|
|
1907
|
+
boneWeights[j3] = boneWeight;
|
|
1872
1908
|
}
|
|
1873
1909
|
}
|
|
1874
1910
|
}
|
|
@@ -1887,6 +1923,10 @@ var MeshParser = /*#__PURE__*/ function(Parser1) {
|
|
|
1887
1923
|
mesh.uploadData(!keepMeshData);
|
|
1888
1924
|
//@ts-ignore
|
|
1889
1925
|
mesh._positions = positions;
|
|
1926
|
+
//@ts-ignore
|
|
1927
|
+
mesh._boneIndices = boneIndices;
|
|
1928
|
+
//@ts-ignore
|
|
1929
|
+
mesh._boneWeights = boneWeights;
|
|
1890
1930
|
return Promise.resolve(mesh);
|
|
1891
1931
|
};
|
|
1892
1932
|
_proto._createBlendShape = function _createBlendShape(mesh, glTFMesh, glTFTargets, getBlendShapeData) {
|