@galacean/engine-loader 1.0.0-beta.0 → 1.0.0-beta.10
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 +164 -123
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +164 -123
- package/dist/module.js +166 -125
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
- package/types/GLTFContentRestorer.d.ts +1 -4
- package/types/GLTFLoader.d.ts +0 -3
- package/types/Texture2DContentRestorer.d.ts +0 -3
- package/types/TextureCubeContentRestorer.d.ts +0 -3
- package/types/gltf/GLTFParser.d.ts +9 -0
- package/types/gltf/GLTFResource.d.ts +1 -1
- package/types/gltf/GLTFUtil.d.ts +53 -0
- package/types/gltf/GLTFUtils.d.ts +1 -1
- package/types/gltf/Schema.d.ts +814 -0
- package/types/gltf/extensions/ExtensionParser.d.ts +8 -0
- package/types/gltf/extensions/GLTFExtensionSchema.d.ts +1 -1
- package/types/gltf/extensions/KHR_materials_ior.d.ts +1 -0
- package/types/gltf/extensions/Schema.d.ts +142 -0
- package/types/gltf/extensions/index.d.ts +1 -0
- package/types/gltf/parser/AnimationParser.d.ts +7 -0
- package/types/gltf/parser/BufferParser.d.ts +7 -0
- package/types/gltf/parser/EntityParser.d.ts +9 -0
- package/types/gltf/parser/GLTFMeshParser.d.ts +1 -1
- package/types/gltf/parser/GLTFParser.d.ts +1 -1
- package/types/gltf/parser/GLTFParserContext.d.ts +1 -1
- package/types/gltf/parser/MaterialParser.d.ts +8 -0
- package/types/gltf/parser/MeshParser.d.ts +13 -0
- package/types/gltf/parser/Parser.d.ts +21 -0
- package/types/gltf/parser/ParserContext.d.ts +46 -0
- package/types/gltf/parser/SceneParser.d.ts +11 -0
- package/types/gltf/parser/SkinParser.d.ts +6 -0
- package/types/gltf/parser/TextureParser.d.ts +8 -0
- package/types/gltf/parser/Validator.d.ts +5 -0
- package/types/resource-deserialize/index.d.ts +3 -3
- package/types/resource-deserialize/resources/mesh/MeshDecoder.d.ts +1 -1
- package/types/resource-deserialize/resources/parser/PrefabParser.d.ts +5 -0
- package/types/resource-deserialize/resources/parser/ReflectionParser.d.ts +14 -0
- package/types/resource-deserialize/resources/scene/SceneParser.d.ts +1 -1
- package/types/resource-deserialize/resources/scene/SceneParserContext.d.ts +1 -1
- package/types/resource-deserialize/resources/schema/BasicSchema.d.ts +61 -0
- package/types/resource-deserialize/resources/schema/MaterialSchema.d.ts +91 -0
- package/types/resource-deserialize/resources/schema/SceneSchema.d.ts +41 -0
- package/types/resource-deserialize/resources/schema/index.d.ts +3 -0
package/dist/miniprogram.js
CHANGED
|
@@ -398,9 +398,7 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
|
|
|
398
398
|
return _this;
|
|
399
399
|
}
|
|
400
400
|
var _proto = GLTFContentRestorer.prototype;
|
|
401
|
-
|
|
402
|
-
* @override
|
|
403
|
-
*/ _proto.restoreContent = function restoreContent() {
|
|
401
|
+
_proto.restoreContent = function restoreContent() {
|
|
404
402
|
var _this = this;
|
|
405
403
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
406
404
|
Promise.all(_this.bufferRequests.map(function(bufferRequestInfo) {
|
|
@@ -1826,21 +1824,31 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1826
1824
|
var vertexCount;
|
|
1827
1825
|
var bufferBindIndex = 0;
|
|
1828
1826
|
var positions;
|
|
1829
|
-
|
|
1827
|
+
var boneIndices;
|
|
1828
|
+
var boneWeights;
|
|
1829
|
+
if (keepMeshData) {
|
|
1830
|
+
positions = new Array(vertexCount);
|
|
1831
|
+
boneIndices = new Array(vertexCount);
|
|
1832
|
+
boneWeights = new Array(vertexCount);
|
|
1833
|
+
}
|
|
1830
1834
|
for(var attribute in attributes){
|
|
1831
1835
|
var accessor = accessors[attributes[attribute]];
|
|
1832
1836
|
var accessorBuffer = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor);
|
|
1833
1837
|
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1834
|
-
var
|
|
1838
|
+
var accessorCount = accessor.count;
|
|
1835
1839
|
var vertices = accessorBuffer.data;
|
|
1836
1840
|
var vertexElement = void 0;
|
|
1837
1841
|
var meshId = mesh.instanceId;
|
|
1838
1842
|
var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
|
|
1839
|
-
var
|
|
1843
|
+
var elementNormalized = accessor.normalized;
|
|
1844
|
+
var elementFormat = GLTFUtils.getElementFormat(accessor.componentType, dataElementSize, elementNormalized);
|
|
1845
|
+
var scaleFactor = void 0;
|
|
1846
|
+
elementNormalized && (scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType));
|
|
1847
|
+
var elementOffset = void 0;
|
|
1840
1848
|
if (accessorBuffer.interleaved) {
|
|
1841
1849
|
var byteOffset = accessor.byteOffset || 0;
|
|
1842
1850
|
var stride = accessorBuffer.stride;
|
|
1843
|
-
|
|
1851
|
+
elementOffset = byteOffset % stride;
|
|
1844
1852
|
if (vertexBindingInfos[meshId] === undefined) {
|
|
1845
1853
|
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1846
1854
|
var vertexBuffer = accessorBuffer.vertexBuffer;
|
|
@@ -1856,7 +1864,8 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1856
1864
|
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
|
|
1857
1865
|
}
|
|
1858
1866
|
} else {
|
|
1859
|
-
|
|
1867
|
+
elementOffset = 0;
|
|
1868
|
+
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1860
1869
|
var vertexBuffer1 = new miniprogram.Buffer(engine, miniprogram.BufferBindFlag.VertexBuffer, vertices.byteLength, miniprogram.BufferUsage.Static);
|
|
1861
1870
|
vertexBuffer1.setData(vertices);
|
|
1862
1871
|
meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer1, accessorBuffer.restoreInfo));
|
|
@@ -1865,35 +1874,61 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1865
1874
|
}
|
|
1866
1875
|
vertexElements.push(vertexElement);
|
|
1867
1876
|
if (attribute === "POSITION") {
|
|
1868
|
-
vertexCount =
|
|
1877
|
+
vertexCount = accessorCount;
|
|
1869
1878
|
var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
|
|
1870
1879
|
if (accessor.min && accessor.max) {
|
|
1871
1880
|
min.copyFromArray(accessor.min);
|
|
1872
1881
|
max.copyFromArray(accessor.max);
|
|
1873
1882
|
if (keepMeshData) {
|
|
1874
|
-
var
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1883
|
+
var baseOffset = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1884
|
+
var stride1 = vertices.length / accessorCount;
|
|
1885
|
+
for(var j = 0; j < accessorCount; j++){
|
|
1886
|
+
var offset = baseOffset + j * stride1;
|
|
1887
|
+
var position = new miniprogram$1.Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
|
|
1888
|
+
elementNormalized && position.scale(scaleFactor);
|
|
1889
|
+
positions[j] = position;
|
|
1878
1890
|
}
|
|
1879
1891
|
}
|
|
1880
1892
|
} else {
|
|
1881
|
-
var
|
|
1893
|
+
var position1 = GLTFMeshParser._tempVector3;
|
|
1882
1894
|
min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
1883
1895
|
max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
1884
|
-
var
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
miniprogram$1.Vector3.
|
|
1896
|
+
var baseOffset1 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1897
|
+
var stride2 = vertices.length / accessorCount;
|
|
1898
|
+
for(var j1 = 0; j1 < accessorCount; j1++){
|
|
1899
|
+
var offset1 = baseOffset1 + j1 * stride2;
|
|
1900
|
+
position1.copyFromArray(vertices, offset1);
|
|
1901
|
+
miniprogram$1.Vector3.min(min, position1, min);
|
|
1902
|
+
miniprogram$1.Vector3.max(max, position1, max);
|
|
1903
|
+
if (keepMeshData) {
|
|
1904
|
+
var clonePosition = position1.clone();
|
|
1905
|
+
elementNormalized && clonePosition.scale(scaleFactor);
|
|
1906
|
+
positions[j1] = clonePosition;
|
|
1907
|
+
}
|
|
1890
1908
|
}
|
|
1891
1909
|
}
|
|
1892
|
-
if (
|
|
1893
|
-
var scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType);
|
|
1910
|
+
if (elementNormalized) {
|
|
1894
1911
|
min.scale(scaleFactor);
|
|
1895
1912
|
max.scale(scaleFactor);
|
|
1896
1913
|
}
|
|
1914
|
+
} else if (attribute === "JOINTS_0" && keepMeshData) {
|
|
1915
|
+
var baseOffset2 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1916
|
+
var stride3 = vertices.length / accessorCount;
|
|
1917
|
+
for(var j2 = 0; j2 < accessorCount; j2++){
|
|
1918
|
+
var offset2 = baseOffset2 + j2 * stride3;
|
|
1919
|
+
var boneIndex = new miniprogram$1.Vector4(vertices[offset2], vertices[offset2 + 1], vertices[offset2 + 2], vertices[offset2 + 3]);
|
|
1920
|
+
elementNormalized && boneIndex.scale(scaleFactor);
|
|
1921
|
+
boneIndices[j2] = boneIndex;
|
|
1922
|
+
}
|
|
1923
|
+
} else if (attribute === "WEIGHTS_0" && keepMeshData) {
|
|
1924
|
+
var baseOffset3 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1925
|
+
var stride4 = vertices.length / accessorCount;
|
|
1926
|
+
for(var j3 = 0; j3 < accessorCount; j3++){
|
|
1927
|
+
var offset3 = baseOffset3 + j3 * stride4;
|
|
1928
|
+
var boneWeight = new miniprogram$1.Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
|
|
1929
|
+
elementNormalized && boneWeight.scale(scaleFactor);
|
|
1930
|
+
boneWeights[j3] = boneWeight;
|
|
1931
|
+
}
|
|
1897
1932
|
}
|
|
1898
1933
|
}
|
|
1899
1934
|
mesh.setVertexElements(vertexElements);
|
|
@@ -1912,6 +1947,10 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1912
1947
|
mesh.uploadData(!keepMeshData);
|
|
1913
1948
|
//@ts-ignore
|
|
1914
1949
|
mesh._positions = positions;
|
|
1950
|
+
//@ts-ignore
|
|
1951
|
+
mesh._boneIndices = boneIndices;
|
|
1952
|
+
//@ts-ignore
|
|
1953
|
+
mesh._boneWeights = boneWeights;
|
|
1915
1954
|
return Promise.resolve(mesh);
|
|
1916
1955
|
};
|
|
1917
1956
|
/**
|
|
@@ -2002,14 +2041,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
2002
2041
|
camera.enabled = false;
|
|
2003
2042
|
};
|
|
2004
2043
|
_proto._createRenderer = function _createRenderer(context, glTFNode, entity) {
|
|
2005
|
-
var
|
|
2006
|
-
var glTFMeshes = glTF.meshes;
|
|
2007
|
-
var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
|
|
2008
|
-
var meshID = glTFNode.mesh, skinID = glTFNode.skin;
|
|
2009
|
-
var glTFMesh = glTFMeshes[meshID];
|
|
2010
|
-
var glTFMeshPrimitives = glTFMesh.primitives;
|
|
2011
|
-
var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
|
|
2012
|
-
for(var i = 0; i < glTFMeshPrimitives.length; i++){
|
|
2044
|
+
var _loop = function(i) {
|
|
2013
2045
|
var gltfPrimitive = glTFMeshPrimitives[i];
|
|
2014
2046
|
var mesh = meshes[meshID][i];
|
|
2015
2047
|
var renderer = void 0;
|
|
@@ -2031,8 +2063,22 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
2031
2063
|
var materialIndex = gltfPrimitive.material;
|
|
2032
2064
|
var material = (materials == null ? void 0 : materials[materialIndex]) || GLTFSceneParser._getDefaultMaterial(engine);
|
|
2033
2065
|
renderer.setMaterial(material);
|
|
2066
|
+
// Enable vertex color if mesh has COLOR_0 vertex element
|
|
2067
|
+
mesh.vertexElements.forEach(function(element) {
|
|
2068
|
+
if (element.semantic === "COLOR_0") {
|
|
2069
|
+
renderer.enableVertexColor = true;
|
|
2070
|
+
}
|
|
2071
|
+
});
|
|
2034
2072
|
GLTFParser.executeExtensionsAdditiveAndParse(gltfPrimitive.extensions, context, renderer, gltfPrimitive);
|
|
2035
|
-
}
|
|
2073
|
+
};
|
|
2074
|
+
var glTFResource = context.glTFResource, glTF = context.glTF;
|
|
2075
|
+
var glTFMeshes = glTF.meshes;
|
|
2076
|
+
var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
|
|
2077
|
+
var meshID = glTFNode.mesh, skinID = glTFNode.skin;
|
|
2078
|
+
var glTFMesh = glTFMeshes[meshID];
|
|
2079
|
+
var glTFMeshPrimitives = glTFMesh.primitives;
|
|
2080
|
+
var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
|
|
2081
|
+
for(var i = 0; i < glTFMeshPrimitives.length; i++)_loop(i);
|
|
2036
2082
|
};
|
|
2037
2083
|
_proto._createAnimator = function _createAnimator(context) {
|
|
2038
2084
|
if (!context.hasSkinned && !context.glTFResource.animations) {
|
|
@@ -2331,7 +2377,7 @@ var GLTFValidator = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
2331
2377
|
}
|
|
2332
2378
|
var _proto = GLTFResource.prototype;
|
|
2333
2379
|
/**
|
|
2334
|
-
* @
|
|
2380
|
+
* @internal
|
|
2335
2381
|
*/ _proto._onDestroy = function _onDestroy() {
|
|
2336
2382
|
EngineObject.prototype._onDestroy.call(this);
|
|
2337
2383
|
this.defaultSceneRoot.destroy();
|
|
@@ -2355,9 +2401,7 @@ var GLTFLoader = /*#__PURE__*/ function(Loader) {
|
|
|
2355
2401
|
return Loader.apply(this, arguments);
|
|
2356
2402
|
}
|
|
2357
2403
|
var _proto = GLTFLoader.prototype;
|
|
2358
|
-
|
|
2359
|
-
* @override
|
|
2360
|
-
*/ _proto.load = function load(item, resourceManager) {
|
|
2404
|
+
_proto.load = function load(item, resourceManager) {
|
|
2361
2405
|
var url = item.url;
|
|
2362
2406
|
var params = item.params;
|
|
2363
2407
|
var context = new GLTFParserContext(url);
|
|
@@ -2982,6 +3026,15 @@ KTXLoader = __decorate([
|
|
|
2982
3026
|
])
|
|
2983
3027
|
], KTXLoader);
|
|
2984
3028
|
|
|
3029
|
+
function parseProperty(object, key, value) {
|
|
3030
|
+
if (typeof value === "object") {
|
|
3031
|
+
for(var subKey in value){
|
|
3032
|
+
parseProperty(object[key], subKey, value[subKey]);
|
|
3033
|
+
}
|
|
3034
|
+
} else {
|
|
3035
|
+
object[key] = value;
|
|
3036
|
+
}
|
|
3037
|
+
}
|
|
2985
3038
|
var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
2986
3039
|
_inherits(MaterialLoader, Loader);
|
|
2987
3040
|
function MaterialLoader() {
|
|
@@ -2993,7 +3046,7 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
2993
3046
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
2994
3047
|
_this.request(item.url, _extends({}, item, {
|
|
2995
3048
|
type: "json"
|
|
2996
|
-
})).then(function(
|
|
3049
|
+
})).then(function(materialSchema) {
|
|
2997
3050
|
var _loop = function(key) {
|
|
2998
3051
|
var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
|
|
2999
3052
|
switch(type){
|
|
@@ -3021,27 +3074,8 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
3021
3074
|
}
|
|
3022
3075
|
};
|
|
3023
3076
|
var engine = resourceManager.engine;
|
|
3024
|
-
var name =
|
|
3025
|
-
var material;
|
|
3026
|
-
switch(shader){
|
|
3027
|
-
case "pbr":
|
|
3028
|
-
material = new miniprogram.PBRMaterial(engine);
|
|
3029
|
-
break;
|
|
3030
|
-
case "pbr-specular":
|
|
3031
|
-
material = new miniprogram.PBRSpecularMaterial(engine);
|
|
3032
|
-
break;
|
|
3033
|
-
case "unlit":
|
|
3034
|
-
material = new miniprogram.UnlitMaterial(engine);
|
|
3035
|
-
break;
|
|
3036
|
-
case "blinn-phong":
|
|
3037
|
-
material = new miniprogram.BlinnPhongMaterial(engine);
|
|
3038
|
-
break;
|
|
3039
|
-
case "bake-pbr":
|
|
3040
|
-
// @todo refactor custom shader later
|
|
3041
|
-
// @ts-ignore
|
|
3042
|
-
material = new miniprogram.PBRBaseMaterial(engine, miniprogram.Shader.find("bake-pbr"));
|
|
3043
|
-
break;
|
|
3044
|
-
}
|
|
3077
|
+
var name = materialSchema.name, shader = materialSchema.shader, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
|
|
3078
|
+
var material = new miniprogram.Material(engine, miniprogram.Shader.find(shader));
|
|
3045
3079
|
material.name = name;
|
|
3046
3080
|
var texturePromises = new Array();
|
|
3047
3081
|
var materialShaderData = material.shaderData;
|
|
@@ -3054,9 +3088,7 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
3054
3088
|
materialShaderData.enableMacro(name1, value);
|
|
3055
3089
|
}
|
|
3056
3090
|
}
|
|
3057
|
-
|
|
3058
|
-
material[key1] = renderState[key1];
|
|
3059
|
-
}
|
|
3091
|
+
parseProperty(material, "renderState", renderState);
|
|
3060
3092
|
return Promise.all(texturePromises).then(function() {
|
|
3061
3093
|
resolve(material);
|
|
3062
3094
|
});
|
|
@@ -3811,6 +3843,12 @@ exports.AnimationClipDecoder = __decorate([
|
|
|
3811
3843
|
decoder("AnimationClip")
|
|
3812
3844
|
], exports.AnimationClipDecoder);
|
|
3813
3845
|
|
|
3846
|
+
exports.SpecularMode = void 0;
|
|
3847
|
+
(function(SpecularMode) {
|
|
3848
|
+
SpecularMode["Sky"] = "Sky";
|
|
3849
|
+
SpecularMode["Custom"] = "Custom";
|
|
3850
|
+
})(exports.SpecularMode || (exports.SpecularMode = {}));
|
|
3851
|
+
|
|
3814
3852
|
var SceneParserContext = /*#__PURE__*/ function() {
|
|
3815
3853
|
function SceneParserContext(originalData, scene) {
|
|
3816
3854
|
this.originalData = originalData;
|
|
@@ -4093,7 +4131,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4093
4131
|
var atlasItem = atlasItems[i];
|
|
4094
4132
|
if (atlasItem.img) {
|
|
4095
4133
|
chainPromises.push(resourceManager.load({
|
|
4096
|
-
url: atlasItem.img,
|
|
4134
|
+
url: miniprogram.Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
|
|
4097
4135
|
type: miniprogram.AssetType.Texture2D,
|
|
4098
4136
|
params: {
|
|
4099
4137
|
format: format,
|
|
@@ -4204,9 +4242,7 @@ SpriteLoader = __decorate([
|
|
|
4204
4242
|
return _this;
|
|
4205
4243
|
}
|
|
4206
4244
|
var _proto = Texture2DContentRestorer.prototype;
|
|
4207
|
-
|
|
4208
|
-
* @override
|
|
4209
|
-
*/ _proto.restoreContent = function restoreContent() {
|
|
4245
|
+
_proto.restoreContent = function restoreContent() {
|
|
4210
4246
|
var _this = this;
|
|
4211
4247
|
return miniprogram.request(this.url, this.requestConfig).then(function(image) {
|
|
4212
4248
|
var resource = _this.resource;
|
|
@@ -4224,9 +4260,7 @@ var Texture2DLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4224
4260
|
return Loader.apply(this, arguments);
|
|
4225
4261
|
}
|
|
4226
4262
|
var _proto = Texture2DLoader.prototype;
|
|
4227
|
-
|
|
4228
|
-
* @override
|
|
4229
|
-
*/ _proto.load = function load(item, resourceManager) {
|
|
4263
|
+
_proto.load = function load(item, resourceManager) {
|
|
4230
4264
|
var _this = this;
|
|
4231
4265
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
4232
4266
|
var url = item.url;
|
|
@@ -4272,9 +4306,7 @@ Texture2DLoader = __decorate([
|
|
|
4272
4306
|
return _this;
|
|
4273
4307
|
}
|
|
4274
4308
|
var _proto = TextureCubeContentRestorer.prototype;
|
|
4275
|
-
|
|
4276
|
-
* @override
|
|
4277
|
-
*/ _proto.restoreContent = function restoreContent() {
|
|
4309
|
+
_proto.restoreContent = function restoreContent() {
|
|
4278
4310
|
var _this = this;
|
|
4279
4311
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
4280
4312
|
Promise.all(_this.urls.map(function(url) {
|
|
@@ -4300,9 +4332,7 @@ var TextureCubeLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4300
4332
|
return Loader.apply(this, arguments);
|
|
4301
4333
|
}
|
|
4302
4334
|
var _proto = TextureCubeLoader.prototype;
|
|
4303
|
-
|
|
4304
|
-
* @override
|
|
4305
|
-
*/ _proto.load = function load(item, resourceManager) {
|
|
4335
|
+
_proto.load = function load(item, resourceManager) {
|
|
4306
4336
|
var _this = this;
|
|
4307
4337
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
4308
4338
|
var urls = item.urls;
|
|
@@ -4377,47 +4407,63 @@ var SceneLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4377
4407
|
// @ts-ignore
|
|
4378
4408
|
engine.resourceManager.initVirtualResources(data.files);
|
|
4379
4409
|
return SceneParser.parse(engine, data).then(function(scene) {
|
|
4410
|
+
var promises = [];
|
|
4380
4411
|
// parse ambient light
|
|
4381
4412
|
var ambient = data.scene.ambient;
|
|
4382
|
-
var
|
|
4383
|
-
if (ambient.
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4413
|
+
var useCustomAmbient = ambient.specularMode === "Custom";
|
|
4414
|
+
if (useCustomAmbient && ambient.customAmbientLight) {
|
|
4415
|
+
// @ts-ignore
|
|
4416
|
+
// prettier-ignore
|
|
4417
|
+
var customAmbientPromise = resourceManager.getResourceByRef(ambient.customAmbientLight).then(function(ambientLight) {
|
|
4418
|
+
scene.ambientLight = ambientLight;
|
|
4387
4419
|
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
4388
4420
|
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
4421
|
+
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
4422
|
+
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
4389
4423
|
});
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4424
|
+
promises.push(customAmbientPromise);
|
|
4425
|
+
} else if (!useCustomAmbient && ambient.ambientLight) {
|
|
4426
|
+
// @ts-ignore
|
|
4427
|
+
// prettier-ignore
|
|
4428
|
+
var ambientLightPromise = resourceManager.getResourceByRef(ambient.ambientLight).then(function(ambientLight) {
|
|
4429
|
+
scene.ambientLight = ambientLight;
|
|
4430
|
+
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
4431
|
+
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
4432
|
+
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
4433
|
+
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
4434
|
+
});
|
|
4435
|
+
promises.push(ambientLightPromise);
|
|
4394
4436
|
}
|
|
4395
4437
|
var background = data.scene.background;
|
|
4396
4438
|
scene.background.mode = background.mode;
|
|
4397
|
-
var backgroundPromise = Promise.resolve();
|
|
4398
4439
|
switch(scene.background.mode){
|
|
4399
4440
|
case miniprogram.BackgroundMode.SolidColor:
|
|
4400
4441
|
scene.background.solidColor.copyFrom(background.color);
|
|
4401
4442
|
break;
|
|
4402
4443
|
case miniprogram.BackgroundMode.Sky:
|
|
4403
|
-
if (background.
|
|
4444
|
+
if (background.skyMesh && background.skyMaterial) {
|
|
4445
|
+
// @ts-ignore
|
|
4446
|
+
var skyMeshPromise = resourceManager.getResourceByRef(background.skyMesh).then(function(mesh) {
|
|
4447
|
+
scene.background.sky.mesh = mesh;
|
|
4448
|
+
});
|
|
4404
4449
|
// @ts-ignore
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
skyMaterial.texture = light.specularTexture;
|
|
4409
|
-
skyMaterial.textureDecodeRGBM = true;
|
|
4410
|
-
sky.material = skyMaterial;
|
|
4411
|
-
sky.mesh = miniprogram.PrimitiveMesh.createCuboid(engine, 1, 1, 1);
|
|
4450
|
+
// prettier-ignore
|
|
4451
|
+
var skyMaterialPromise = resourceManager.getResourceByRef(background.skyMaterial).then(function(material) {
|
|
4452
|
+
scene.background.sky.material = material;
|
|
4412
4453
|
});
|
|
4454
|
+
promises.push(skyMeshPromise, skyMaterialPromise);
|
|
4455
|
+
} else {
|
|
4456
|
+
miniprogram.Logger.warn("Sky background mode requires skyMesh and skyMaterial");
|
|
4413
4457
|
}
|
|
4414
4458
|
break;
|
|
4415
4459
|
case miniprogram.BackgroundMode.Texture:
|
|
4416
4460
|
if (background.texture) {
|
|
4417
4461
|
// @ts-ignore
|
|
4418
|
-
|
|
4462
|
+
// prettier-ignore
|
|
4463
|
+
var backgroundPromise = resourceManager.getResourceByRef(background.texture).then(function(texture) {
|
|
4419
4464
|
scene.background.texture = texture;
|
|
4420
4465
|
});
|
|
4466
|
+
promises.push(backgroundPromise);
|
|
4421
4467
|
}
|
|
4422
4468
|
break;
|
|
4423
4469
|
}
|
|
@@ -4429,10 +4475,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4429
4475
|
if (shadow.shadowDistance != undefined) scene.shadowDistance = shadow.shadowDistance;
|
|
4430
4476
|
if (shadow.shadowCascades != undefined) scene.shadowCascades = shadow.shadowCascades;
|
|
4431
4477
|
}
|
|
4432
|
-
return Promise.all(
|
|
4433
|
-
ambientLightPromise,
|
|
4434
|
-
backgroundPromise
|
|
4435
|
-
]).then(function() {
|
|
4478
|
+
return Promise.all(promises).then(function() {
|
|
4436
4479
|
resolve(scene);
|
|
4437
4480
|
});
|
|
4438
4481
|
});
|
|
@@ -4468,16 +4511,12 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
4468
4511
|
return GLTFExtensionParser.apply(this, arguments);
|
|
4469
4512
|
}
|
|
4470
4513
|
var _proto = KHR_draco_mesh_compression1.prototype;
|
|
4471
|
-
|
|
4472
|
-
* @override
|
|
4473
|
-
*/ _proto.initialize = function initialize() {
|
|
4514
|
+
_proto.initialize = function initialize() {
|
|
4474
4515
|
if (!KHR_draco_mesh_compression._decoder) {
|
|
4475
4516
|
KHR_draco_mesh_compression._decoder = new miniprogram$3.DRACODecoder();
|
|
4476
4517
|
}
|
|
4477
4518
|
};
|
|
4478
|
-
|
|
4479
|
-
* @override
|
|
4480
|
-
*/ _proto.createAndParse = function createAndParse(context, schema, glTFPrimitive, glTFMesh) {
|
|
4519
|
+
_proto.createAndParse = function createAndParse(context, schema, glTFPrimitive, glTFMesh) {
|
|
4481
4520
|
var _this = this;
|
|
4482
4521
|
var glTF = context.glTF, buffers = context.buffers, engine = context.glTFResource.engine;
|
|
4483
4522
|
var bufferViews = glTF.bufferViews, accessors = glTF.accessors;
|
|
@@ -4632,9 +4671,7 @@ var KHR_lights_punctual = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
|
4632
4671
|
return GLTFExtensionParser.apply(this, arguments);
|
|
4633
4672
|
}
|
|
4634
4673
|
var _proto = KHR_lights_punctual.prototype;
|
|
4635
|
-
|
|
4636
|
-
* @override
|
|
4637
|
-
*/ _proto.additiveParse = function additiveParse(context, entity, extensionSchema) {
|
|
4674
|
+
_proto.additiveParse = function additiveParse(context, entity, extensionSchema) {
|
|
4638
4675
|
var lightsSchema = context.glTF.extensions.KHR_lights_punctual.lights;
|
|
4639
4676
|
var lightSchema = lightsSchema[extensionSchema.light];
|
|
4640
4677
|
var color = lightSchema.color, _lightSchema_intensity = lightSchema.intensity, intensity = _lightSchema_intensity === void 0 ? 1 : _lightSchema_intensity, type = lightSchema.type, range = lightSchema.range, spot = lightSchema.spot;
|
|
@@ -4674,9 +4711,7 @@ var KHR_materials_clearcoat = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
|
4674
4711
|
return GLTFExtensionParser.apply(this, arguments);
|
|
4675
4712
|
}
|
|
4676
4713
|
var _proto = KHR_materials_clearcoat.prototype;
|
|
4677
|
-
|
|
4678
|
-
* @override
|
|
4679
|
-
*/ _proto.additiveParse = function additiveParse(context, material, schema) {
|
|
4714
|
+
_proto.additiveParse = function additiveParse(context, material, schema) {
|
|
4680
4715
|
var textures = context.glTFResource.textures;
|
|
4681
4716
|
var _schema_clearcoatFactor = schema.clearcoatFactor, clearcoatFactor = _schema_clearcoatFactor === void 0 ? 0 : _schema_clearcoatFactor, clearcoatTexture = schema.clearcoatTexture, _schema_clearcoatRoughnessFactor = schema.clearcoatRoughnessFactor, clearcoatRoughnessFactor = _schema_clearcoatRoughnessFactor === void 0 ? 0 : _schema_clearcoatRoughnessFactor, clearcoatRoughnessTexture = schema.clearcoatRoughnessTexture, clearcoatNormalTexture = schema.clearcoatNormalTexture;
|
|
4682
4717
|
material.clearCoat = clearcoatFactor;
|
|
@@ -4700,15 +4735,29 @@ KHR_materials_clearcoat = __decorate([
|
|
|
4700
4735
|
registerGLTFExtension("KHR_materials_clearcoat", exports.GLTFExtensionMode.AdditiveParse)
|
|
4701
4736
|
], KHR_materials_clearcoat);
|
|
4702
4737
|
|
|
4738
|
+
var KHR_materials_ior = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
4739
|
+
_inherits(KHR_materials_ior, GLTFExtensionParser);
|
|
4740
|
+
function KHR_materials_ior() {
|
|
4741
|
+
return GLTFExtensionParser.apply(this, arguments);
|
|
4742
|
+
}
|
|
4743
|
+
var _proto = KHR_materials_ior.prototype;
|
|
4744
|
+
_proto.additiveParse = function additiveParse(context, material, schema) {
|
|
4745
|
+
var _schema_ior = schema.ior, ior = _schema_ior === void 0 ? 1.5 : _schema_ior;
|
|
4746
|
+
material.ior = ior;
|
|
4747
|
+
};
|
|
4748
|
+
return KHR_materials_ior;
|
|
4749
|
+
}(GLTFExtensionParser);
|
|
4750
|
+
KHR_materials_ior = __decorate([
|
|
4751
|
+
registerGLTFExtension("KHR_materials_ior", exports.GLTFExtensionMode.AdditiveParse)
|
|
4752
|
+
], KHR_materials_ior);
|
|
4753
|
+
|
|
4703
4754
|
var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
4704
4755
|
_inherits(KHR_materials_pbrSpecularGlossiness, GLTFExtensionParser);
|
|
4705
4756
|
function KHR_materials_pbrSpecularGlossiness() {
|
|
4706
4757
|
return GLTFExtensionParser.apply(this, arguments);
|
|
4707
4758
|
}
|
|
4708
4759
|
var _proto = KHR_materials_pbrSpecularGlossiness.prototype;
|
|
4709
|
-
|
|
4710
|
-
* @override
|
|
4711
|
-
*/ _proto.createAndParse = function createAndParse(context, schema, ownerSchema) {
|
|
4760
|
+
_proto.createAndParse = function createAndParse(context, schema, ownerSchema) {
|
|
4712
4761
|
var _context_glTFResource = context.glTFResource, engine = _context_glTFResource.engine, textures = _context_glTFResource.textures;
|
|
4713
4762
|
var material = new miniprogram.PBRSpecularMaterial(engine);
|
|
4714
4763
|
var diffuseFactor = schema.diffuseFactor, diffuseTexture = schema.diffuseTexture, specularFactor = schema.specularFactor, glossinessFactor = schema.glossinessFactor, specularGlossinessTexture = schema.specularGlossinessTexture;
|
|
@@ -4745,9 +4794,7 @@ var KHR_materials_unlit = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
|
4745
4794
|
return GLTFExtensionParser.apply(this, arguments);
|
|
4746
4795
|
}
|
|
4747
4796
|
var _proto = KHR_materials_unlit.prototype;
|
|
4748
|
-
|
|
4749
|
-
* @override
|
|
4750
|
-
*/ _proto.createAndParse = function createAndParse(context, _, ownerSchema) {
|
|
4797
|
+
_proto.createAndParse = function createAndParse(context, _, ownerSchema) {
|
|
4751
4798
|
var engine = context.glTFResource.engine;
|
|
4752
4799
|
var material = new miniprogram.UnlitMaterial(engine);
|
|
4753
4800
|
material.name = ownerSchema.name;
|
|
@@ -4777,9 +4824,7 @@ var KHR_texture_transform = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
|
4777
4824
|
return GLTFExtensionParser.apply(this, arguments);
|
|
4778
4825
|
}
|
|
4779
4826
|
var _proto = KHR_texture_transform.prototype;
|
|
4780
|
-
|
|
4781
|
-
* @override
|
|
4782
|
-
*/ _proto.additiveParse = function additiveParse(context, material, schema) {
|
|
4827
|
+
_proto.additiveParse = function additiveParse(context, material, schema) {
|
|
4783
4828
|
var offset = schema.offset, rotation = schema.rotation, scale = schema.scale, texCoord = schema.texCoord;
|
|
4784
4829
|
if (offset) {
|
|
4785
4830
|
material.tilingOffset.z = offset[0];
|
|
@@ -4808,9 +4853,7 @@ var GALACEAN_materials_remap = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
|
4808
4853
|
return GLTFExtensionParser.apply(this, arguments);
|
|
4809
4854
|
}
|
|
4810
4855
|
var _proto = GALACEAN_materials_remap.prototype;
|
|
4811
|
-
|
|
4812
|
-
* @override
|
|
4813
|
-
*/ _proto.createAndParse = function createAndParse(context, schema) {
|
|
4856
|
+
_proto.createAndParse = function createAndParse(context, schema) {
|
|
4814
4857
|
var engine = context.glTFResource.engine;
|
|
4815
4858
|
// @ts-ignore
|
|
4816
4859
|
return engine.resourceManager.getResourceByRef(schema);
|
|
@@ -4827,9 +4870,7 @@ var GALACEAN_animation_event = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
|
4827
4870
|
return GLTFExtensionParser.apply(this, arguments);
|
|
4828
4871
|
}
|
|
4829
4872
|
var _proto = GALACEAN_animation_event.prototype;
|
|
4830
|
-
|
|
4831
|
-
* @override
|
|
4832
|
-
*/ _proto.additiveParse = function additiveParse(context, animationClip, schema) {
|
|
4873
|
+
_proto.additiveParse = function additiveParse(context, animationClip, schema) {
|
|
4833
4874
|
context.glTFResource.engine;
|
|
4834
4875
|
var events = schema.events;
|
|
4835
4876
|
events.map(function(eventData) {
|