@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/module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resourceLoader, AssetType, AssetPromise, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, Loader, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, request, ContentRestorer, IndexFormat, VertexElementFormat, Utils, AnimationClip, InterpolationType, AnimationFloatArrayCurve, Keyframe, AnimationQuaternionCurve, AnimationVector3Curve, SkinnedMeshRenderer, Transform, Entity, PBRMaterial, Logger, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, BlendShape, ModelMesh, Camera,
|
|
1
|
+
import { resourceLoader, AssetType, AssetPromise, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, Loader, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, request, ContentRestorer, IndexFormat, VertexElementFormat, Utils, AnimationClip, InterpolationType, AnimationFloatArrayCurve, Keyframe, AnimationQuaternionCurve, AnimationVector3Curve, SkinnedMeshRenderer, Transform, Entity, PBRMaterial, Logger, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, BlendShape, ModelMesh, Camera, Animator, BlinnPhongMaterial, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, Texture2D, ReferResource, TextureFormat, Material, Shader, DirectLight, ParticleRenderer, PointLight, SpotLight, Script, SpriteMask, SpriteRenderer, TextRenderer, AnimationEvent, AnimationColorCurve, AnimationVector4Curve, AnimationVector2Curve, AnimationArrayCurve, AnimationFloatCurve, Scene, SpriteAtlas, Sprite, BackgroundMode, UnlitMaterial } from '@galacean/engine-core';
|
|
2
2
|
import { SphericalHarmonics3, Vector2, Vector3, Vector4, Color, Quaternion, Matrix, Rect } from '@galacean/engine-math';
|
|
3
3
|
import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
|
|
4
4
|
import { DRACODecoder } from '@galacean/engine-draco';
|
|
@@ -1623,6 +1623,10 @@ var GLTFEntityParser = /*#__PURE__*/ function(GLTFParser) {
|
|
|
1623
1623
|
}
|
|
1624
1624
|
glTFResource.sceneRoots = sceneRoots;
|
|
1625
1625
|
glTFResource.defaultSceneRoot = sceneRoots[sceneID];
|
|
1626
|
+
// @ts-ignore
|
|
1627
|
+
glTFResource.defaultSceneRoot._hookResource = glTFResource;
|
|
1628
|
+
// @ts-ignore
|
|
1629
|
+
glTFResource._addReferCount(1);
|
|
1626
1630
|
};
|
|
1627
1631
|
return GLTFEntityParser;
|
|
1628
1632
|
}(GLTFParser);
|
|
@@ -1819,21 +1823,31 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1819
1823
|
var vertexCount;
|
|
1820
1824
|
var bufferBindIndex = 0;
|
|
1821
1825
|
var positions;
|
|
1822
|
-
|
|
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
|
+
}
|
|
1823
1833
|
for(var attribute in attributes){
|
|
1824
1834
|
var accessor = accessors[attributes[attribute]];
|
|
1825
1835
|
var accessorBuffer = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor);
|
|
1826
1836
|
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1827
|
-
var
|
|
1837
|
+
var accessorCount = accessor.count;
|
|
1828
1838
|
var vertices = accessorBuffer.data;
|
|
1829
1839
|
var vertexElement = void 0;
|
|
1830
1840
|
var meshId = mesh.instanceId;
|
|
1831
1841
|
var vertexBindingInfos = accessorBuffer.vertexBindingInfos;
|
|
1832
|
-
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;
|
|
1833
1847
|
if (accessorBuffer.interleaved) {
|
|
1834
1848
|
var byteOffset = accessor.byteOffset || 0;
|
|
1835
1849
|
var stride = accessorBuffer.stride;
|
|
1836
|
-
|
|
1850
|
+
elementOffset = byteOffset % stride;
|
|
1837
1851
|
if (vertexBindingInfos[meshId] === undefined) {
|
|
1838
1852
|
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1839
1853
|
var vertexBuffer = accessorBuffer.vertexBuffer;
|
|
@@ -1849,7 +1863,8 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1849
1863
|
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, vertexBindingInfos[meshId]);
|
|
1850
1864
|
}
|
|
1851
1865
|
} else {
|
|
1852
|
-
|
|
1866
|
+
elementOffset = 0;
|
|
1867
|
+
vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
|
|
1853
1868
|
var vertexBuffer1 = new Buffer(engine, BufferBindFlag.VertexBuffer, vertices.byteLength, BufferUsage.Static);
|
|
1854
1869
|
vertexBuffer1.setData(vertices);
|
|
1855
1870
|
meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer1, accessorBuffer.restoreInfo));
|
|
@@ -1858,35 +1873,61 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1858
1873
|
}
|
|
1859
1874
|
vertexElements.push(vertexElement);
|
|
1860
1875
|
if (attribute === "POSITION") {
|
|
1861
|
-
vertexCount =
|
|
1876
|
+
vertexCount = accessorCount;
|
|
1862
1877
|
var _mesh_bounds = mesh.bounds, min = _mesh_bounds.min, max = _mesh_bounds.max;
|
|
1863
1878
|
if (accessor.min && accessor.max) {
|
|
1864
1879
|
min.copyFromArray(accessor.min);
|
|
1865
1880
|
max.copyFromArray(accessor.max);
|
|
1866
1881
|
if (keepMeshData) {
|
|
1867
|
-
var
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
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 Vector3(vertices[offset], vertices[offset + 1], vertices[offset + 2]);
|
|
1887
|
+
elementNormalized && position.scale(scaleFactor);
|
|
1888
|
+
positions[j] = position;
|
|
1871
1889
|
}
|
|
1872
1890
|
}
|
|
1873
1891
|
} else {
|
|
1874
|
-
var
|
|
1892
|
+
var position1 = GLTFMeshParser._tempVector3;
|
|
1875
1893
|
min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
1876
1894
|
max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
1877
|
-
var
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
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
|
+
Vector3.min(min, position1, min);
|
|
1901
|
+
Vector3.max(max, position1, max);
|
|
1902
|
+
if (keepMeshData) {
|
|
1903
|
+
var clonePosition = position1.clone();
|
|
1904
|
+
elementNormalized && clonePosition.scale(scaleFactor);
|
|
1905
|
+
positions[j1] = clonePosition;
|
|
1906
|
+
}
|
|
1883
1907
|
}
|
|
1884
1908
|
}
|
|
1885
|
-
if (
|
|
1886
|
-
var scaleFactor = GLTFUtils.getNormalizedComponentScale(accessor.componentType);
|
|
1909
|
+
if (elementNormalized) {
|
|
1887
1910
|
min.scale(scaleFactor);
|
|
1888
1911
|
max.scale(scaleFactor);
|
|
1889
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 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 Vector4(vertices[offset3], vertices[offset3 + 1], vertices[offset3 + 2], vertices[offset3 + 3]);
|
|
1928
|
+
elementNormalized && boneWeight.scale(scaleFactor);
|
|
1929
|
+
boneWeights[j3] = boneWeight;
|
|
1930
|
+
}
|
|
1890
1931
|
}
|
|
1891
1932
|
}
|
|
1892
1933
|
mesh.setVertexElements(vertexElements);
|
|
@@ -1905,6 +1946,10 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1905
1946
|
mesh.uploadData(!keepMeshData);
|
|
1906
1947
|
//@ts-ignore
|
|
1907
1948
|
mesh._positions = positions;
|
|
1949
|
+
//@ts-ignore
|
|
1950
|
+
mesh._boneIndices = boneIndices;
|
|
1951
|
+
//@ts-ignore
|
|
1952
|
+
mesh._boneWeights = boneWeights;
|
|
1908
1953
|
return Promise.resolve(mesh);
|
|
1909
1954
|
};
|
|
1910
1955
|
/**
|
|
@@ -1995,14 +2040,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
1995
2040
|
camera.enabled = false;
|
|
1996
2041
|
};
|
|
1997
2042
|
_proto._createRenderer = function _createRenderer(context, glTFNode, entity) {
|
|
1998
|
-
var
|
|
1999
|
-
var glTFMeshes = glTF.meshes;
|
|
2000
|
-
var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
|
|
2001
|
-
var meshID = glTFNode.mesh, skinID = glTFNode.skin;
|
|
2002
|
-
var glTFMesh = glTFMeshes[meshID];
|
|
2003
|
-
var glTFMeshPrimitives = glTFMesh.primitives;
|
|
2004
|
-
var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
|
|
2005
|
-
for(var i = 0; i < glTFMeshPrimitives.length; i++){
|
|
2043
|
+
var _loop = function(i) {
|
|
2006
2044
|
var gltfPrimitive = glTFMeshPrimitives[i];
|
|
2007
2045
|
var mesh = meshes[meshID][i];
|
|
2008
2046
|
var renderer = void 0;
|
|
@@ -2024,8 +2062,22 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
2024
2062
|
var materialIndex = gltfPrimitive.material;
|
|
2025
2063
|
var material = (materials == null ? void 0 : materials[materialIndex]) || GLTFSceneParser._getDefaultMaterial(engine);
|
|
2026
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
|
+
});
|
|
2027
2071
|
GLTFParser.executeExtensionsAdditiveAndParse(gltfPrimitive.extensions, context, renderer, gltfPrimitive);
|
|
2028
|
-
}
|
|
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);
|
|
2029
2081
|
};
|
|
2030
2082
|
_proto._createAnimator = function _createAnimator(context) {
|
|
2031
2083
|
if (!context.hasSkinned && !context.glTFResource.animations) {
|
|
@@ -2314,31 +2366,16 @@ var GLTFValidator = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
2314
2366
|
|
|
2315
2367
|
/**
|
|
2316
2368
|
* Product after glTF parser, usually, `defaultSceneRoot` is only needed to use.
|
|
2317
|
-
*/ var GLTFResource = /*#__PURE__*/ function(
|
|
2318
|
-
_inherits(GLTFResource,
|
|
2369
|
+
*/ var GLTFResource = /*#__PURE__*/ function(ReferResource) {
|
|
2370
|
+
_inherits(GLTFResource, ReferResource);
|
|
2319
2371
|
function GLTFResource(engine, url) {
|
|
2320
2372
|
var _this;
|
|
2321
|
-
_this =
|
|
2373
|
+
_this = ReferResource.call(this, engine) || this;
|
|
2322
2374
|
_this.url = url;
|
|
2323
2375
|
return _this;
|
|
2324
2376
|
}
|
|
2325
|
-
var _proto = GLTFResource.prototype;
|
|
2326
|
-
_proto._onDestroy = function _onDestroy() {
|
|
2327
|
-
EngineObject.prototype._onDestroy.call(this);
|
|
2328
|
-
this.defaultSceneRoot.destroy();
|
|
2329
|
-
this.textures = null;
|
|
2330
|
-
this.materials = null;
|
|
2331
|
-
this.meshes = null;
|
|
2332
|
-
this.skins = null;
|
|
2333
|
-
this.animations = null;
|
|
2334
|
-
this.entities = null;
|
|
2335
|
-
this.cameras = null;
|
|
2336
|
-
this.lights = null;
|
|
2337
|
-
this.sceneRoots = null;
|
|
2338
|
-
this.extensionsData = null;
|
|
2339
|
-
};
|
|
2340
2377
|
return GLTFResource;
|
|
2341
|
-
}(
|
|
2378
|
+
}(ReferResource);
|
|
2342
2379
|
|
|
2343
2380
|
var GLTFLoader = /*#__PURE__*/ function(Loader) {
|
|
2344
2381
|
_inherits(GLTFLoader, Loader);
|
|
@@ -2971,6 +3008,15 @@ KTXLoader = __decorate([
|
|
|
2971
3008
|
])
|
|
2972
3009
|
], KTXLoader);
|
|
2973
3010
|
|
|
3011
|
+
function parseProperty(object, key, value) {
|
|
3012
|
+
if (typeof value === "object") {
|
|
3013
|
+
for(var subKey in value){
|
|
3014
|
+
parseProperty(object[key], subKey, value[subKey]);
|
|
3015
|
+
}
|
|
3016
|
+
} else {
|
|
3017
|
+
object[key] = value;
|
|
3018
|
+
}
|
|
3019
|
+
}
|
|
2974
3020
|
var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
2975
3021
|
_inherits(MaterialLoader, Loader);
|
|
2976
3022
|
function MaterialLoader() {
|
|
@@ -2982,7 +3028,7 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
2982
3028
|
return new AssetPromise(function(resolve, reject) {
|
|
2983
3029
|
_this.request(item.url, _extends({}, item, {
|
|
2984
3030
|
type: "json"
|
|
2985
|
-
})).then(function(
|
|
3031
|
+
})).then(function(materialSchema) {
|
|
2986
3032
|
var _loop = function(key) {
|
|
2987
3033
|
var _shaderData_key = shaderData[key], type = _shaderData_key.type, value = _shaderData_key.value;
|
|
2988
3034
|
switch(type){
|
|
@@ -3010,27 +3056,8 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
3010
3056
|
}
|
|
3011
3057
|
};
|
|
3012
3058
|
var engine = resourceManager.engine;
|
|
3013
|
-
var name =
|
|
3014
|
-
var material;
|
|
3015
|
-
switch(shader){
|
|
3016
|
-
case "pbr":
|
|
3017
|
-
material = new PBRMaterial(engine);
|
|
3018
|
-
break;
|
|
3019
|
-
case "pbr-specular":
|
|
3020
|
-
material = new PBRSpecularMaterial(engine);
|
|
3021
|
-
break;
|
|
3022
|
-
case "unlit":
|
|
3023
|
-
material = new UnlitMaterial(engine);
|
|
3024
|
-
break;
|
|
3025
|
-
case "blinn-phong":
|
|
3026
|
-
material = new BlinnPhongMaterial(engine);
|
|
3027
|
-
break;
|
|
3028
|
-
case "bake-pbr":
|
|
3029
|
-
// @todo refactor custom shader later
|
|
3030
|
-
// @ts-ignore
|
|
3031
|
-
material = new PBRBaseMaterial(engine, Shader.find("bake-pbr"));
|
|
3032
|
-
break;
|
|
3033
|
-
}
|
|
3059
|
+
var name = materialSchema.name, shader = materialSchema.shader, shaderData = materialSchema.shaderData, macros = materialSchema.macros, renderState = materialSchema.renderState;
|
|
3060
|
+
var material = new Material(engine, Shader.find(shader));
|
|
3034
3061
|
material.name = name;
|
|
3035
3062
|
var texturePromises = new Array();
|
|
3036
3063
|
var materialShaderData = material.shaderData;
|
|
@@ -3043,9 +3070,7 @@ var MaterialLoader = /*#__PURE__*/ function(Loader) {
|
|
|
3043
3070
|
materialShaderData.enableMacro(name1, value);
|
|
3044
3071
|
}
|
|
3045
3072
|
}
|
|
3046
|
-
|
|
3047
|
-
material[key1] = renderState[key1];
|
|
3048
|
-
}
|
|
3073
|
+
parseProperty(material, "renderState", renderState);
|
|
3049
3074
|
return Promise.all(texturePromises).then(function() {
|
|
3050
3075
|
resolve(material);
|
|
3051
3076
|
});
|
|
@@ -3800,6 +3825,12 @@ AnimationClipDecoder = __decorate([
|
|
|
3800
3825
|
decoder("AnimationClip")
|
|
3801
3826
|
], AnimationClipDecoder);
|
|
3802
3827
|
|
|
3828
|
+
var SpecularMode;
|
|
3829
|
+
(function(SpecularMode) {
|
|
3830
|
+
SpecularMode["Sky"] = "Sky";
|
|
3831
|
+
SpecularMode["Custom"] = "Custom";
|
|
3832
|
+
})(SpecularMode || (SpecularMode = {}));
|
|
3833
|
+
|
|
3803
3834
|
var SceneParserContext = /*#__PURE__*/ function() {
|
|
3804
3835
|
function SceneParserContext(originalData, scene) {
|
|
3805
3836
|
this.originalData = originalData;
|
|
@@ -4082,7 +4113,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4082
4113
|
var atlasItem = atlasItems[i];
|
|
4083
4114
|
if (atlasItem.img) {
|
|
4084
4115
|
chainPromises.push(resourceManager.load({
|
|
4085
|
-
url: atlasItem.img,
|
|
4116
|
+
url: Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
|
|
4086
4117
|
type: AssetType.Texture2D,
|
|
4087
4118
|
params: {
|
|
4088
4119
|
format: format,
|
|
@@ -4358,47 +4389,63 @@ var SceneLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4358
4389
|
// @ts-ignore
|
|
4359
4390
|
engine.resourceManager.initVirtualResources(data.files);
|
|
4360
4391
|
return SceneParser.parse(engine, data).then(function(scene) {
|
|
4392
|
+
var promises = [];
|
|
4361
4393
|
// parse ambient light
|
|
4362
4394
|
var ambient = data.scene.ambient;
|
|
4363
|
-
var
|
|
4364
|
-
if (ambient.
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4395
|
+
var useCustomAmbient = ambient.specularMode === "Custom";
|
|
4396
|
+
if (useCustomAmbient && ambient.customAmbientLight) {
|
|
4397
|
+
// @ts-ignore
|
|
4398
|
+
// prettier-ignore
|
|
4399
|
+
var customAmbientPromise = resourceManager.getResourceByRef(ambient.customAmbientLight).then(function(ambientLight) {
|
|
4400
|
+
scene.ambientLight = ambientLight;
|
|
4368
4401
|
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
4369
4402
|
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
4403
|
+
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
4404
|
+
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
4370
4405
|
});
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
|
|
4406
|
+
promises.push(customAmbientPromise);
|
|
4407
|
+
} else if (!useCustomAmbient && ambient.ambientLight) {
|
|
4408
|
+
// @ts-ignore
|
|
4409
|
+
// prettier-ignore
|
|
4410
|
+
var ambientLightPromise = resourceManager.getResourceByRef(ambient.ambientLight).then(function(ambientLight) {
|
|
4411
|
+
scene.ambientLight = ambientLight;
|
|
4412
|
+
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
4413
|
+
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
4414
|
+
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
4415
|
+
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
4416
|
+
});
|
|
4417
|
+
promises.push(ambientLightPromise);
|
|
4375
4418
|
}
|
|
4376
4419
|
var background = data.scene.background;
|
|
4377
4420
|
scene.background.mode = background.mode;
|
|
4378
|
-
var backgroundPromise = Promise.resolve();
|
|
4379
4421
|
switch(scene.background.mode){
|
|
4380
4422
|
case BackgroundMode.SolidColor:
|
|
4381
4423
|
scene.background.solidColor.copyFrom(background.color);
|
|
4382
4424
|
break;
|
|
4383
4425
|
case BackgroundMode.Sky:
|
|
4384
|
-
if (background.
|
|
4426
|
+
if (background.skyMesh && background.skyMaterial) {
|
|
4385
4427
|
// @ts-ignore
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
var skyMaterial = new SkyBoxMaterial(engine);
|
|
4389
|
-
skyMaterial.texture = light.specularTexture;
|
|
4390
|
-
skyMaterial.textureDecodeRGBM = true;
|
|
4391
|
-
sky.material = skyMaterial;
|
|
4392
|
-
sky.mesh = PrimitiveMesh.createCuboid(engine, 1, 1, 1);
|
|
4428
|
+
var skyMeshPromise = resourceManager.getResourceByRef(background.skyMesh).then(function(mesh) {
|
|
4429
|
+
scene.background.sky.mesh = mesh;
|
|
4393
4430
|
});
|
|
4431
|
+
// @ts-ignore
|
|
4432
|
+
// prettier-ignore
|
|
4433
|
+
var skyMaterialPromise = resourceManager.getResourceByRef(background.skyMaterial).then(function(material) {
|
|
4434
|
+
scene.background.sky.material = material;
|
|
4435
|
+
});
|
|
4436
|
+
promises.push(skyMeshPromise, skyMaterialPromise);
|
|
4437
|
+
} else {
|
|
4438
|
+
Logger.warn("Sky background mode requires skyMesh and skyMaterial");
|
|
4394
4439
|
}
|
|
4395
4440
|
break;
|
|
4396
4441
|
case BackgroundMode.Texture:
|
|
4397
4442
|
if (background.texture) {
|
|
4398
4443
|
// @ts-ignore
|
|
4399
|
-
|
|
4444
|
+
// prettier-ignore
|
|
4445
|
+
var backgroundPromise = resourceManager.getResourceByRef(background.texture).then(function(texture) {
|
|
4400
4446
|
scene.background.texture = texture;
|
|
4401
4447
|
});
|
|
4448
|
+
promises.push(backgroundPromise);
|
|
4402
4449
|
}
|
|
4403
4450
|
break;
|
|
4404
4451
|
}
|
|
@@ -4410,10 +4457,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader) {
|
|
|
4410
4457
|
if (shadow.shadowDistance != undefined) scene.shadowDistance = shadow.shadowDistance;
|
|
4411
4458
|
if (shadow.shadowCascades != undefined) scene.shadowCascades = shadow.shadowCascades;
|
|
4412
4459
|
}
|
|
4413
|
-
return Promise.all(
|
|
4414
|
-
ambientLightPromise,
|
|
4415
|
-
backgroundPromise
|
|
4416
|
-
]).then(function() {
|
|
4460
|
+
return Promise.all(promises).then(function() {
|
|
4417
4461
|
resolve(scene);
|
|
4418
4462
|
});
|
|
4419
4463
|
});
|
|
@@ -4673,6 +4717,22 @@ KHR_materials_clearcoat = __decorate([
|
|
|
4673
4717
|
registerGLTFExtension("KHR_materials_clearcoat", GLTFExtensionMode.AdditiveParse)
|
|
4674
4718
|
], KHR_materials_clearcoat);
|
|
4675
4719
|
|
|
4720
|
+
var KHR_materials_ior = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
4721
|
+
_inherits(KHR_materials_ior, GLTFExtensionParser);
|
|
4722
|
+
function KHR_materials_ior() {
|
|
4723
|
+
return GLTFExtensionParser.apply(this, arguments);
|
|
4724
|
+
}
|
|
4725
|
+
var _proto = KHR_materials_ior.prototype;
|
|
4726
|
+
_proto.additiveParse = function additiveParse(context, material, schema) {
|
|
4727
|
+
var _schema_ior = schema.ior, ior = _schema_ior === void 0 ? 1.5 : _schema_ior;
|
|
4728
|
+
material.ior = ior;
|
|
4729
|
+
};
|
|
4730
|
+
return KHR_materials_ior;
|
|
4731
|
+
}(GLTFExtensionParser);
|
|
4732
|
+
KHR_materials_ior = __decorate([
|
|
4733
|
+
registerGLTFExtension("KHR_materials_ior", GLTFExtensionMode.AdditiveParse)
|
|
4734
|
+
], KHR_materials_ior);
|
|
4735
|
+
|
|
4676
4736
|
var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionParser) {
|
|
4677
4737
|
_inherits(KHR_materials_pbrSpecularGlossiness, GLTFExtensionParser);
|
|
4678
4738
|
function KHR_materials_pbrSpecularGlossiness() {
|
|
@@ -4809,5 +4869,5 @@ GALACEAN_animation_event = __decorate([
|
|
|
4809
4869
|
registerGLTFExtension("GALACEAN_animation_event", GLTFExtensionMode.AdditiveParse)
|
|
4810
4870
|
], GALACEAN_animation_event);
|
|
4811
4871
|
|
|
4812
|
-
export { AnimationClipDecoder, ComponentMap, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFPipeline, GLTFResource, GLTFSceneParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, MeshDecoder, MeshLoader$1 as MeshLoader, PrefabParser, ReflectionParser, SceneParser, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension };
|
|
4872
|
+
export { AnimationClipDecoder, ComponentMap, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFPipeline, GLTFResource, GLTFSceneParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, MeshDecoder, MeshLoader$1 as MeshLoader, PrefabParser, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension };
|
|
4813
4873
|
//# sourceMappingURL=module.js.map
|