@galacean/engine-loader 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/main.js +60 -27
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +60 -27
- package/dist/module.js +60 -27
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
- package/types/gltf/GLTFUtil.d.ts +1 -1
package/dist/miniprogram.js
CHANGED
|
@@ -503,12 +503,6 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
|
|
|
503
503
|
this.vertexBuffers = [];
|
|
504
504
|
this.blendShapes = [];
|
|
505
505
|
};
|
|
506
|
-
/**
|
|
507
|
-
* @internal
|
|
508
|
-
*/ var BufferRestoreInfo = function BufferRestoreInfo(buffer, data) {
|
|
509
|
-
this.buffer = buffer;
|
|
510
|
-
this.data = data;
|
|
511
|
-
};
|
|
512
506
|
/**
|
|
513
507
|
* @internal
|
|
514
508
|
*/ var BufferDataRestoreInfo = function BufferDataRestoreInfo(main, typeSize, sparseCount, sparseIndices, sparseValues) {
|
|
@@ -1824,21 +1818,31 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1824
1818
|
var vertexCount;
|
|
1825
1819
|
var bufferBindIndex = 0;
|
|
1826
1820
|
var positions;
|
|
1827
|
-
|
|
1821
|
+
var boneIndices;
|
|
1822
|
+
var boneWeights;
|
|
1823
|
+
if (keepMeshData) {
|
|
1824
|
+
positions = new Array(vertexCount);
|
|
1825
|
+
boneIndices = new Array(vertexCount);
|
|
1826
|
+
boneWeights = new Array(vertexCount);
|
|
1827
|
+
}
|
|
1828
1828
|
for(var attribute in attributes){
|
|
1829
1829
|
var accessor = accessors[attributes[attribute]];
|
|
1830
1830
|
var accessorBuffer = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor);
|
|
1831
1831
|
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1832
|
-
var
|
|
1832
|
+
var accessorCount = accessor.count;
|
|
1833
1833
|
var vertices = accessorBuffer.data;
|
|
1834
1834
|
var vertexElement = void 0;
|
|
1835
1835
|
var meshId = mesh.instanceId;
|
|
1836
1836
|
var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
|
|
1837
|
-
var
|
|
1837
|
+
var elementNormalized = accessor.normalized;
|
|
1838
|
+
var elementFormat = GLTFUtils.getElementFormat(accessor.componentType, dataElementSize, elementNormalized);
|
|
1839
|
+
var scaleFactor = void 0;
|
|
1840
|
+
elementNormalized && (scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType));
|
|
1841
|
+
var elementOffset = void 0;
|
|
1838
1842
|
if (accessorBuffer.interleaved) {
|
|
1839
1843
|
var byteOffset = accessor.byteOffset || 0;
|
|
1840
1844
|
var stride = accessorBuffer.stride;
|
|
1841
|
-
|
|
1845
|
+
elementOffset = byteOffset % stride;
|
|
1842
1846
|
if (vertexBindingInfos[meshId] === undefined) {
|
|
1843
1847
|
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1844
1848
|
var vertexBuffer = accessorBuffer.vertexBuffer;
|
|
@@ -1846,7 +1850,6 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1846
1850
|
vertexBuffer = new miniprogram.Buffer(engine, miniprogram.BufferBindFlag.VertexBuffer, vertices.byteLength, miniprogram.BufferUsage.Static);
|
|
1847
1851
|
vertexBuffer.setData(vertices);
|
|
1848
1852
|
accessorBuffer.vertexBuffer = vertexBuffer;
|
|
1849
|
-
meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer, accessorBuffer.restoreInfo));
|
|
1850
1853
|
}
|
|
1851
1854
|
mesh.setVertexBufferBinding(vertexBuffer, stride, bufferBindIndex);
|
|
1852
1855
|
vertexBindingInfos[meshId] = bufferBindIndex++;
|
|
@@ -1854,44 +1857,70 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1854
1857
|
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
|
|
1855
1858
|
}
|
|
1856
1859
|
} else {
|
|
1857
|
-
|
|
1860
|
+
elementOffset = 0;
|
|
1861
|
+
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1858
1862
|
var vertexBuffer1 = new miniprogram.Buffer(engine, miniprogram.BufferBindFlag.VertexBuffer, vertices.byteLength, miniprogram.BufferUsage.Static);
|
|
1859
1863
|
vertexBuffer1.setData(vertices);
|
|
1860
|
-
meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer1, accessorBuffer.restoreInfo));
|
|
1861
1864
|
mesh.setVertexBufferBinding(vertexBuffer1, accessorBuffer.stride, bufferBindIndex);
|
|
1862
1865
|
vertexBindingInfos[meshId] = bufferBindIndex++;
|
|
1863
1866
|
}
|
|
1864
1867
|
vertexElements.push(vertexElement);
|
|
1865
1868
|
if (attribute === "POSITION") {
|
|
1866
|
-
vertexCount =
|
|
1869
|
+
vertexCount = accessorCount;
|
|
1867
1870
|
var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
|
|
1868
1871
|
if (accessor.min && accessor.max) {
|
|
1869
1872
|
min.copyFromArray(accessor.min);
|
|
1870
1873
|
max.copyFromArray(accessor.max);
|
|
1871
1874
|
if (keepMeshData) {
|
|
1872
|
-
var
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1875
|
+
var baseOffset = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1876
|
+
var stride1 = vertices.length / accessorCount;
|
|
1877
|
+
for(var j = 0; j < accessorCount; j++){
|
|
1878
|
+
var offset = baseOffset + j * stride1;
|
|
1879
|
+
var position = new miniprogram$1.Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
|
|
1880
|
+
elementNormalized && position.scale(scaleFactor);
|
|
1881
|
+
positions[j] = position;
|
|
1876
1882
|
}
|
|
1877
1883
|
}
|
|
1878
1884
|
} else {
|
|
1879
|
-
var
|
|
1885
|
+
var position1 = GLTFMeshParser._tempVector3;
|
|
1880
1886
|
min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
1881
1887
|
max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
1882
|
-
var
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
miniprogram$1.Vector3.
|
|
1888
|
+
var baseOffset1 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1889
|
+
var stride2 = vertices.length / accessorCount;
|
|
1890
|
+
for(var j1 = 0; j1 < accessorCount; j1++){
|
|
1891
|
+
var offset1 = baseOffset1 + j1 * stride2;
|
|
1892
|
+
position1.copyFromArray(vertices, offset1);
|
|
1893
|
+
miniprogram$1.Vector3.min(min, position1, min);
|
|
1894
|
+
miniprogram$1.Vector3.max(max, position1, max);
|
|
1895
|
+
if (keepMeshData) {
|
|
1896
|
+
var clonePosition = position1.clone();
|
|
1897
|
+
elementNormalized && clonePosition.scale(scaleFactor);
|
|
1898
|
+
positions[j1] = clonePosition;
|
|
1899
|
+
}
|
|
1888
1900
|
}
|
|
1889
1901
|
}
|
|
1890
|
-
if (
|
|
1891
|
-
var scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType);
|
|
1902
|
+
if (elementNormalized) {
|
|
1892
1903
|
min.scale(scaleFactor);
|
|
1893
1904
|
max.scale(scaleFactor);
|
|
1894
1905
|
}
|
|
1906
|
+
} else if (attribute === "JOINTS_0" && keepMeshData) {
|
|
1907
|
+
var baseOffset2 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1908
|
+
var stride3 = vertices.length / accessorCount;
|
|
1909
|
+
for(var j2 = 0; j2 < accessorCount; j2++){
|
|
1910
|
+
var offset2 = baseOffset2 + j2 * stride3;
|
|
1911
|
+
var boneIndex = new miniprogram$1.Vector4(vertices[offset2], vertices[offset2 + 1], vertices[offset2 + 2], vertices[offset2 + 3]);
|
|
1912
|
+
elementNormalized && boneIndex.scale(scaleFactor);
|
|
1913
|
+
boneIndices[j2] = boneIndex;
|
|
1914
|
+
}
|
|
1915
|
+
} else if (attribute === "WEIGHTS_0" && keepMeshData) {
|
|
1916
|
+
var baseOffset3 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1917
|
+
var stride4 = vertices.length / accessorCount;
|
|
1918
|
+
for(var j3 = 0; j3 < accessorCount; j3++){
|
|
1919
|
+
var offset3 = baseOffset3 + j3 * stride4;
|
|
1920
|
+
var boneWeight = new miniprogram$1.Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
|
|
1921
|
+
elementNormalized && boneWeight.scale(scaleFactor);
|
|
1922
|
+
boneWeights[j3] = boneWeight;
|
|
1923
|
+
}
|
|
1895
1924
|
}
|
|
1896
1925
|
}
|
|
1897
1926
|
mesh.setVertexElements(vertexElements);
|
|
@@ -1910,6 +1939,10 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1910
1939
|
mesh.uploadData(!keepMeshData);
|
|
1911
1940
|
//@ts-ignore
|
|
1912
1941
|
mesh._positions = positions;
|
|
1942
|
+
//@ts-ignore
|
|
1943
|
+
mesh._boneIndices = boneIndices;
|
|
1944
|
+
//@ts-ignore
|
|
1945
|
+
mesh._boneWeights = boneWeights;
|
|
1913
1946
|
return Promise.resolve(mesh);
|
|
1914
1947
|
};
|
|
1915
1948
|
/**
|
package/dist/module.js
CHANGED
|
@@ -498,12 +498,6 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
|
|
|
498
498
|
this.vertexBuffers = [];
|
|
499
499
|
this.blendShapes = [];
|
|
500
500
|
};
|
|
501
|
-
/**
|
|
502
|
-
* @internal
|
|
503
|
-
*/ var BufferRestoreInfo = function BufferRestoreInfo(buffer, data) {
|
|
504
|
-
this.buffer = buffer;
|
|
505
|
-
this.data = data;
|
|
506
|
-
};
|
|
507
501
|
/**
|
|
508
502
|
* @internal
|
|
509
503
|
*/ var BufferDataRestoreInfo = function BufferDataRestoreInfo(main, typeSize, sparseCount, sparseIndices, sparseValues) {
|
|
@@ -1819,21 +1813,31 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1819
1813
|
var vertexCount;
|
|
1820
1814
|
var bufferBindIndex = 0;
|
|
1821
1815
|
var positions;
|
|
1822
|
-
|
|
1816
|
+
var boneIndices;
|
|
1817
|
+
var boneWeights;
|
|
1818
|
+
if (keepMeshData) {
|
|
1819
|
+
positions = new Array(vertexCount);
|
|
1820
|
+
boneIndices = new Array(vertexCount);
|
|
1821
|
+
boneWeights = new Array(vertexCount);
|
|
1822
|
+
}
|
|
1823
1823
|
for(var attribute in attributes){
|
|
1824
1824
|
var accessor = accessors[attributes[attribute]];
|
|
1825
1825
|
var accessorBuffer = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor);
|
|
1826
1826
|
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1827
|
-
var
|
|
1827
|
+
var accessorCount = accessor.count;
|
|
1828
1828
|
var vertices = accessorBuffer.data;
|
|
1829
1829
|
var vertexElement = void 0;
|
|
1830
1830
|
var meshId = mesh.instanceId;
|
|
1831
1831
|
var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
|
|
1832
|
-
var
|
|
1832
|
+
var elementNormalized = accessor.normalized;
|
|
1833
|
+
var elementFormat = GLTFUtils.getElementFormat(accessor.componentType, dataElementSize, elementNormalized);
|
|
1834
|
+
var scaleFactor = void 0;
|
|
1835
|
+
elementNormalized && (scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType));
|
|
1836
|
+
var elementOffset = void 0;
|
|
1833
1837
|
if (accessorBuffer.interleaved) {
|
|
1834
1838
|
var byteOffset = accessor.byteOffset || 0;
|
|
1835
1839
|
var stride = accessorBuffer.stride;
|
|
1836
|
-
|
|
1840
|
+
elementOffset = byteOffset % stride;
|
|
1837
1841
|
if (vertexBindingInfos[meshId] === undefined) {
|
|
1838
1842
|
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1839
1843
|
var vertexBuffer = accessorBuffer.vertexBuffer;
|
|
@@ -1841,7 +1845,6 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1841
1845
|
vertexBuffer = new Buffer(engine, BufferBindFlag.VertexBuffer, vertices.byteLength, BufferUsage.Static);
|
|
1842
1846
|
vertexBuffer.setData(vertices);
|
|
1843
1847
|
accessorBuffer.vertexBuffer = vertexBuffer;
|
|
1844
|
-
meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer, accessorBuffer.restoreInfo));
|
|
1845
1848
|
}
|
|
1846
1849
|
mesh.setVertexBufferBinding(vertexBuffer, stride, bufferBindIndex);
|
|
1847
1850
|
vertexBindingInfos[meshId] = bufferBindIndex++;
|
|
@@ -1849,44 +1852,70 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1849
1852
|
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
|
|
1850
1853
|
}
|
|
1851
1854
|
} else {
|
|
1852
|
-
|
|
1855
|
+
elementOffset = 0;
|
|
1856
|
+
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1853
1857
|
var vertexBuffer1 = new Buffer(engine, BufferBindFlag.VertexBuffer, vertices.byteLength, BufferUsage.Static);
|
|
1854
1858
|
vertexBuffer1.setData(vertices);
|
|
1855
|
-
meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer1, accessorBuffer.restoreInfo));
|
|
1856
1859
|
mesh.setVertexBufferBinding(vertexBuffer1, accessorBuffer.stride, bufferBindIndex);
|
|
1857
1860
|
vertexBindingInfos[meshId] = bufferBindIndex++;
|
|
1858
1861
|
}
|
|
1859
1862
|
vertexElements.push(vertexElement);
|
|
1860
1863
|
if (attribute === "POSITION") {
|
|
1861
|
-
vertexCount =
|
|
1864
|
+
vertexCount = accessorCount;
|
|
1862
1865
|
var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
|
|
1863
1866
|
if (accessor.min && accessor.max) {
|
|
1864
1867
|
min.copyFromArray(accessor.min);
|
|
1865
1868
|
max.copyFromArray(accessor.max);
|
|
1866
1869
|
if (keepMeshData) {
|
|
1867
|
-
var
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1870
|
+
var baseOffset = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1871
|
+
var stride1 = vertices.length / accessorCount;
|
|
1872
|
+
for(var j = 0; j < accessorCount; j++){
|
|
1873
|
+
var offset = baseOffset + j * stride1;
|
|
1874
|
+
var position = new Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
|
|
1875
|
+
elementNormalized && position.scale(scaleFactor);
|
|
1876
|
+
positions[j] = position;
|
|
1871
1877
|
}
|
|
1872
1878
|
}
|
|
1873
1879
|
} else {
|
|
1874
|
-
var
|
|
1880
|
+
var position1 = GLTFMeshParser._tempVector3;
|
|
1875
1881
|
min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
1876
1882
|
max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
1877
|
-
var
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
Vector3.
|
|
1883
|
+
var baseOffset1 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1884
|
+
var stride2 = vertices.length / accessorCount;
|
|
1885
|
+
for(var j1 = 0; j1 < accessorCount; j1++){
|
|
1886
|
+
var offset1 = baseOffset1 + j1 * stride2;
|
|
1887
|
+
position1.copyFromArray(vertices, offset1);
|
|
1888
|
+
Vector3.min(min, position1, min);
|
|
1889
|
+
Vector3.max(max, position1, max);
|
|
1890
|
+
if (keepMeshData) {
|
|
1891
|
+
var clonePosition = position1.clone();
|
|
1892
|
+
elementNormalized && clonePosition.scale(scaleFactor);
|
|
1893
|
+
positions[j1] = clonePosition;
|
|
1894
|
+
}
|
|
1883
1895
|
}
|
|
1884
1896
|
}
|
|
1885
|
-
if (
|
|
1886
|
-
var scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType);
|
|
1897
|
+
if (elementNormalized) {
|
|
1887
1898
|
min.scale(scaleFactor);
|
|
1888
1899
|
max.scale(scaleFactor);
|
|
1889
1900
|
}
|
|
1901
|
+
} else if (attribute === "JOINTS_0" && keepMeshData) {
|
|
1902
|
+
var baseOffset2 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1903
|
+
var stride3 = vertices.length / accessorCount;
|
|
1904
|
+
for(var j2 = 0; j2 < accessorCount; j2++){
|
|
1905
|
+
var offset2 = baseOffset2 + j2 * stride3;
|
|
1906
|
+
var boneIndex = new Vector4(vertices[offset2], vertices[offset2 + 1], vertices[offset2 + 2], vertices[offset2 + 3]);
|
|
1907
|
+
elementNormalized && boneIndex.scale(scaleFactor);
|
|
1908
|
+
boneIndices[j2] = boneIndex;
|
|
1909
|
+
}
|
|
1910
|
+
} else if (attribute === "WEIGHTS_0" && keepMeshData) {
|
|
1911
|
+
var baseOffset3 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1912
|
+
var stride4 = vertices.length / accessorCount;
|
|
1913
|
+
for(var j3 = 0; j3 < accessorCount; j3++){
|
|
1914
|
+
var offset3 = baseOffset3 + j3 * stride4;
|
|
1915
|
+
var boneWeight = new Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
|
|
1916
|
+
elementNormalized && boneWeight.scale(scaleFactor);
|
|
1917
|
+
boneWeights[j3] = boneWeight;
|
|
1918
|
+
}
|
|
1890
1919
|
}
|
|
1891
1920
|
}
|
|
1892
1921
|
mesh.setVertexElements(vertexElements);
|
|
@@ -1905,6 +1934,10 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1905
1934
|
mesh.uploadData(!keepMeshData);
|
|
1906
1935
|
//@ts-ignore
|
|
1907
1936
|
mesh._positions = positions;
|
|
1937
|
+
//@ts-ignore
|
|
1938
|
+
mesh._boneIndices = boneIndices;
|
|
1939
|
+
//@ts-ignore
|
|
1940
|
+
mesh._boneWeights = boneWeights;
|
|
1908
1941
|
return Promise.resolve(mesh);
|
|
1909
1942
|
};
|
|
1910
1943
|
/**
|