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