@galacean/engine-loader 1.0.0-beta.1 → 1.0.0-beta.11
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 +156 -96
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +156 -96
- package/dist/module.js +158 -98
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
- package/types/GLTFContentRestorer.d.ts +1 -1
- package/types/gltf/GLTFResource.d.ts +2 -3
- package/types/gltf/GLTFUtil.d.ts +4 -4
- package/types/gltf/GLTFUtils.d.ts +1 -1
- package/types/gltf/extensions/GLTFExtensionSchema.d.ts +1 -1
- package/types/gltf/extensions/KHR_materials_ior.d.ts +1 -0
- package/types/gltf/extensions/index.d.ts +1 -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/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/prefab/PrefabDesign.d.ts +4 -4
- 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
|
@@ -1628,6 +1628,10 @@ var GLTFEntityParser = /*#__PURE__*/ function(GLTFParser) {
|
|
|
1628
1628
|
}
|
|
1629
1629
|
glTFResource.sceneRoots = sceneRoots;
|
|
1630
1630
|
glTFResource.defaultSceneRoot = sceneRoots[sceneID];
|
|
1631
|
+
// @ts-ignore
|
|
1632
|
+
glTFResource.defaultSceneRoot._hookResource = glTFResource;
|
|
1633
|
+
// @ts-ignore
|
|
1634
|
+
glTFResource._addReferCount(1);
|
|
1631
1635
|
};
|
|
1632
1636
|
return GLTFEntityParser;
|
|
1633
1637
|
}(GLTFParser);
|
|
@@ -1824,21 +1828,31 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1824
1828
|
var vertexCount;
|
|
1825
1829
|
var bufferBindIndex = 0;
|
|
1826
1830
|
var positions;
|
|
1827
|
-
|
|
1831
|
+
var boneIndices;
|
|
1832
|
+
var boneWeights;
|
|
1833
|
+
if (keepMeshData) {
|
|
1834
|
+
positions = new Array(vertexCount);
|
|
1835
|
+
boneIndices = new Array(vertexCount);
|
|
1836
|
+
boneWeights = new Array(vertexCount);
|
|
1837
|
+
}
|
|
1828
1838
|
for(var attribute in attributes){
|
|
1829
1839
|
var accessor = accessors[attributes[attribute]];
|
|
1830
1840
|
var accessorBuffer = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor);
|
|
1831
1841
|
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1832
|
-
var
|
|
1842
|
+
var accessorCount = accessor.count;
|
|
1833
1843
|
var vertices = accessorBuffer.data;
|
|
1834
1844
|
var vertexElement = void 0;
|
|
1835
1845
|
var meshId = mesh.instanceId;
|
|
1836
1846
|
var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
|
|
1837
|
-
var
|
|
1847
|
+
var elementNormalized = accessor.normalized;
|
|
1848
|
+
var elementFormat = GLTFUtils.getElementFormat(accessor.componentType, dataElementSize, elementNormalized);
|
|
1849
|
+
var scaleFactor = void 0;
|
|
1850
|
+
elementNormalized && (scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType));
|
|
1851
|
+
var elementOffset = void 0;
|
|
1838
1852
|
if (accessorBuffer.interleaved) {
|
|
1839
1853
|
var byteOffset = accessor.byteOffset || 0;
|
|
1840
1854
|
var stride = accessorBuffer.stride;
|
|
1841
|
-
|
|
1855
|
+
elementOffset = byteOffset % stride;
|
|
1842
1856
|
if (vertexBindingInfos[meshId] === undefined) {
|
|
1843
1857
|
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1844
1858
|
var vertexBuffer = accessorBuffer.vertexBuffer;
|
|
@@ -1854,7 +1868,8 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1854
1868
|
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
|
|
1855
1869
|
}
|
|
1856
1870
|
} else {
|
|
1857
|
-
|
|
1871
|
+
elementOffset = 0;
|
|
1872
|
+
vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1858
1873
|
var vertexBuffer1 = new miniprogram.Buffer(engine, miniprogram.BufferBindFlag.VertexBuffer, vertices.byteLength, miniprogram.BufferUsage.Static);
|
|
1859
1874
|
vertexBuffer1.setData(vertices);
|
|
1860
1875
|
meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer1, accessorBuffer.restoreInfo));
|
|
@@ -1863,35 +1878,61 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1863
1878
|
}
|
|
1864
1879
|
vertexElements.push(vertexElement);
|
|
1865
1880
|
if (attribute === "POSITION") {
|
|
1866
|
-
vertexCount =
|
|
1881
|
+
vertexCount = accessorCount;
|
|
1867
1882
|
var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
|
|
1868
1883
|
if (accessor.min && accessor.max) {
|
|
1869
1884
|
min.copyFromArray(accessor.min);
|
|
1870
1885
|
max.copyFromArray(accessor.max);
|
|
1871
1886
|
if (keepMeshData) {
|
|
1872
|
-
var
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1887
|
+
var baseOffset = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1888
|
+
var stride1 = vertices.length / accessorCount;
|
|
1889
|
+
for(var j = 0; j < accessorCount; j++){
|
|
1890
|
+
var offset = baseOffset + j * stride1;
|
|
1891
|
+
var position = new miniprogram$1.Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
|
|
1892
|
+
elementNormalized && position.scale(scaleFactor);
|
|
1893
|
+
positions[j] = position;
|
|
1876
1894
|
}
|
|
1877
1895
|
}
|
|
1878
1896
|
} else {
|
|
1879
|
-
var
|
|
1897
|
+
var position1 = GLTFMeshParser._tempVector3;
|
|
1880
1898
|
min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
1881
1899
|
max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
1882
|
-
var
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
miniprogram$1.Vector3.
|
|
1900
|
+
var baseOffset1 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1901
|
+
var stride2 = vertices.length / accessorCount;
|
|
1902
|
+
for(var j1 = 0; j1 < accessorCount; j1++){
|
|
1903
|
+
var offset1 = baseOffset1 + j1 * stride2;
|
|
1904
|
+
position1.copyFromArray(vertices, offset1);
|
|
1905
|
+
miniprogram$1.Vector3.min(min, position1, min);
|
|
1906
|
+
miniprogram$1.Vector3.max(max, position1, max);
|
|
1907
|
+
if (keepMeshData) {
|
|
1908
|
+
var clonePosition = position1.clone();
|
|
1909
|
+
elementNormalized && clonePosition.scale(scaleFactor);
|
|
1910
|
+
positions[j1] = clonePosition;
|
|
1911
|
+
}
|
|
1888
1912
|
}
|
|
1889
1913
|
}
|
|
1890
|
-
if (
|
|
1891
|
-
var scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType);
|
|
1914
|
+
if (elementNormalized) {
|
|
1892
1915
|
min.scale(scaleFactor);
|
|
1893
1916
|
max.scale(scaleFactor);
|
|
1894
1917
|
}
|
|
1918
|
+
} else if (attribute === "JOINTS_0" && keepMeshData) {
|
|
1919
|
+
var baseOffset2 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1920
|
+
var stride3 = vertices.length / accessorCount;
|
|
1921
|
+
for(var j2 = 0; j2 < accessorCount; j2++){
|
|
1922
|
+
var offset2 = baseOffset2 + j2 * stride3;
|
|
1923
|
+
var boneIndex = new miniprogram$1.Vector4(vertices[offset2], vertices[offset2 + 1], vertices[offset2 + 2], vertices[offset2 + 3]);
|
|
1924
|
+
elementNormalized && boneIndex.scale(scaleFactor);
|
|
1925
|
+
boneIndices[j2] = boneIndex;
|
|
1926
|
+
}
|
|
1927
|
+
} else if (attribute === "WEIGHTS_0" && keepMeshData) {
|
|
1928
|
+
var baseOffset3 = elementOffset / vertices.BYTES_PER_ELEMENT;
|
|
1929
|
+
var stride4 = vertices.length / accessorCount;
|
|
1930
|
+
for(var j3 = 0; j3 < accessorCount; j3++){
|
|
1931
|
+
var offset3 = baseOffset3 + j3 * stride4;
|
|
1932
|
+
var boneWeight = new miniprogram$1.Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
|
|
1933
|
+
elementNormalized && boneWeight.scale(scaleFactor);
|
|
1934
|
+
boneWeights[j3] = boneWeight;
|
|
1935
|
+
}
|
|
1895
1936
|
}
|
|
1896
1937
|
}
|
|
1897
1938
|
mesh.setVertexElements(vertexElements);
|
|
@@ -1910,6 +1951,10 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1910
1951
|
mesh.uploadData(!keepMeshData);
|
|
1911
1952
|
//@ts-ignore
|
|
1912
1953
|
mesh._positions = positions;
|
|
1954
|
+
//@ts-ignore
|
|
1955
|
+
mesh._boneIndices = boneIndices;
|
|
1956
|
+
//@ts-ignore
|
|
1957
|
+
mesh._boneWeights = boneWeights;
|
|
1913
1958
|
return Promise.resolve(mesh);
|
|
1914
1959
|
};
|
|
1915
1960
|
/**
|
|
@@ -2000,14 +2045,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
2000
2045
|
camera.enabled = false;
|
|
2001
2046
|
};
|
|
2002
2047
|
_proto._createRenderer = function _createRenderer(context, glTFNode, entity) {
|
|
2003
|
-
var
|
|
2004
|
-
var glTFMeshes = glTF.meshes;
|
|
2005
|
-
var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
|
|
2006
|
-
var meshID = glTFNode.mesh, skinID = glTFNode.skin;
|
|
2007
|
-
var glTFMesh = glTFMeshes[meshID];
|
|
2008
|
-
var glTFMeshPrimitives = glTFMesh.primitives;
|
|
2009
|
-
var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
|
|
2010
|
-
for(var i = 0; i < glTFMeshPrimitives.length; i++){
|
|
2048
|
+
var _loop = function(i) {
|
|
2011
2049
|
var gltfPrimitive = glTFMeshPrimitives[i];
|
|
2012
2050
|
var mesh = meshes[meshID][i];
|
|
2013
2051
|
var renderer = void 0;
|
|
@@ -2029,8 +2067,22 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
2029
2067
|
var materialIndex = gltfPrimitive.material;
|
|
2030
2068
|
var material = (materials == null ? void 0 : materials[materialIndex]) || GLTFSceneParser._getDefaultMaterial(engine);
|
|
2031
2069
|
renderer.setMaterial(material);
|
|
2070
|
+
// Enable vertex color if mesh has COLOR_0 vertex element
|
|
2071
|
+
mesh.vertexElements.forEach(function(element) {
|
|
2072
|
+
if (element.semantic === "COLOR_0") {
|
|
2073
|
+
renderer.enableVertexColor = true;
|
|
2074
|
+
}
|
|
2075
|
+
});
|
|
2032
2076
|
GLTFParser.executeExtensionsAdditiveAndParse(gltfPrimitive.extensions, context, renderer, gltfPrimitive);
|
|
2033
|
-
}
|
|
2077
|
+
};
|
|
2078
|
+
var glTFResource = context.glTFResource, glTF = context.glTF;
|
|
2079
|
+
var glTFMeshes = glTF.meshes;
|
|
2080
|
+
var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
|
|
2081
|
+
var meshID = glTFNode.mesh, skinID = glTFNode.skin;
|
|
2082
|
+
var glTFMesh = glTFMeshes[meshID];
|
|
2083
|
+
var glTFMeshPrimitives = glTFMesh.primitives;
|
|
2084
|
+
var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
|
|
2085
|
+
for(var i = 0; i < glTFMeshPrimitives.length; i++)_loop(i);
|
|
2034
2086
|
};
|
|
2035
2087
|
_proto._createAnimator = function _createAnimator(context) {
|
|
2036
2088
|
if (!context.hasSkinned && !context.glTFResource.animations) {
|
|
@@ -2319,31 +2371,16 @@ var GLTFValidator = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
2319
2371
|
|
|
2320
2372
|
/**
|
|
2321
2373
|
* Product after glTF parser, usually, `defaultSceneRoot` is only needed to use.
|
|
2322
|
-
*/ var GLTFResource = /*#__PURE__*/ function(
|
|
2323
|
-
_inherits(GLTFResource,
|
|
2374
|
+
*/ var GLTFResource = /*#__PURE__*/ function(ReferResource) {
|
|
2375
|
+
_inherits(GLTFResource, ReferResource);
|
|
2324
2376
|
function GLTFResource(engine, url) {
|
|
2325
2377
|
var _this;
|
|
2326
|
-
_this =
|
|
2378
|
+
_this = ReferResource.call(this, engine) || this;
|
|
2327
2379
|
_this.url = url;
|
|
2328
2380
|
return _this;
|
|
2329
2381
|
}
|
|
2330
|
-
var _proto = GLTFResource.prototype;
|
|
2331
|
-
_proto._onDestroy = function _onDestroy() {
|
|
2332
|
-
EngineObject.prototype._onDestroy.call(this);
|
|
2333
|
-
this.defaultSceneRoot.destroy();
|
|
2334
|
-
this.textures = null;
|
|
2335
|
-
this.materials = null;
|
|
2336
|
-
this.meshes = null;
|
|
2337
|
-
this.skins = null;
|
|
2338
|
-
this.animations = null;
|
|
2339
|
-
this.entities = null;
|
|
2340
|
-
this.cameras = null;
|
|
2341
|
-
this.lights = null;
|
|
2342
|
-
this.sceneRoots = null;
|
|
2343
|
-
this.extensionsData = null;
|
|
2344
|
-
};
|
|
2345
2382
|
return GLTFResource;
|
|
2346
|
-
}(miniprogram.
|
|
2383
|
+
}(miniprogram.ReferResource);
|
|
2347
2384
|
|
|
2348
2385
|
var GLTFLoader = /*#__PURE__*/ function(Loader) {
|
|
2349
2386
|
_inherits(GLTFLoader, Loader);
|
|
@@ -2976,6 +3013,15 @@ KTXLoader = __decorate([
|
|
|
2976
3013
|
])
|
|
2977
3014
|
], KTXLoader);
|
|
2978
3015
|
|
|
3016
|
+
function parseProperty(object, key, value) {
|
|
3017
|
+
if (typeof value === "object") {
|
|
3018
|
+
for(var subKey in value){
|
|
3019
|
+
parseProperty(object[key], subKey, value[subKey]);
|
|
3020
|
+
}
|
|
3021
|
+
} else {
|
|
3022
|
+
object[key] = value;
|
|
3023
|
+
}
|
|
3024
|
+
}
|
|
2979
3025
|
var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
2980
3026
|
_inherits(MaterialLoader, Loader);
|
|
2981
3027
|
function MaterialLoader() {
|
|
@@ -2987,7 +3033,7 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
2987
3033
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
2988
3034
|
_this.request(item.url, _extends({}, item, {
|
|
2989
3035
|
type: "json"
|
|
2990
|
-
})).then(function(
|
|
3036
|
+
})).then(function(materialSchema) {
|
|
2991
3037
|
var _loop = function(key) {
|
|
2992
3038
|
var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
|
|
2993
3039
|
switch(type){
|
|
@@ -3015,27 +3061,8 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
3015
3061
|
}
|
|
3016
3062
|
};
|
|
3017
3063
|
var engine = resourceManager.engine;
|
|
3018
|
-
var name =
|
|
3019
|
-
var material;
|
|
3020
|
-
switch(shader){
|
|
3021
|
-
case "pbr":
|
|
3022
|
-
material = new miniprogram.PBRMaterial(engine);
|
|
3023
|
-
break;
|
|
3024
|
-
case "pbr-specular":
|
|
3025
|
-
material = new miniprogram.PBRSpecularMaterial(engine);
|
|
3026
|
-
break;
|
|
3027
|
-
case "unlit":
|
|
3028
|
-
material = new miniprogram.UnlitMaterial(engine);
|
|
3029
|
-
break;
|
|
3030
|
-
case "blinn-phong":
|
|
3031
|
-
material = new miniprogram.BlinnPhongMaterial(engine);
|
|
3032
|
-
break;
|
|
3033
|
-
case "bake-pbr":
|
|
3034
|
-
// @todo refactor custom shader later
|
|
3035
|
-
// @ts-ignore
|
|
3036
|
-
material = new miniprogram.PBRBaseMaterial(engine, miniprogram.Shader.find("bake-pbr"));
|
|
3037
|
-
break;
|
|
3038
|
-
}
|
|
3064
|
+
var name = materialSchema.name, shader = materialSchema.shader, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
|
|
3065
|
+
var material = new miniprogram.Material(engine, miniprogram.Shader.find(shader));
|
|
3039
3066
|
material.name = name;
|
|
3040
3067
|
var texturePromises = new Array();
|
|
3041
3068
|
var materialShaderData = material.shaderData;
|
|
@@ -3048,9 +3075,7 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
3048
3075
|
materialShaderData.enableMacro(name1, value);
|
|
3049
3076
|
}
|
|
3050
3077
|
}
|
|
3051
|
-
|
|
3052
|
-
material[key1] = renderState[key1];
|
|
3053
|
-
}
|
|
3078
|
+
parseProperty(material, "renderState", renderState);
|
|
3054
3079
|
return Promise.all(texturePromises).then(function() {
|
|
3055
3080
|
resolve(material);
|
|
3056
3081
|
});
|
|
@@ -3805,6 +3830,12 @@ exports.AnimationClipDecoder = __decorate([
|
|
|
3805
3830
|
decoder("AnimationClip")
|
|
3806
3831
|
], exports.AnimationClipDecoder);
|
|
3807
3832
|
|
|
3833
|
+
exports.SpecularMode = void 0;
|
|
3834
|
+
(function(SpecularMode) {
|
|
3835
|
+
SpecularMode["Sky"] = "Sky";
|
|
3836
|
+
SpecularMode["Custom"] = "Custom";
|
|
3837
|
+
})(exports.SpecularMode || (exports.SpecularMode = {}));
|
|
3838
|
+
|
|
3808
3839
|
var SceneParserContext = /*#__PURE__*/ function() {
|
|
3809
3840
|
function SceneParserContext(originalData, scene) {
|
|
3810
3841
|
this.originalData = originalData;
|
|
@@ -4087,7 +4118,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4087
4118
|
var atlasItem = atlasItems[i];
|
|
4088
4119
|
if (atlasItem.img) {
|
|
4089
4120
|
chainPromises.push(resourceManager.load({
|
|
4090
|
-
url: atlasItem.img,
|
|
4121
|
+
url: miniprogram.Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
|
|
4091
4122
|
type: miniprogram.AssetType.Texture2D,
|
|
4092
4123
|
params: {
|
|
4093
4124
|
format: format,
|
|
@@ -4363,47 +4394,63 @@ var SceneLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4363
4394
|
// @ts-ignore
|
|
4364
4395
|
engine.resourceManager.initVirtualResources(data.files);
|
|
4365
4396
|
return SceneParser.parse(engine, data).then(function(scene) {
|
|
4397
|
+
var promises = [];
|
|
4366
4398
|
// parse ambient light
|
|
4367
4399
|
var ambient = data.scene.ambient;
|
|
4368
|
-
var
|
|
4369
|
-
if (ambient.
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4400
|
+
var useCustomAmbient = ambient.specularMode === "Custom";
|
|
4401
|
+
if (useCustomAmbient && ambient.customAmbientLight) {
|
|
4402
|
+
// @ts-ignore
|
|
4403
|
+
// prettier-ignore
|
|
4404
|
+
var customAmbientPromise = resourceManager.getResourceByRef(ambient.customAmbientLight).then(function(ambientLight) {
|
|
4405
|
+
scene.ambientLight = ambientLight;
|
|
4373
4406
|
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
4374
4407
|
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
4408
|
+
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
4409
|
+
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
4375
4410
|
});
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4411
|
+
promises.push(customAmbientPromise);
|
|
4412
|
+
} else if (!useCustomAmbient && ambient.ambientLight) {
|
|
4413
|
+
// @ts-ignore
|
|
4414
|
+
// prettier-ignore
|
|
4415
|
+
var ambientLightPromise = resourceManager.getResourceByRef(ambient.ambientLight).then(function(ambientLight) {
|
|
4416
|
+
scene.ambientLight = ambientLight;
|
|
4417
|
+
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
4418
|
+
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
4419
|
+
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
4420
|
+
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
4421
|
+
});
|
|
4422
|
+
promises.push(ambientLightPromise);
|
|
4380
4423
|
}
|
|
4381
4424
|
var background = data.scene.background;
|
|
4382
4425
|
scene.background.mode = background.mode;
|
|
4383
|
-
var backgroundPromise = Promise.resolve();
|
|
4384
4426
|
switch(scene.background.mode){
|
|
4385
4427
|
case miniprogram.BackgroundMode.SolidColor:
|
|
4386
4428
|
scene.background.solidColor.copyFrom(background.color);
|
|
4387
4429
|
break;
|
|
4388
4430
|
case miniprogram.BackgroundMode.Sky:
|
|
4389
|
-
if (background.
|
|
4431
|
+
if (background.skyMesh && background.skyMaterial) {
|
|
4390
4432
|
// @ts-ignore
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
var skyMaterial = new miniprogram.SkyBoxMaterial(engine);
|
|
4394
|
-
skyMaterial.texture = light.specularTexture;
|
|
4395
|
-
skyMaterial.textureDecodeRGBM = true;
|
|
4396
|
-
sky.material = skyMaterial;
|
|
4397
|
-
sky.mesh = miniprogram.PrimitiveMesh.createCuboid(engine, 1, 1, 1);
|
|
4433
|
+
var skyMeshPromise = resourceManager.getResourceByRef(background.skyMesh).then(function(mesh) {
|
|
4434
|
+
scene.background.sky.mesh = mesh;
|
|
4398
4435
|
});
|
|
4436
|
+
// @ts-ignore
|
|
4437
|
+
// prettier-ignore
|
|
4438
|
+
var skyMaterialPromise = resourceManager.getResourceByRef(background.skyMaterial).then(function(material) {
|
|
4439
|
+
scene.background.sky.material = material;
|
|
4440
|
+
});
|
|
4441
|
+
promises.push(skyMeshPromise, skyMaterialPromise);
|
|
4442
|
+
} else {
|
|
4443
|
+
miniprogram.Logger.warn("Sky background mode requires skyMesh and skyMaterial");
|
|
4399
4444
|
}
|
|
4400
4445
|
break;
|
|
4401
4446
|
case miniprogram.BackgroundMode.Texture:
|
|
4402
4447
|
if (background.texture) {
|
|
4403
4448
|
// @ts-ignore
|
|
4404
|
-
|
|
4449
|
+
// prettier-ignore
|
|
4450
|
+
var backgroundPromise = resourceManager.getResourceByRef(background.texture).then(function(texture) {
|
|
4405
4451
|
scene.background.texture = texture;
|
|
4406
4452
|
});
|
|
4453
|
+
promises.push(backgroundPromise);
|
|
4407
4454
|
}
|
|
4408
4455
|
break;
|
|
4409
4456
|
}
|
|
@@ -4415,10 +4462,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4415
4462
|
if (shadow.shadowDistance != undefined) scene.shadowDistance = shadow.shadowDistance;
|
|
4416
4463
|
if (shadow.shadowCascades != undefined) scene.shadowCascades = shadow.shadowCascades;
|
|
4417
4464
|
}
|
|
4418
|
-
return Promise.all(
|
|
4419
|
-
ambientLightPromise,
|
|
4420
|
-
backgroundPromise
|
|
4421
|
-
]).then(function() {
|
|
4465
|
+
return Promise.all(promises).then(function() {
|
|
4422
4466
|
resolve(scene);
|
|
4423
4467
|
});
|
|
4424
4468
|
});
|
|
@@ -4678,6 +4722,22 @@ KHR_materials_clearcoat = __decorate([
|
|
|
4678
4722
|
registerGLTFExtension("KHR_materials_clearcoat", exports.GLTFExtensionMode.AdditiveParse)
|
|
4679
4723
|
], KHR_materials_clearcoat);
|
|
4680
4724
|
|
|
4725
|
+
var KHR_materials_ior = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
4726
|
+
_inherits(KHR_materials_ior, GLTFExtensionParser);
|
|
4727
|
+
function KHR_materials_ior() {
|
|
4728
|
+
return GLTFExtensionParser.apply(this, arguments);
|
|
4729
|
+
}
|
|
4730
|
+
var _proto = KHR_materials_ior.prototype;
|
|
4731
|
+
_proto.additiveParse = function additiveParse(context, material, schema) {
|
|
4732
|
+
var _schema_ior = schema.ior, ior = _schema_ior === void 0 ? 1.5 : _schema_ior;
|
|
4733
|
+
material.ior = ior;
|
|
4734
|
+
};
|
|
4735
|
+
return KHR_materials_ior;
|
|
4736
|
+
}(GLTFExtensionParser);
|
|
4737
|
+
KHR_materials_ior = __decorate([
|
|
4738
|
+
registerGLTFExtension("KHR_materials_ior", exports.GLTFExtensionMode.AdditiveParse)
|
|
4739
|
+
], KHR_materials_ior);
|
|
4740
|
+
|
|
4681
4741
|
var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
4682
4742
|
_inherits(KHR_materials_pbrSpecularGlossiness, GLTFExtensionParser);
|
|
4683
4743
|
function KHR_materials_pbrSpecularGlossiness() {
|