@galacean/engine-loader 1.1.0-beta.4 → 1.1.0-beta.45
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 +393 -256
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +393 -256
- package/dist/module.js +395 -258
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
- package/types/GLTFLoader.d.ts +1 -0
- package/types/PrimitiveMeshLoader.d.ts +1 -0
- package/types/Texture2DLoader.d.ts +9 -1
- package/types/gltf/extensions/EXT_meshopt_compression.d.ts +13 -0
- package/types/gltf/extensions/KHR_materials_anisotropy.d.ts +1 -0
- package/types/gltf/extensions/MeshoptDecoder.d.ts +8 -0
- package/types/gltf/parser/GLTFBufferViewParser.d.ts +5 -0
- package/types/gltf/parser/GLTFParserContext.d.ts +4 -2
- package/types/gltf/parser/GLTFSceneParser.d.ts +0 -1
- package/types/index.d.ts +2 -1
- package/types/ktx2/KTX2Loader.d.ts +16 -5
- package/types/ktx2/transcoder/AbstractTranscoder.d.ts +1 -1
- package/types/ktx2/transcoder/BinomialLLCTranscoder.d.ts +1 -1
- package/types/ktx2/transcoder/BinomialLLCWorkerCode.d.ts +1 -1
- package/types/resource-deserialize/resources/parser/HierarchyParser.d.ts +36 -0
- package/types/resource-deserialize/resources/parser/ParserContext.d.ts +29 -0
- package/types/resource-deserialize/resources/parser/ReflectionParser.d.ts +12 -8
- package/types/resource-deserialize/resources/prefab/PrefabParser.d.ts +13 -4
- package/types/resource-deserialize/resources/prefab/PrefabParserContext.d.ts +5 -0
- package/types/resource-deserialize/resources/scene/SceneParser.d.ts +1 -0
- package/types/resource-deserialize/resources/scene/SceneParserContext.d.ts +3 -1
- package/types/resource-deserialize/resources/schema/BasicSchema.d.ts +20 -15
- package/types/resource-deserialize/resources/schema/MaterialSchema.d.ts +1 -1
- package/types/resource-deserialize/resources/schema/SceneSchema.d.ts +3 -1
- package/types/resource-deserialize/utils/BufferReader.d.ts +1 -1
package/dist/module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Utils, ModelMesh, BlendShape, Texture2D,
|
|
1
|
+
import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, Transform, Animator, DirectLight, Camera, MeshRenderer, ParticleRenderer, PointLight, SpotLight, Script, SpriteMask, SpriteRenderer, TextRenderer, AnimationClip, AnimationEvent, AnimationRefCurve, Keyframe, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, ReferResource, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Skin, TextureWrapMode as TextureWrapMode$1, Material, Shader, SpriteAtlas, Sprite, BackgroundMode, UnlitMaterial } from '@galacean/engine-core';
|
|
2
2
|
import { Color, Vector4, Vector3, Vector2, Quaternion, SphericalHarmonics3, MathUtil, BoundingBox, Matrix, Rect } from '@galacean/engine-math';
|
|
3
3
|
import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
|
|
4
4
|
import { DRACODecoder } from '@galacean/engine-draco';
|
|
@@ -116,116 +116,116 @@ var BufferReader = /*#__PURE__*/ function() {
|
|
|
116
116
|
this.data = data;
|
|
117
117
|
this._dataView = new DataView(data.buffer, data.byteOffset + byteOffset, byteLength != null ? byteLength : data.byteLength - byteOffset);
|
|
118
118
|
this._littleEndian = littleEndian;
|
|
119
|
-
this.
|
|
119
|
+
this._position = 0;
|
|
120
120
|
this._baseOffset = byteOffset;
|
|
121
121
|
}
|
|
122
122
|
var _proto = BufferReader.prototype;
|
|
123
123
|
_proto.nextUint8 = function nextUint8() {
|
|
124
|
-
var value = this._dataView.getUint8(this.
|
|
125
|
-
this.
|
|
124
|
+
var value = this._dataView.getUint8(this._position);
|
|
125
|
+
this._position += 1;
|
|
126
126
|
return value;
|
|
127
127
|
};
|
|
128
128
|
_proto.nextUint16 = function nextUint16() {
|
|
129
|
-
var value = this._dataView.getUint16(this.
|
|
130
|
-
this.
|
|
129
|
+
var value = this._dataView.getUint16(this._position, this._littleEndian);
|
|
130
|
+
this._position += 2;
|
|
131
131
|
return value;
|
|
132
132
|
};
|
|
133
133
|
_proto.nextUint32 = function nextUint32() {
|
|
134
|
-
var value = this._dataView.getUint32(this.
|
|
135
|
-
this.
|
|
134
|
+
var value = this._dataView.getUint32(this._position, this._littleEndian);
|
|
135
|
+
this._position += 4;
|
|
136
136
|
return value;
|
|
137
137
|
};
|
|
138
138
|
_proto.nextInt32 = function nextInt32() {
|
|
139
|
-
var value = this._dataView.getInt32(this.
|
|
140
|
-
this.
|
|
139
|
+
var value = this._dataView.getInt32(this._position, this._littleEndian);
|
|
140
|
+
this._position += 4;
|
|
141
141
|
return value;
|
|
142
142
|
};
|
|
143
143
|
_proto.nextInt32Array = function nextInt32Array(len) {
|
|
144
|
-
var value = new Int32Array(this.data.buffer, this.
|
|
145
|
-
this.
|
|
144
|
+
var value = new Int32Array(this.data.buffer, this._position + this._dataView.byteOffset, len);
|
|
145
|
+
this._position += 4 * len;
|
|
146
146
|
return value;
|
|
147
147
|
};
|
|
148
148
|
_proto.nextFloat32 = function nextFloat32() {
|
|
149
|
-
var value = this._dataView.getFloat32(this.
|
|
150
|
-
this.
|
|
149
|
+
var value = this._dataView.getFloat32(this._position, this._littleEndian);
|
|
150
|
+
this._position += 4;
|
|
151
151
|
return value;
|
|
152
152
|
};
|
|
153
153
|
_proto.nextFloat32Array = function nextFloat32Array(len) {
|
|
154
|
-
var value = new Float32Array(this.data.buffer, this.
|
|
155
|
-
this.
|
|
154
|
+
var value = new Float32Array(this.data.buffer, this._position + this._dataView.byteOffset, len);
|
|
155
|
+
this._position += 4 * len;
|
|
156
156
|
return value;
|
|
157
157
|
};
|
|
158
158
|
_proto.nextUint32Array = function nextUint32Array(len) {
|
|
159
|
-
var value = new Uint32Array(this.data.buffer, this.
|
|
160
|
-
this.
|
|
159
|
+
var value = new Uint32Array(this.data.buffer, this._position + this._dataView.byteOffset, len);
|
|
160
|
+
this._position += 4 * len;
|
|
161
161
|
return value;
|
|
162
162
|
};
|
|
163
163
|
_proto.nextUint8Array = function nextUint8Array(len) {
|
|
164
|
-
var value = new Uint8Array(this.data.buffer, this.
|
|
165
|
-
this.
|
|
164
|
+
var value = new Uint8Array(this.data.buffer, this._position + this._dataView.byteOffset, len);
|
|
165
|
+
this._position += len;
|
|
166
166
|
return value;
|
|
167
167
|
};
|
|
168
168
|
_proto.nextUint64 = function nextUint64() {
|
|
169
|
-
var left = this._dataView.getUint32(this.
|
|
170
|
-
var right = this._dataView.getUint32(this.
|
|
169
|
+
var left = this._dataView.getUint32(this._position, this._littleEndian);
|
|
170
|
+
var right = this._dataView.getUint32(this._position + 4, this._littleEndian);
|
|
171
171
|
var value = left + Math.pow(2, 32) * right;
|
|
172
|
-
this.
|
|
172
|
+
this._position += 8;
|
|
173
173
|
return value;
|
|
174
174
|
};
|
|
175
175
|
_proto.nextStr = function nextStr() {
|
|
176
176
|
var strByteLength = this.nextUint16();
|
|
177
|
-
var uint8Array = new Uint8Array(this.data.buffer, this.
|
|
178
|
-
this.
|
|
177
|
+
var uint8Array = new Uint8Array(this.data.buffer, this._position + this._dataView.byteOffset, strByteLength);
|
|
178
|
+
this._position += strByteLength;
|
|
179
179
|
return Utils.decodeText(uint8Array);
|
|
180
180
|
};
|
|
181
181
|
/**
|
|
182
182
|
* image data 放在最后
|
|
183
183
|
*/ _proto.nextImageData = function nextImageData(count) {
|
|
184
|
-
return new Uint8Array(this.data.buffer, this.data.byteOffset + this.
|
|
184
|
+
return new Uint8Array(this.data.buffer, this.data.byteOffset + this._position);
|
|
185
185
|
};
|
|
186
186
|
_proto.nextImagesData = function nextImagesData(count) {
|
|
187
187
|
var imagesLen = new Array(count);
|
|
188
188
|
// Start offset of Uint32Array should be a multiple of 4. ref: https://stackoverflow.com/questions/15417310/why-typed-array-constructors-require-offset-to-be-multiple-of-underlying-type-si
|
|
189
189
|
for(var i = 0; i < count; i++){
|
|
190
|
-
var len = this._dataView.getUint32(this.
|
|
190
|
+
var len = this._dataView.getUint32(this._position, this._littleEndian);
|
|
191
191
|
imagesLen[i] = len;
|
|
192
|
-
this.
|
|
192
|
+
this._position += 4;
|
|
193
193
|
}
|
|
194
194
|
var imagesData = [];
|
|
195
195
|
for(var i1 = 0; i1 < count; i1++){
|
|
196
196
|
var len1 = imagesLen[i1];
|
|
197
|
-
var buffer = new Uint8Array(this.data.buffer, this._dataView.byteOffset + this.
|
|
198
|
-
this.
|
|
197
|
+
var buffer = new Uint8Array(this.data.buffer, this._dataView.byteOffset + this._position, len1);
|
|
198
|
+
this._position += len1;
|
|
199
199
|
imagesData.push(buffer);
|
|
200
200
|
}
|
|
201
201
|
return imagesData;
|
|
202
202
|
};
|
|
203
203
|
_proto.skip = function skip(bytes) {
|
|
204
|
-
this.
|
|
204
|
+
this._position += bytes;
|
|
205
205
|
return this;
|
|
206
206
|
};
|
|
207
207
|
_proto.scan = function scan(maxByteLength, term) {
|
|
208
208
|
if (term === void 0) term = 0x00;
|
|
209
|
-
var byteOffset = this.
|
|
209
|
+
var byteOffset = this._position;
|
|
210
210
|
var byteLength = 0;
|
|
211
|
-
while(this._dataView.getUint8(this.
|
|
211
|
+
while(this._dataView.getUint8(this._position) !== term && byteLength < maxByteLength){
|
|
212
212
|
byteLength++;
|
|
213
|
-
this.
|
|
213
|
+
this._position++;
|
|
214
214
|
}
|
|
215
|
-
if (byteLength < maxByteLength) this.
|
|
215
|
+
if (byteLength < maxByteLength) this._position++;
|
|
216
216
|
return new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + byteOffset, byteLength);
|
|
217
217
|
};
|
|
218
218
|
_create_class(BufferReader, [
|
|
219
219
|
{
|
|
220
220
|
key: "position",
|
|
221
221
|
get: function get() {
|
|
222
|
-
return this.
|
|
222
|
+
return this._position;
|
|
223
223
|
}
|
|
224
224
|
},
|
|
225
225
|
{
|
|
226
226
|
key: "offset",
|
|
227
227
|
get: function get() {
|
|
228
|
-
return this.
|
|
228
|
+
return this._position + this._baseOffset;
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
]);
|
|
@@ -289,75 +289,74 @@ var MeshDecoder = /*#__PURE__*/ function() {
|
|
|
289
289
|
var encodedMeshData = JSON.parse(jsonDataString);
|
|
290
290
|
// @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
|
|
291
291
|
encodedMeshData.bounds && modelMesh.bounds.copyFrom(encodedMeshData.bounds);
|
|
292
|
-
var offset = Math.ceil(bufferReader.offset / 4) * 4;
|
|
292
|
+
var offset = Math.ceil(bufferReader.offset / 4) * 4 + bufferReader.data.byteOffset;
|
|
293
293
|
var buffer = bufferReader.data.buffer;
|
|
294
|
-
var
|
|
295
|
-
var float32Array = new Float32Array(buffer, encodedMeshData.positions.start + offset + byteOffset, (encodedMeshData.positions.end - encodedMeshData.positions.start) / 4);
|
|
294
|
+
var float32Array = new Float32Array(buffer, encodedMeshData.positions.start + offset, (encodedMeshData.positions.end - encodedMeshData.positions.start) / 4);
|
|
296
295
|
var vertexCount = float32Array.length / 3;
|
|
297
296
|
var positions = float32ArrayToVector3(float32Array, vertexCount);
|
|
298
297
|
modelMesh.setPositions(positions);
|
|
299
298
|
if (encodedMeshData.normals) {
|
|
300
|
-
var float32Array1 = new Float32Array(buffer, encodedMeshData.normals.start + offset
|
|
299
|
+
var float32Array1 = new Float32Array(buffer, encodedMeshData.normals.start + offset, (encodedMeshData.normals.end - encodedMeshData.normals.start) / 4);
|
|
301
300
|
var normals = float32ArrayToVector3(float32Array1, vertexCount);
|
|
302
301
|
modelMesh.setNormals(normals);
|
|
303
302
|
}
|
|
304
303
|
if (encodedMeshData.uvs) {
|
|
305
|
-
var float32Array2 = new Float32Array(buffer, encodedMeshData.uvs.start + offset
|
|
304
|
+
var float32Array2 = new Float32Array(buffer, encodedMeshData.uvs.start + offset, (encodedMeshData.uvs.end - encodedMeshData.uvs.start) / 4);
|
|
306
305
|
modelMesh.setUVs(float32ArrayToVector2(float32Array2, vertexCount));
|
|
307
306
|
}
|
|
308
307
|
if (encodedMeshData.uv1) {
|
|
309
|
-
var float32Array3 = new Float32Array(buffer, encodedMeshData.uv1.start + offset
|
|
308
|
+
var float32Array3 = new Float32Array(buffer, encodedMeshData.uv1.start + offset, (encodedMeshData.uv1.end - encodedMeshData.uv1.start) / 4);
|
|
310
309
|
modelMesh.setUVs(float32ArrayToVector2(float32Array3, vertexCount), 1);
|
|
311
310
|
}
|
|
312
311
|
if (encodedMeshData.uv2) {
|
|
313
|
-
var float32Array4 = new Float32Array(buffer, encodedMeshData.uv2.start + offset
|
|
312
|
+
var float32Array4 = new Float32Array(buffer, encodedMeshData.uv2.start + offset, (encodedMeshData.uv2.end - encodedMeshData.uv2.start) / 4);
|
|
314
313
|
modelMesh.setUVs(float32ArrayToVector2(float32Array4, vertexCount), 2);
|
|
315
314
|
}
|
|
316
315
|
if (encodedMeshData.uv3) {
|
|
317
|
-
var float32Array5 = new Float32Array(buffer, encodedMeshData.uv3.start + offset
|
|
316
|
+
var float32Array5 = new Float32Array(buffer, encodedMeshData.uv3.start + offset, (encodedMeshData.uv3.end - encodedMeshData.uv3.start) / 4);
|
|
318
317
|
modelMesh.setUVs(float32ArrayToVector2(float32Array5, vertexCount), 3);
|
|
319
318
|
}
|
|
320
319
|
if (encodedMeshData.uv4) {
|
|
321
|
-
var float32Array6 = new Float32Array(buffer, encodedMeshData.uv4.start + offset
|
|
320
|
+
var float32Array6 = new Float32Array(buffer, encodedMeshData.uv4.start + offset, (encodedMeshData.uv4.end - encodedMeshData.uv4.start) / 4);
|
|
322
321
|
modelMesh.setUVs(float32ArrayToVector2(float32Array6, vertexCount), 4);
|
|
323
322
|
}
|
|
324
323
|
if (encodedMeshData.uv5) {
|
|
325
|
-
var float32Array7 = new Float32Array(buffer, encodedMeshData.uv5.start + offset
|
|
324
|
+
var float32Array7 = new Float32Array(buffer, encodedMeshData.uv5.start + offset, (encodedMeshData.uv5.end - encodedMeshData.uv5.start) / 4);
|
|
326
325
|
modelMesh.setUVs(float32ArrayToVector2(float32Array7, vertexCount), 5);
|
|
327
326
|
}
|
|
328
327
|
if (encodedMeshData.uv6) {
|
|
329
|
-
var float32Array8 = new Float32Array(buffer, encodedMeshData.uv6.start + offset
|
|
328
|
+
var float32Array8 = new Float32Array(buffer, encodedMeshData.uv6.start + offset, (encodedMeshData.uv6.end - encodedMeshData.uv6.start) / 4);
|
|
330
329
|
modelMesh.setUVs(float32ArrayToVector2(float32Array8, vertexCount), 6);
|
|
331
330
|
}
|
|
332
331
|
if (encodedMeshData.uv7) {
|
|
333
|
-
var float32Array9 = new Float32Array(buffer, encodedMeshData.uv7.start + offset
|
|
332
|
+
var float32Array9 = new Float32Array(buffer, encodedMeshData.uv7.start + offset, (encodedMeshData.uv7.end - encodedMeshData.uv7.start) / 4);
|
|
334
333
|
modelMesh.setUVs(float32ArrayToVector2(float32Array9, vertexCount), 7);
|
|
335
334
|
}
|
|
336
335
|
if (encodedMeshData.colors) {
|
|
337
|
-
var float32Array10 = new Float32Array(buffer, encodedMeshData.colors.start + offset
|
|
336
|
+
var float32Array10 = new Float32Array(buffer, encodedMeshData.colors.start + offset, (encodedMeshData.colors.end - encodedMeshData.colors.start) / 4);
|
|
338
337
|
modelMesh.setColors(float32ArrayToVColor(float32Array10, vertexCount));
|
|
339
338
|
}
|
|
340
339
|
if (encodedMeshData.boneWeights) {
|
|
341
|
-
var float32Array11 = new Float32Array(buffer, encodedMeshData.boneWeights.start + offset
|
|
340
|
+
var float32Array11 = new Float32Array(buffer, encodedMeshData.boneWeights.start + offset, (encodedMeshData.boneWeights.end - encodedMeshData.boneWeights.start) / 4);
|
|
342
341
|
modelMesh.setBoneWeights(float32ArrayToVector4(float32Array11, vertexCount));
|
|
343
342
|
}
|
|
344
343
|
if (encodedMeshData.boneIndices) {
|
|
345
|
-
var float32Array12 = new Float32Array(buffer, encodedMeshData.boneIndices.start + offset
|
|
344
|
+
var float32Array12 = new Float32Array(buffer, encodedMeshData.boneIndices.start + offset, (encodedMeshData.boneIndices.end - encodedMeshData.boneIndices.start) / 4);
|
|
346
345
|
modelMesh.setBoneIndices(float32ArrayToVector4(float32Array12, vertexCount));
|
|
347
346
|
}
|
|
348
347
|
if (encodedMeshData.blendShapes) {
|
|
349
348
|
encodedMeshData.blendShapes.forEach(function(blendShapeData) {
|
|
350
349
|
var blendShape = new BlendShape(blendShapeData.name);
|
|
351
350
|
blendShapeData.frames.forEach(function(frameData) {
|
|
352
|
-
var positionArray = new Float32Array(buffer, frameData.deltaPosition.start + offset
|
|
351
|
+
var positionArray = new Float32Array(buffer, frameData.deltaPosition.start + offset, (frameData.deltaPosition.end - frameData.deltaPosition.start) / 4);
|
|
353
352
|
var count = positionArray.length / 3;
|
|
354
353
|
var deltaPosition = float32ArrayToVector3(positionArray, count);
|
|
355
354
|
if (frameData.deltaNormals) {
|
|
356
|
-
var normalsArray = new Float32Array(buffer, frameData.deltaNormals.start + offset
|
|
355
|
+
var normalsArray = new Float32Array(buffer, frameData.deltaNormals.start + offset, (frameData.deltaNormals.end - frameData.deltaNormals.start) / 4);
|
|
357
356
|
float32ArrayToVector3(normalsArray, count);
|
|
358
357
|
}
|
|
359
358
|
if (frameData.deltaTangents) {
|
|
360
|
-
var tangentsArray = new Float32Array(buffer, frameData.deltaTangents.start + offset
|
|
359
|
+
var tangentsArray = new Float32Array(buffer, frameData.deltaTangents.start + offset, (frameData.deltaTangents.end - frameData.deltaTangents.start) / 4);
|
|
361
360
|
float32ArrayToVector4(tangentsArray, count);
|
|
362
361
|
}
|
|
363
362
|
blendShape.addFrame(frameData.weight, deltaPosition);
|
|
@@ -368,9 +367,9 @@ var MeshDecoder = /*#__PURE__*/ function() {
|
|
|
368
367
|
if (encodedMeshData.indices) {
|
|
369
368
|
var indices = null;
|
|
370
369
|
if (encodedMeshData.indices.type === 0) {
|
|
371
|
-
indices = new Uint16Array(buffer, encodedMeshData.indices.start + offset
|
|
370
|
+
indices = new Uint16Array(buffer, encodedMeshData.indices.start + offset, (encodedMeshData.indices.end - encodedMeshData.indices.start) / 2);
|
|
372
371
|
} else {
|
|
373
|
-
indices = new Uint32Array(buffer, encodedMeshData.indices.start + offset
|
|
372
|
+
indices = new Uint32Array(buffer, encodedMeshData.indices.start + offset, (encodedMeshData.indices.end - encodedMeshData.indices.start) / 4);
|
|
374
373
|
}
|
|
375
374
|
modelMesh.setIndices(indices);
|
|
376
375
|
}
|
|
@@ -523,87 +522,50 @@ function _construct(Parent, args, Class) {
|
|
|
523
522
|
}
|
|
524
523
|
|
|
525
524
|
var ReflectionParser = /*#__PURE__*/ function() {
|
|
526
|
-
function ReflectionParser() {
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
return
|
|
525
|
+
function ReflectionParser(_context) {
|
|
526
|
+
this._context = _context;
|
|
527
|
+
}
|
|
528
|
+
var _proto = ReflectionParser.prototype;
|
|
529
|
+
_proto.parseEntity = function parseEntity(entityConfig) {
|
|
530
|
+
return this._getEntityByConfig(entityConfig).then(function(entity) {
|
|
532
531
|
var _entityConfig_isActive;
|
|
533
532
|
entity.isActive = (_entityConfig_isActive = entityConfig.isActive) != null ? _entityConfig_isActive : true;
|
|
534
533
|
var position = entityConfig.position, rotation = entityConfig.rotation, scale = entityConfig.scale;
|
|
535
534
|
if (position) entity.transform.position.copyFrom(position);
|
|
536
535
|
if (rotation) entity.transform.rotation.copyFrom(rotation);
|
|
537
536
|
if (scale) entity.transform.scale.copyFrom(scale);
|
|
537
|
+
var _entityConfig_layer;
|
|
538
|
+
entity.layer = (_entityConfig_layer = entityConfig.layer) != null ? _entityConfig_layer : entity.layer;
|
|
538
539
|
return entity;
|
|
539
540
|
});
|
|
540
541
|
};
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
var assetRefId = entityConfig.assetRefId;
|
|
544
|
-
if (assetRefId) {
|
|
545
|
-
return engine.resourceManager// @ts-ignore
|
|
546
|
-
.getResourceByRef({
|
|
547
|
-
refId: assetRefId,
|
|
548
|
-
key: entityConfig.key,
|
|
549
|
-
isClone: entityConfig.isClone
|
|
550
|
-
}).then(function(entity) {
|
|
551
|
-
entity.name = entityConfig.name;
|
|
552
|
-
return entity;
|
|
553
|
-
});
|
|
554
|
-
} else {
|
|
555
|
-
var entity = new Entity(engine, entityConfig.name);
|
|
556
|
-
return Promise.resolve(entity);
|
|
557
|
-
}
|
|
558
|
-
};
|
|
559
|
-
ReflectionParser.parseClassObject = function parseClassObject(item, engine, resourceManager) {
|
|
560
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
542
|
+
_proto.parseClassObject = function parseClassObject(item) {
|
|
543
|
+
var _this = this;
|
|
561
544
|
var Class = Loader.getClass(item.class);
|
|
562
545
|
var _item_constructParams;
|
|
563
546
|
var params = (_item_constructParams = item.constructParams) != null ? _item_constructParams : [];
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
return Promise.all(value.map(function(item) {
|
|
572
|
-
return _this.parseBasicType(item, engine, resourceManager);
|
|
573
|
-
}));
|
|
574
|
-
} else if (typeof value === "object" && value != null) {
|
|
575
|
-
if (this._isClass(value)) {
|
|
576
|
-
// class object
|
|
577
|
-
return this.parseClassObject(value, engine, resourceManager);
|
|
578
|
-
} else if (this._isRef(value)) {
|
|
579
|
-
// reference object
|
|
580
|
-
return resourceManager.getResourceByRef(value);
|
|
581
|
-
} else {
|
|
582
|
-
// basic type
|
|
583
|
-
return Promise.resolve(value);
|
|
584
|
-
}
|
|
585
|
-
} else {
|
|
586
|
-
return Promise.resolve(value);
|
|
587
|
-
}
|
|
547
|
+
return Promise.all(params.map(function(param) {
|
|
548
|
+
return _this.parseBasicType(param);
|
|
549
|
+
})).then(function(resultParams) {
|
|
550
|
+
return _construct(Class, [].concat(resultParams));
|
|
551
|
+
}).then(function(instance) {
|
|
552
|
+
return _this.parsePropsAndMethods(instance, item);
|
|
553
|
+
});
|
|
588
554
|
};
|
|
589
|
-
|
|
590
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
591
|
-
var _this = this;
|
|
555
|
+
_proto.parsePropsAndMethods = function parsePropsAndMethods(instance, item) {
|
|
592
556
|
var promises = [];
|
|
593
557
|
if (item.methods) {
|
|
594
558
|
for(var methodName in item.methods){
|
|
595
559
|
var methodParams = item.methods[methodName];
|
|
596
560
|
for(var i = 0, count = methodParams.length; i < count; i++){
|
|
597
|
-
|
|
598
|
-
var promise = this.parseMethod(instance, methodName, params, engine, resourceManager);
|
|
599
|
-
promises.push(promise);
|
|
561
|
+
promises.push(this.parseMethod(instance, methodName, methodParams[i]));
|
|
600
562
|
}
|
|
601
563
|
}
|
|
602
564
|
}
|
|
603
565
|
if (item.props) {
|
|
604
|
-
var
|
|
566
|
+
var _this = this, _loop = function(key) {
|
|
605
567
|
var value = item.props[key];
|
|
606
|
-
var promise =
|
|
568
|
+
var promise = _this.parseBasicType(value, instance[key]).then(function(v) {
|
|
607
569
|
return instance[key] = v;
|
|
608
570
|
});
|
|
609
571
|
promises.push(promise);
|
|
@@ -611,27 +573,96 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
611
573
|
for(var key in item.props)_loop(key);
|
|
612
574
|
}
|
|
613
575
|
return Promise.all(promises).then(function() {
|
|
614
|
-
var handle =
|
|
615
|
-
if (handle) return handle(instance, item
|
|
576
|
+
var handle = ReflectionParser.customParseComponentHandles[instance.constructor.name];
|
|
577
|
+
if (handle) return handle(instance, item);
|
|
616
578
|
else return instance;
|
|
617
579
|
});
|
|
618
580
|
};
|
|
619
|
-
|
|
620
|
-
if (resourceManager === void 0) resourceManager = engine.resourceManager;
|
|
581
|
+
_proto.parseMethod = function parseMethod(instance, methodName, methodParams) {
|
|
621
582
|
var _this = this;
|
|
622
583
|
return Promise.all(methodParams.map(function(param) {
|
|
623
|
-
return _this.parseBasicType(param
|
|
584
|
+
return _this.parseBasicType(param);
|
|
624
585
|
})).then(function(result) {
|
|
625
586
|
var _instance;
|
|
626
587
|
return (_instance = instance)[methodName].apply(_instance, [].concat(result));
|
|
627
588
|
});
|
|
628
589
|
};
|
|
590
|
+
_proto.parseBasicType = function parseBasicType(value, originValue) {
|
|
591
|
+
var _this = this;
|
|
592
|
+
if (Array.isArray(value)) {
|
|
593
|
+
return Promise.all(value.map(function(item) {
|
|
594
|
+
return _this.parseBasicType(item);
|
|
595
|
+
}));
|
|
596
|
+
} else if (typeof value === "object" && value != null) {
|
|
597
|
+
if (ReflectionParser._isClass(value)) {
|
|
598
|
+
// class object
|
|
599
|
+
return this.parseClassObject(value);
|
|
600
|
+
} else if (ReflectionParser._isAssetRef(value)) {
|
|
601
|
+
// reference object
|
|
602
|
+
// @ts-ignore
|
|
603
|
+
return this._context.resourceManager.getResourceByRef(value);
|
|
604
|
+
} else if (ReflectionParser._isEntityRef(value)) {
|
|
605
|
+
// entity reference
|
|
606
|
+
return Promise.resolve(this._context.entityMap.get(value.entityId));
|
|
607
|
+
} else if (originValue) {
|
|
608
|
+
var _this1 = this, _loop = function(key) {
|
|
609
|
+
if (key === "methods") {
|
|
610
|
+
var methods = value[key];
|
|
611
|
+
for(var methodName in methods){
|
|
612
|
+
var methodParams = methods[methodName];
|
|
613
|
+
for(var i = 0, count = methodParams.length; i < count; i++){
|
|
614
|
+
var params = methodParams[i];
|
|
615
|
+
var promise = _this1.parseMethod(originValue, methodName, params);
|
|
616
|
+
promises.push(promise);
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
} else {
|
|
620
|
+
promises.push(_this1.parseBasicType(value[key], originValue[key]).then(function(v) {
|
|
621
|
+
return originValue[key] = v;
|
|
622
|
+
}));
|
|
623
|
+
}
|
|
624
|
+
};
|
|
625
|
+
var promises = [];
|
|
626
|
+
for(var key in value)_loop(key);
|
|
627
|
+
return Promise.all(promises).then(function() {
|
|
628
|
+
return originValue;
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
// primitive type
|
|
633
|
+
return Promise.resolve(value);
|
|
634
|
+
};
|
|
635
|
+
_proto._getEntityByConfig = function _getEntityByConfig(entityConfig) {
|
|
636
|
+
// @ts-ignore
|
|
637
|
+
var assetRefId = entityConfig.assetRefId;
|
|
638
|
+
var engine = this._context.engine;
|
|
639
|
+
if (assetRefId) {
|
|
640
|
+
return engine.resourceManager// @ts-ignore
|
|
641
|
+
.getResourceByRef({
|
|
642
|
+
refId: assetRefId,
|
|
643
|
+
key: entityConfig.key,
|
|
644
|
+
isClone: entityConfig.isClone
|
|
645
|
+
}).then(function(entity) {
|
|
646
|
+
entity.name = entityConfig.name;
|
|
647
|
+
return entity;
|
|
648
|
+
});
|
|
649
|
+
} else {
|
|
650
|
+
var entity = new Entity(engine, entityConfig.name);
|
|
651
|
+
return Promise.resolve(entity);
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
ReflectionParser.registerCustomParseComponent = function registerCustomParseComponent(componentType, handle) {
|
|
655
|
+
this.customParseComponentHandles[componentType] = handle;
|
|
656
|
+
};
|
|
629
657
|
ReflectionParser._isClass = function _isClass(value) {
|
|
630
658
|
return value["class"] != undefined;
|
|
631
659
|
};
|
|
632
|
-
ReflectionParser.
|
|
660
|
+
ReflectionParser._isAssetRef = function _isAssetRef(value) {
|
|
633
661
|
return value["refId"] != undefined;
|
|
634
662
|
};
|
|
663
|
+
ReflectionParser._isEntityRef = function _isEntityRef(value) {
|
|
664
|
+
return value["entityId"] != undefined;
|
|
665
|
+
};
|
|
635
666
|
return ReflectionParser;
|
|
636
667
|
}();
|
|
637
668
|
(function() {
|
|
@@ -899,6 +930,8 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
899
930
|
this.assets = new Map();
|
|
900
931
|
this.entityConfigMap = new Map();
|
|
901
932
|
this.rootIds = [];
|
|
933
|
+
this.engine = scene.engine;
|
|
934
|
+
this.resourceManager = scene.engine.resourceManager;
|
|
902
935
|
}
|
|
903
936
|
var _proto = SceneParserContext.prototype;
|
|
904
937
|
_proto.destroy = function destroy() {
|
|
@@ -915,7 +948,7 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
915
948
|
function SceneParser(context) {
|
|
916
949
|
var _this = this;
|
|
917
950
|
this.context = context;
|
|
918
|
-
this._engine =
|
|
951
|
+
this._engine = context.scene.engine;
|
|
919
952
|
this._organizeEntities = this._organizeEntities.bind(this);
|
|
920
953
|
this._parseComponents = this._parseComponents.bind(this);
|
|
921
954
|
this._clearAndResolveScene = this._clearAndResolveScene.bind(this);
|
|
@@ -923,22 +956,24 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
923
956
|
_this._reject = reject;
|
|
924
957
|
_this._resolve = resolve;
|
|
925
958
|
});
|
|
959
|
+
this._reflectionParser = new ReflectionParser(context);
|
|
926
960
|
}
|
|
927
961
|
var _proto = SceneParser.prototype;
|
|
928
962
|
/** start parse the scene */ _proto.start = function start() {
|
|
929
963
|
this._parseEntities().then(this._organizeEntities).then(this._parseComponents).then(this._clearAndResolveScene).then(this._resolve).catch(this._reject);
|
|
930
964
|
};
|
|
931
965
|
_proto._parseEntities = function _parseEntities() {
|
|
966
|
+
var _this = this;
|
|
932
967
|
var entitiesConfig = this.context.originalData.entities;
|
|
933
968
|
var entityConfigMap = this.context.entityConfigMap;
|
|
934
969
|
var entitiesMap = this.context.entityMap;
|
|
935
970
|
var rootIds = this.context.rootIds;
|
|
936
|
-
|
|
971
|
+
this._engine;
|
|
937
972
|
var promises = entitiesConfig.map(function(entityConfig) {
|
|
938
973
|
entityConfigMap.set(entityConfig.id, entityConfig);
|
|
939
974
|
// record root entities
|
|
940
975
|
if (!entityConfig.parent) rootIds.push(entityConfig.id);
|
|
941
|
-
return
|
|
976
|
+
return _this._reflectionParser.parseEntity(entityConfig);
|
|
942
977
|
});
|
|
943
978
|
return Promise.all(promises).then(function(entities) {
|
|
944
979
|
for(var i = 0, l = entities.length; i < l; i++){
|
|
@@ -976,7 +1011,7 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
976
1011
|
component = entity.getComponent(Loader.getClass(key));
|
|
977
1012
|
}
|
|
978
1013
|
component = component || entity.addComponent(Loader.getClass(key));
|
|
979
|
-
var promise =
|
|
1014
|
+
var promise = this._reflectionParser.parsePropsAndMethods(component, componentConfig);
|
|
980
1015
|
promises.push(promise);
|
|
981
1016
|
}
|
|
982
1017
|
}
|
|
@@ -1532,10 +1567,10 @@ var TextureWrapMode;
|
|
|
1532
1567
|
/**
|
|
1533
1568
|
* @internal
|
|
1534
1569
|
*/ var GLTFParserContext = /*#__PURE__*/ function() {
|
|
1535
|
-
function GLTFParserContext(glTFResource, resourceManager,
|
|
1570
|
+
function GLTFParserContext(glTFResource, resourceManager, params) {
|
|
1536
1571
|
this.glTFResource = glTFResource;
|
|
1537
1572
|
this.resourceManager = resourceManager;
|
|
1538
|
-
this.
|
|
1573
|
+
this.params = params;
|
|
1539
1574
|
this.accessorBufferCache = {};
|
|
1540
1575
|
this._resourceCache = new Map();
|
|
1541
1576
|
this.contentRestorer = new GLTFContentRestorer(glTFResource);
|
|
@@ -1589,11 +1624,37 @@ var TextureWrapMode;
|
|
|
1589
1624
|
_this.get(9),
|
|
1590
1625
|
_this.get(2)
|
|
1591
1626
|
]).then(function() {
|
|
1627
|
+
var glTFResource = _this.glTFResource;
|
|
1628
|
+
if (glTFResource.skins || glTFResource.animations) {
|
|
1629
|
+
_this._createAnimator(_this, glTFResource.animations);
|
|
1630
|
+
}
|
|
1592
1631
|
_this.resourceManager.addContentRestorer(_this.contentRestorer);
|
|
1593
|
-
return
|
|
1632
|
+
return glTFResource;
|
|
1594
1633
|
});
|
|
1595
1634
|
});
|
|
1596
1635
|
};
|
|
1636
|
+
_proto._createAnimator = function _createAnimator(context, animations) {
|
|
1637
|
+
var defaultSceneRoot = context.glTFResource.defaultSceneRoot;
|
|
1638
|
+
var animator = defaultSceneRoot.addComponent(Animator);
|
|
1639
|
+
var animatorController = new AnimatorController();
|
|
1640
|
+
var layer = new AnimatorControllerLayer("layer");
|
|
1641
|
+
var animatorStateMachine = new AnimatorStateMachine();
|
|
1642
|
+
animatorController.addLayer(layer);
|
|
1643
|
+
animator.animatorController = animatorController;
|
|
1644
|
+
layer.stateMachine = animatorStateMachine;
|
|
1645
|
+
if (animations) {
|
|
1646
|
+
for(var i = 0; i < animations.length; i++){
|
|
1647
|
+
var animationClip = animations[i];
|
|
1648
|
+
var name = animationClip.name;
|
|
1649
|
+
var uniqueName = animatorStateMachine.makeUniqueStateName(name);
|
|
1650
|
+
if (uniqueName !== name) {
|
|
1651
|
+
console.warn("AnimatorState name is existed, name: " + name + " reset to " + uniqueName);
|
|
1652
|
+
}
|
|
1653
|
+
var animatorState = animatorStateMachine.addState(uniqueName);
|
|
1654
|
+
animatorState.clip = animationClip;
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
};
|
|
1597
1658
|
_proto._handleSubAsset = function _handleSubAsset(resource, type, index) {
|
|
1598
1659
|
var _this = this;
|
|
1599
1660
|
var glTFResourceKey = glTFResourceMap[type];
|
|
@@ -2233,7 +2294,7 @@ var SupercompressionScheme;
|
|
|
2233
2294
|
alphaSliceByteLength: sgdReader.nextUint32()
|
|
2234
2295
|
};
|
|
2235
2296
|
}
|
|
2236
|
-
var endpointsByteOffset = sgdByteOffset + sgdReader.
|
|
2297
|
+
var endpointsByteOffset = sgdByteOffset + sgdReader.position;
|
|
2237
2298
|
var selectorsByteOffset = endpointsByteOffset + endpointsByteLength;
|
|
2238
2299
|
var tablesByteOffset = selectorsByteOffset + selectorsByteLength;
|
|
2239
2300
|
var extendedByteOffset = tablesByteOffset + tablesByteLength;
|
|
@@ -2425,6 +2486,25 @@ var AbstractTranscoder = /*#__PURE__*/ function() {
|
|
|
2425
2486
|
}();
|
|
2426
2487
|
|
|
2427
2488
|
/** @internal */ function TranscodeWorkerCode$1() {
|
|
2489
|
+
var initPromise;
|
|
2490
|
+
var init = function init(wasmBinary) {
|
|
2491
|
+
if (!initPromise) {
|
|
2492
|
+
initPromise = new Promise(function(resolve, reject) {
|
|
2493
|
+
var BasisModule = {
|
|
2494
|
+
wasmBinary: wasmBinary,
|
|
2495
|
+
onRuntimeInitialized: function() {
|
|
2496
|
+
return resolve(BasisModule);
|
|
2497
|
+
},
|
|
2498
|
+
onAbort: reject
|
|
2499
|
+
};
|
|
2500
|
+
self["BASIS"](BasisModule);
|
|
2501
|
+
}).then(function(BasisModule) {
|
|
2502
|
+
BasisModule.initializeBasis();
|
|
2503
|
+
return BasisModule.KTX2File;
|
|
2504
|
+
});
|
|
2505
|
+
}
|
|
2506
|
+
return initPromise;
|
|
2507
|
+
};
|
|
2428
2508
|
self.onmessage = function onmessage(event) {
|
|
2429
2509
|
var message = event.data;
|
|
2430
2510
|
switch(message.type){
|
|
@@ -2539,6 +2619,10 @@ function transcode(buffer, targetFormat, KTX2File) {
|
|
|
2539
2619
|
cleanup();
|
|
2540
2620
|
throw new Error("Invalid or unsupported .ktx2 file");
|
|
2541
2621
|
}
|
|
2622
|
+
if (!ktx2File.startTranscoding()) {
|
|
2623
|
+
cleanup();
|
|
2624
|
+
throw new Error("KTX2 startTranscoding failed");
|
|
2625
|
+
}
|
|
2542
2626
|
var width = ktx2File.getWidth();
|
|
2543
2627
|
var height = ktx2File.getHeight();
|
|
2544
2628
|
var layerCount = ktx2File.getLayers() || 1;
|
|
@@ -2547,6 +2631,7 @@ function transcode(buffer, targetFormat, KTX2File) {
|
|
|
2547
2631
|
var faceCount = ktx2File.getFaces();
|
|
2548
2632
|
var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
|
|
2549
2633
|
var faces = new Array(faceCount);
|
|
2634
|
+
var isBC = format === 2 || format === 3 || format === 7;
|
|
2550
2635
|
for(var face = 0; face < faceCount; face++){
|
|
2551
2636
|
var mipmaps = new Array(levelCount);
|
|
2552
2637
|
for(var mip = 0; mip < levelCount; mip++){
|
|
@@ -2554,8 +2639,15 @@ function transcode(buffer, targetFormat, KTX2File) {
|
|
|
2554
2639
|
var mipWidth = void 0, mipHeight = void 0;
|
|
2555
2640
|
for(var layer = 0; layer < layerCount; layer++){
|
|
2556
2641
|
var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
|
|
2557
|
-
|
|
2558
|
-
|
|
2642
|
+
// see: https://github.com/KhronosGroup/KTX-Software/issues/254
|
|
2643
|
+
if (isBC && mip === 0 && (width !== levelInfo.width || height !== levelInfo.height)) {
|
|
2644
|
+
width = mipWidth = levelInfo.width;
|
|
2645
|
+
height = mipHeight = levelInfo.height;
|
|
2646
|
+
console.warn("KTX2 transcode to BC will resize to width: " + width + ", height: " + height + ". You'd better use an image whose size if multiple of 4.");
|
|
2647
|
+
} else {
|
|
2648
|
+
mipWidth = levelInfo.origWidth;
|
|
2649
|
+
mipHeight = levelInfo.origHeight;
|
|
2650
|
+
}
|
|
2559
2651
|
var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
|
|
2560
2652
|
var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
|
|
2561
2653
|
if (!status) {
|
|
@@ -2621,7 +2713,7 @@ function transcode(buffer, targetFormat, KTX2File) {
|
|
|
2621
2713
|
} else {
|
|
2622
2714
|
var funcCode = TranscodeWorkerCode$1.toString();
|
|
2623
2715
|
var transcodeString = funcCode.substring(funcCode.indexOf("{"), funcCode.lastIndexOf("}") + 1);
|
|
2624
|
-
var workerCode = "\n " + jsCode + "\n
|
|
2716
|
+
var workerCode = "\n " + jsCode + "\n " + transcode.toString() + "\n " + transcodeString + "\n ";
|
|
2625
2717
|
var workerURL = URL.createObjectURL(new Blob([
|
|
2626
2718
|
workerCode
|
|
2627
2719
|
], {
|
|
@@ -2867,10 +2959,14 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
2867
2959
|
return Loader1.apply(this, arguments);
|
|
2868
2960
|
}
|
|
2869
2961
|
var _proto = KTX2Loader1.prototype;
|
|
2870
|
-
_proto.initialize = function initialize(
|
|
2962
|
+
_proto.initialize = function initialize(_, configuration) {
|
|
2871
2963
|
if (configuration.ktx2Loader) {
|
|
2872
2964
|
var options = configuration.ktx2Loader;
|
|
2873
|
-
if (
|
|
2965
|
+
if (options.priorityFormats) {
|
|
2966
|
+
KTX2Loader._priorityFormats["etc1s"] = options.priorityFormats;
|
|
2967
|
+
KTX2Loader._priorityFormats["uastc"] = options.priorityFormats;
|
|
2968
|
+
}
|
|
2969
|
+
if (options.transcoder === /** Khronos transcoder. */ 1) {
|
|
2874
2970
|
return KTX2Loader._getKhronosTranscoder(options.workerCount).init();
|
|
2875
2971
|
} else {
|
|
2876
2972
|
return KTX2Loader._getBinomialLLCTranscoder(options.workerCount).init();
|
|
@@ -2889,27 +2985,6 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
2889
2985
|
});
|
|
2890
2986
|
});
|
|
2891
2987
|
};
|
|
2892
|
-
_proto._isKhronosSupported = function _isKhronosSupported(priorityFormats, engine) {
|
|
2893
|
-
if (priorityFormats === void 0) priorityFormats = [
|
|
2894
|
-
KTX2TargetFormat.ASTC,
|
|
2895
|
-
KTX2TargetFormat.ETC,
|
|
2896
|
-
KTX2TargetFormat.BC7,
|
|
2897
|
-
KTX2TargetFormat.BC1_BC3,
|
|
2898
|
-
KTX2TargetFormat.PVRTC,
|
|
2899
|
-
KTX2TargetFormat.R8G8B8A8
|
|
2900
|
-
];
|
|
2901
|
-
var supportedList = new Array();
|
|
2902
|
-
if (Array.isArray(priorityFormats[0])) {
|
|
2903
|
-
for(var i = 0; i < priorityFormats.length; i++){
|
|
2904
|
-
supportedList.push(KTX2Loader._detectSupportedFormat(engine._hardwareRenderer, priorityFormats[i]));
|
|
2905
|
-
}
|
|
2906
|
-
} else {
|
|
2907
|
-
supportedList.push(KTX2Loader._detectSupportedFormat(engine._hardwareRenderer, priorityFormats));
|
|
2908
|
-
}
|
|
2909
|
-
return supportedList.every(function(format) {
|
|
2910
|
-
return KhronosTranscoder.transcoderMap[format];
|
|
2911
|
-
});
|
|
2912
|
-
};
|
|
2913
2988
|
/**
|
|
2914
2989
|
* Destroy ktx2 transcoder worker.
|
|
2915
2990
|
*/ KTX2Loader1.destroy = function destroy() {
|
|
@@ -2922,7 +2997,8 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
2922
2997
|
/** @internal */ KTX2Loader1._parseBuffer = function _parseBuffer(buffer, engine, params) {
|
|
2923
2998
|
var _params;
|
|
2924
2999
|
var ktx2Container = new KTX2Container(buffer);
|
|
2925
|
-
var
|
|
3000
|
+
var _params_priorityFormats;
|
|
3001
|
+
var formatPriorities = (_params_priorityFormats = (_params = params) == null ? void 0 : _params.priorityFormats) != null ? _params_priorityFormats : KTX2Loader._priorityFormats[ktx2Container.isUASTC ? "uastc" : "etc1s"];
|
|
2926
3002
|
var targetFormat = KTX2Loader._decideTargetFormat(engine, ktx2Container, formatPriorities);
|
|
2927
3003
|
var transcodeResultPromise;
|
|
2928
3004
|
if (KTX2Loader._isBinomialInit || !KhronosTranscoder.transcoderMap[targetFormat] || !ktx2Container.isUASTC) {
|
|
@@ -2989,18 +3065,22 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
2989
3065
|
return targetFormat;
|
|
2990
3066
|
};
|
|
2991
3067
|
KTX2Loader1._detectSupportedFormat = function _detectSupportedFormat(renderer, priorityFormats) {
|
|
2992
|
-
if (priorityFormats === void 0) priorityFormats = [
|
|
2993
|
-
KTX2TargetFormat.ASTC,
|
|
2994
|
-
KTX2TargetFormat.ETC,
|
|
2995
|
-
KTX2TargetFormat.BC7,
|
|
2996
|
-
KTX2TargetFormat.BC1_BC3,
|
|
2997
|
-
KTX2TargetFormat.PVRTC
|
|
2998
|
-
];
|
|
2999
3068
|
for(var i = 0; i < priorityFormats.length; i++){
|
|
3000
|
-
var
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3069
|
+
var format = priorityFormats[i];
|
|
3070
|
+
var capabilities = this._supportedMap[format];
|
|
3071
|
+
if (capabilities) {
|
|
3072
|
+
for(var j = 0; j < capabilities.length; j++){
|
|
3073
|
+
if (renderer.canIUse(capabilities[j])) {
|
|
3074
|
+
return format;
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
} else {
|
|
3078
|
+
switch(priorityFormats[i]){
|
|
3079
|
+
case KTX2TargetFormat.R8G8B8A8:
|
|
3080
|
+
return format;
|
|
3081
|
+
case KTX2TargetFormat.R8:
|
|
3082
|
+
case KTX2TargetFormat.R8G8:
|
|
3083
|
+
if (renderer.isWebGL2) return format;
|
|
3004
3084
|
}
|
|
3005
3085
|
}
|
|
3006
3086
|
}
|
|
@@ -3037,6 +3117,23 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
3037
3117
|
return KTX2Loader1;
|
|
3038
3118
|
}(Loader), function() {
|
|
3039
3119
|
_KTX2Loader._isBinomialInit = false;
|
|
3120
|
+
}(), function() {
|
|
3121
|
+
_KTX2Loader._priorityFormats = {
|
|
3122
|
+
etc1s: [
|
|
3123
|
+
KTX2TargetFormat.ETC,
|
|
3124
|
+
KTX2TargetFormat.BC7,
|
|
3125
|
+
KTX2TargetFormat.ASTC,
|
|
3126
|
+
KTX2TargetFormat.BC1_BC3,
|
|
3127
|
+
KTX2TargetFormat.PVRTC
|
|
3128
|
+
],
|
|
3129
|
+
uastc: [
|
|
3130
|
+
KTX2TargetFormat.ASTC,
|
|
3131
|
+
KTX2TargetFormat.BC7,
|
|
3132
|
+
KTX2TargetFormat.ETC,
|
|
3133
|
+
KTX2TargetFormat.BC1_BC3,
|
|
3134
|
+
KTX2TargetFormat.PVRTC
|
|
3135
|
+
]
|
|
3136
|
+
};
|
|
3040
3137
|
}(), function() {
|
|
3041
3138
|
var _obj;
|
|
3042
3139
|
_KTX2Loader._supportedMap = (_obj = {}, _obj[KTX2TargetFormat.ASTC] = [
|
|
@@ -3057,6 +3154,11 @@ KTX2Loader = __decorate([
|
|
|
3057
3154
|
"ktx2"
|
|
3058
3155
|
])
|
|
3059
3156
|
], KTX2Loader);
|
|
3157
|
+
var KTX2Transcoder;
|
|
3158
|
+
(function(KTX2Transcoder) {
|
|
3159
|
+
KTX2Transcoder[KTX2Transcoder[/** BinomialLLC transcoder. */ "BinomialLLC"] = 0] = "BinomialLLC";
|
|
3160
|
+
KTX2Transcoder[KTX2Transcoder["Khronos"] = 1] = "Khronos";
|
|
3161
|
+
})(KTX2Transcoder || (KTX2Transcoder = {}));
|
|
3060
3162
|
|
|
3061
3163
|
/**
|
|
3062
3164
|
* @internal
|
|
@@ -3500,6 +3602,7 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3500
3602
|
var promises = new Array();
|
|
3501
3603
|
// parse samplers
|
|
3502
3604
|
for(var j = 0, m = samplers.length; j < m; j++)_loop(j);
|
|
3605
|
+
promises.push(context.get(GLTFParserType.Scene));
|
|
3503
3606
|
return Promise.all(promises).then(function() {
|
|
3504
3607
|
for(var j = 0, m = channels.length; j < m; j++){
|
|
3505
3608
|
var gltfChannel = channels[j];
|
|
@@ -3511,6 +3614,10 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3511
3614
|
relativePath = relativePath === "" ? "" + entity.name : entity.name + "/" + relativePath;
|
|
3512
3615
|
entity = entity.parent;
|
|
3513
3616
|
}
|
|
3617
|
+
// If the target node is in the default scene, relativePath will be empty
|
|
3618
|
+
if (context.glTFResource.sceneRoots.indexOf(entity) === -1) {
|
|
3619
|
+
continue;
|
|
3620
|
+
}
|
|
3514
3621
|
var ComponentType = void 0;
|
|
3515
3622
|
var propertyName = void 0;
|
|
3516
3623
|
switch(target.path){
|
|
@@ -3847,7 +3954,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3847
3954
|
return context.get(GLTFParserType.Buffer).then(function(buffers) {
|
|
3848
3955
|
return GLTFUtils.getAccessorData(glTF, indexAccessor, buffers);
|
|
3849
3956
|
});
|
|
3850
|
-
}, context.keepMeshData).then(resolve);
|
|
3957
|
+
}, context.params.keepMeshData).then(resolve);
|
|
3851
3958
|
}
|
|
3852
3959
|
});
|
|
3853
3960
|
};
|
|
@@ -4025,9 +4132,9 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4025
4132
|
}
|
|
4026
4133
|
var _proto = GLTFSceneParser.prototype;
|
|
4027
4134
|
_proto.parse = function parse(context, index) {
|
|
4028
|
-
var _this = this;
|
|
4029
4135
|
var _context_glTF = context.glTF, scenes = _context_glTF.scenes, _context_glTF_scene = _context_glTF.scene, scene = _context_glTF_scene === void 0 ? 0 : _context_glTF_scene, glTFResource = context.glTFResource;
|
|
4030
4136
|
var sceneInfo = scenes[index];
|
|
4137
|
+
var sceneExtensions = sceneInfo.extensions;
|
|
4031
4138
|
var engine = glTFResource.engine;
|
|
4032
4139
|
var isDefaultScene = scene === index;
|
|
4033
4140
|
var sceneNodes = sceneInfo.nodes;
|
|
@@ -4053,18 +4160,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4053
4160
|
promises.push(this._parseEntityComponent(context, sceneNodes[i1]));
|
|
4054
4161
|
}
|
|
4055
4162
|
return Promise.all(promises).then(function() {
|
|
4056
|
-
|
|
4057
|
-
return Promise.all([
|
|
4058
|
-
context.get(GLTFParserType.Skin),
|
|
4059
|
-
context.get(GLTFParserType.Animation)
|
|
4060
|
-
]).then(function(param) {
|
|
4061
|
-
var skins = param[0], animations = param[1];
|
|
4062
|
-
if (skins || animations) {
|
|
4063
|
-
_this._createAnimator(context, animations);
|
|
4064
|
-
}
|
|
4065
|
-
return sceneRoot;
|
|
4066
|
-
});
|
|
4067
|
-
}
|
|
4163
|
+
GLTFParser.executeExtensionsAdditiveAndParse(sceneExtensions, context, sceneRoot, sceneInfo);
|
|
4068
4164
|
return sceneRoot;
|
|
4069
4165
|
});
|
|
4070
4166
|
};
|
|
@@ -4176,28 +4272,6 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4176
4272
|
for(var i = 0; i < glTFMeshPrimitives.length; i++)_loop(i);
|
|
4177
4273
|
return Promise.all(promises);
|
|
4178
4274
|
};
|
|
4179
|
-
_proto._createAnimator = function _createAnimator(context, animations) {
|
|
4180
|
-
var defaultSceneRoot = context.glTFResource.defaultSceneRoot;
|
|
4181
|
-
var animator = defaultSceneRoot.addComponent(Animator);
|
|
4182
|
-
var animatorController = new AnimatorController();
|
|
4183
|
-
var layer = new AnimatorControllerLayer("layer");
|
|
4184
|
-
var animatorStateMachine = new AnimatorStateMachine();
|
|
4185
|
-
animatorController.addLayer(layer);
|
|
4186
|
-
animator.animatorController = animatorController;
|
|
4187
|
-
layer.stateMachine = animatorStateMachine;
|
|
4188
|
-
if (animations) {
|
|
4189
|
-
for(var i = 0; i < animations.length; i++){
|
|
4190
|
-
var animationClip = animations[i];
|
|
4191
|
-
var name = animationClip.name;
|
|
4192
|
-
var uniqueName = animatorStateMachine.makeUniqueStateName(name);
|
|
4193
|
-
if (uniqueName !== name) {
|
|
4194
|
-
console.warn("AnimatorState name is existed, name: " + name + " reset to " + uniqueName);
|
|
4195
|
-
}
|
|
4196
|
-
var animatorState = animatorStateMachine.addState(uniqueName);
|
|
4197
|
-
animatorState.clip = animationClip;
|
|
4198
|
-
}
|
|
4199
|
-
}
|
|
4200
|
-
};
|
|
4201
4275
|
_proto._computeLocalBounds = function _computeLocalBounds(skinnedMeshRenderer, mesh, bones, rootBone, inverseBindMatrices) {
|
|
4202
4276
|
var rootBoneIndex = bones.indexOf(rootBone);
|
|
4203
4277
|
if (rootBoneIndex !== -1) {
|
|
@@ -4347,8 +4421,7 @@ var GLTFTextureParser = (_GLTFTextureParser = /*#__PURE__*/ function(GLTFParser1
|
|
|
4347
4421
|
mipmap: (_samplerInfo = samplerInfo) == null ? void 0 : _samplerInfo.mipmap
|
|
4348
4422
|
}
|
|
4349
4423
|
}).then(function(texture) {
|
|
4350
|
-
|
|
4351
|
-
(_texture = texture).name || (_texture.name = textureName || imageName || "texture_" + index);
|
|
4424
|
+
texture.name = textureName || imageName || texture.name || "texture_" + index;
|
|
4352
4425
|
useSampler && GLTFUtils.parseSampler(texture, samplerInfo);
|
|
4353
4426
|
return texture;
|
|
4354
4427
|
});
|
|
@@ -4430,11 +4503,12 @@ var GLTFLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
4430
4503
|
}
|
|
4431
4504
|
var _proto = GLTFLoader.prototype;
|
|
4432
4505
|
_proto.load = function load(item, resourceManager) {
|
|
4433
|
-
var _params;
|
|
4434
4506
|
var url = item.url;
|
|
4435
4507
|
var params = item.params;
|
|
4436
4508
|
var glTFResource = new GLTFResource(resourceManager.engine, url);
|
|
4437
|
-
var context = new GLTFParserContext(glTFResource, resourceManager,
|
|
4509
|
+
var context = new GLTFParserContext(glTFResource, resourceManager, _extends({
|
|
4510
|
+
keepMeshData: false
|
|
4511
|
+
}, params));
|
|
4438
4512
|
return context.parse();
|
|
4439
4513
|
};
|
|
4440
4514
|
return GLTFLoader;
|
|
@@ -5082,6 +5156,12 @@ var MaterialLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5082
5156
|
materialShaderData.setTexture(key, texture);
|
|
5083
5157
|
}));
|
|
5084
5158
|
break;
|
|
5159
|
+
case "Boolean":
|
|
5160
|
+
materialShaderData.setInt(key, value ? 1 : 0);
|
|
5161
|
+
break;
|
|
5162
|
+
case "Integer":
|
|
5163
|
+
materialShaderData.setInt(key, Number(value));
|
|
5164
|
+
break;
|
|
5085
5165
|
}
|
|
5086
5166
|
};
|
|
5087
5167
|
var engine = resourceManager.engine;
|
|
@@ -5217,9 +5297,10 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5217
5297
|
var _loop = function(i) {
|
|
5218
5298
|
var atlasItem = atlasItems[i];
|
|
5219
5299
|
if (atlasItem.img) {
|
|
5300
|
+
var _atlasItem_type;
|
|
5220
5301
|
chainPromises.push(resourceManager.load({
|
|
5221
5302
|
url: Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
|
|
5222
|
-
type: AssetType.Texture2D,
|
|
5303
|
+
type: (_atlasItem_type = atlasItem.type) != null ? _atlasItem_type : AssetType.Texture2D,
|
|
5223
5304
|
params: {
|
|
5224
5305
|
format: format,
|
|
5225
5306
|
mipmap: mipmap
|
|
@@ -5259,7 +5340,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5259
5340
|
};
|
|
5260
5341
|
_proto._makeSprite = function _makeSprite(engine, config, texture) {
|
|
5261
5342
|
// Generate a SpriteAtlas object.
|
|
5262
|
-
var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border;
|
|
5343
|
+
var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border, width = config.width, height = config.height;
|
|
5263
5344
|
var sprite = new Sprite(engine, texture, region ? this._tempRect.set(region.x, region.y, region.w, region.h) : undefined, pivot ? this._tempVec2.set(pivot.x, pivot.y) : undefined, border ? this._tempVec4.set(border.x, border.y, border.z, border.w) : undefined, config.name);
|
|
5264
5345
|
if (texture) {
|
|
5265
5346
|
var invW = 1 / texture.width;
|
|
@@ -5271,6 +5352,8 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5271
5352
|
}
|
|
5272
5353
|
config.atlasRotated && (sprite.atlasRotated = true);
|
|
5273
5354
|
}
|
|
5355
|
+
isNaN(width) || (sprite.width = width);
|
|
5356
|
+
isNaN(height) || (sprite.height = height);
|
|
5274
5357
|
return sprite;
|
|
5275
5358
|
};
|
|
5276
5359
|
return SpriteAtlasLoader;
|
|
@@ -5289,26 +5372,39 @@ var SpriteLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5289
5372
|
var _proto = SpriteLoader.prototype;
|
|
5290
5373
|
_proto.load = function load(item, resourceManager) {
|
|
5291
5374
|
var _this = this;
|
|
5292
|
-
return
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
.getResourceByRef(data.texture).then(function(texture) {
|
|
5304
|
-
resolve(new Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border));
|
|
5305
|
-
}).catch(reject);
|
|
5306
|
-
} else {
|
|
5307
|
-
resolve(new Sprite(resourceManager.engine, null, data.region, data.pivot, data.border));
|
|
5308
|
-
}
|
|
5309
|
-
}).catch(reject);
|
|
5375
|
+
return this.request(item.url, _extends({}, item, {
|
|
5376
|
+
type: "json"
|
|
5377
|
+
})).then(function(data) {
|
|
5378
|
+
return data.belongToAtlas ? _this._loadFromAtlas(resourceManager, data) : _this._loadFromTexture(resourceManager, data);
|
|
5379
|
+
});
|
|
5380
|
+
};
|
|
5381
|
+
_proto._loadFromAtlas = function _loadFromAtlas(resourceManager, data) {
|
|
5382
|
+
var _this = this;
|
|
5383
|
+
return resourceManager// @ts-ignore
|
|
5384
|
+
.getResourceByRef(data.belongToAtlas).then(function(atlas) {
|
|
5385
|
+
return atlas.getSprite(data.fullPath) || _this._loadFromTexture(resourceManager, data);
|
|
5310
5386
|
});
|
|
5311
5387
|
};
|
|
5388
|
+
_proto._loadFromTexture = function _loadFromTexture(resourceManager, data) {
|
|
5389
|
+
if (data.texture) {
|
|
5390
|
+
return resourceManager// @ts-ignore
|
|
5391
|
+
.getResourceByRef(data.texture).then(function(texture) {
|
|
5392
|
+
var sprite = new Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border);
|
|
5393
|
+
var width = data.width, height = data.height;
|
|
5394
|
+
isNaN(width) || (sprite.width = width);
|
|
5395
|
+
isNaN(height) || (sprite.height = height);
|
|
5396
|
+
return sprite;
|
|
5397
|
+
});
|
|
5398
|
+
} else {
|
|
5399
|
+
return new AssetPromise(function(resolve) {
|
|
5400
|
+
var sprite = new Sprite(resourceManager.engine, null, data.region, data.pivot, data.border);
|
|
5401
|
+
var width = data.width, height = data.height;
|
|
5402
|
+
isNaN(width) || (sprite.width = width);
|
|
5403
|
+
isNaN(height) || (sprite.height = height);
|
|
5404
|
+
resolve(sprite);
|
|
5405
|
+
});
|
|
5406
|
+
}
|
|
5407
|
+
};
|
|
5312
5408
|
return SpriteLoader;
|
|
5313
5409
|
}(Loader);
|
|
5314
5410
|
SpriteLoader = __decorate([
|
|
@@ -5355,9 +5451,13 @@ var Texture2DLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5355
5451
|
type: "image"
|
|
5356
5452
|
});
|
|
5357
5453
|
_this.request(url, requestConfig).then(function(image) {
|
|
5358
|
-
var
|
|
5359
|
-
var
|
|
5360
|
-
var texture = new Texture2D(resourceManager.engine, image.width, image.height,
|
|
5454
|
+
var _item_params;
|
|
5455
|
+
var _ref = (_item_params = item.params) != null ? _item_params : {}, format = _ref.format, mipmap = _ref.mipmap, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode;
|
|
5456
|
+
var texture = new Texture2D(resourceManager.engine, image.width, image.height, format, mipmap);
|
|
5457
|
+
texture.anisoLevel = anisoLevel != null ? anisoLevel : texture.anisoLevel;
|
|
5458
|
+
texture.filterMode = filterMode != null ? filterMode : texture.filterMode;
|
|
5459
|
+
texture.wrapModeU = wrapModeU != null ? wrapModeU : texture.wrapModeU;
|
|
5460
|
+
texture.wrapModeV = wrapModeV != null ? wrapModeV : texture.wrapModeV;
|
|
5361
5461
|
texture.setImageSource(image);
|
|
5362
5462
|
texture.generateMipmaps();
|
|
5363
5463
|
if (url.indexOf("data:") !== 0) {
|
|
@@ -5455,6 +5555,39 @@ TextureCubeLoader = __decorate([
|
|
|
5455
5555
|
])
|
|
5456
5556
|
], TextureCubeLoader);
|
|
5457
5557
|
|
|
5558
|
+
var ProjectLoader = /*#__PURE__*/ function(Loader1) {
|
|
5559
|
+
_inherits(ProjectLoader, Loader1);
|
|
5560
|
+
function ProjectLoader() {
|
|
5561
|
+
return Loader1.apply(this, arguments);
|
|
5562
|
+
}
|
|
5563
|
+
var _proto = ProjectLoader.prototype;
|
|
5564
|
+
_proto.load = function load(item, resourceManager) {
|
|
5565
|
+
var _this = this;
|
|
5566
|
+
var engine = resourceManager.engine;
|
|
5567
|
+
return new AssetPromise(function(resolve, reject) {
|
|
5568
|
+
_this.request(item.url, {
|
|
5569
|
+
type: "json"
|
|
5570
|
+
}).then(function(data) {
|
|
5571
|
+
// @ts-ignore
|
|
5572
|
+
engine.resourceManager.initVirtualResources(data.files);
|
|
5573
|
+
return resourceManager.load({
|
|
5574
|
+
type: AssetType.Scene,
|
|
5575
|
+
url: data.scene
|
|
5576
|
+
}).then(function(scene) {
|
|
5577
|
+
engine.sceneManager.activeScene = scene;
|
|
5578
|
+
resolve();
|
|
5579
|
+
});
|
|
5580
|
+
}).catch(reject);
|
|
5581
|
+
});
|
|
5582
|
+
};
|
|
5583
|
+
return ProjectLoader;
|
|
5584
|
+
}(Loader);
|
|
5585
|
+
ProjectLoader = __decorate([
|
|
5586
|
+
resourceLoader(AssetType.Project, [
|
|
5587
|
+
"proj"
|
|
5588
|
+
], false)
|
|
5589
|
+
], ProjectLoader);
|
|
5590
|
+
|
|
5458
5591
|
var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
5459
5592
|
_inherits(SceneLoader, Loader1);
|
|
5460
5593
|
function SceneLoader() {
|
|
@@ -5472,33 +5605,34 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5472
5605
|
var promises = [];
|
|
5473
5606
|
// parse ambient light
|
|
5474
5607
|
var ambient = data.scene.ambient;
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
// prettier-ignore
|
|
5479
|
-
var customAmbientPromise = resourceManager.getResourceByRef(ambient.customAmbientLight).then(function(ambientLight) {
|
|
5480
|
-
scene.ambientLight = ambientLight;
|
|
5481
|
-
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
5482
|
-
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
5483
|
-
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
5484
|
-
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
5485
|
-
});
|
|
5486
|
-
promises.push(customAmbientPromise);
|
|
5487
|
-
} else if (!useCustomAmbient && ambient.ambientLight) {
|
|
5488
|
-
// @ts-ignore
|
|
5489
|
-
// prettier-ignore
|
|
5490
|
-
var ambientLightPromise = resourceManager.getResourceByRef(ambient.ambientLight).then(function(ambientLight) {
|
|
5491
|
-
scene.ambientLight = ambientLight;
|
|
5492
|
-
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
5493
|
-
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
5494
|
-
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
5495
|
-
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
5496
|
-
});
|
|
5497
|
-
promises.push(ambientLightPromise);
|
|
5498
|
-
} else {
|
|
5608
|
+
if (ambient) {
|
|
5609
|
+
var useCustomAmbient = ambient.specularMode === "Custom";
|
|
5610
|
+
var useSH = ambient.diffuseMode === DiffuseMode.SphericalHarmonics;
|
|
5499
5611
|
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
5500
5612
|
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
5613
|
+
scene.ambientLight.diffuseMode = ambient.diffuseMode;
|
|
5501
5614
|
scene.ambientLight.diffuseSolidColor.copyFrom(ambient.diffuseSolidColor);
|
|
5615
|
+
scene.ambientLight.specularTextureDecodeRGBM = true;
|
|
5616
|
+
if (useCustomAmbient && ambient.customAmbientLight) {
|
|
5617
|
+
promises.push(// @ts-ignore
|
|
5618
|
+
resourceManager.getResourceByRef(ambient.customAmbientLight).then(function(ambientLight) {
|
|
5619
|
+
var _ambientLight;
|
|
5620
|
+
scene.ambientLight.specularTexture = (_ambientLight = ambientLight) == null ? void 0 : _ambientLight.specularTexture;
|
|
5621
|
+
}));
|
|
5622
|
+
}
|
|
5623
|
+
if (ambient.ambientLight && (!useCustomAmbient || useSH)) {
|
|
5624
|
+
promises.push(// @ts-ignore
|
|
5625
|
+
resourceManager.getResourceByRef(ambient.ambientLight).then(function(ambientLight) {
|
|
5626
|
+
if (!useCustomAmbient) {
|
|
5627
|
+
var _ambientLight;
|
|
5628
|
+
scene.ambientLight.specularTexture = (_ambientLight = ambientLight) == null ? void 0 : _ambientLight.specularTexture;
|
|
5629
|
+
}
|
|
5630
|
+
if (useSH) {
|
|
5631
|
+
var _ambientLight1;
|
|
5632
|
+
scene.ambientLight.diffuseSphericalHarmonics = (_ambientLight1 = ambientLight) == null ? void 0 : _ambientLight1.diffuseSphericalHarmonics;
|
|
5633
|
+
}
|
|
5634
|
+
}));
|
|
5635
|
+
}
|
|
5502
5636
|
}
|
|
5503
5637
|
var background = data.scene.background;
|
|
5504
5638
|
scene.background.mode = background.mode;
|
|
@@ -5540,6 +5674,9 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5540
5674
|
if (shadow.shadowResolution != undefined) scene.shadowResolution = shadow.shadowResolution;
|
|
5541
5675
|
if (shadow.shadowDistance != undefined) scene.shadowDistance = shadow.shadowDistance;
|
|
5542
5676
|
if (shadow.shadowCascades != undefined) scene.shadowCascades = shadow.shadowCascades;
|
|
5677
|
+
var _shadow_shadowTwoCascadeSplits;
|
|
5678
|
+
scene.shadowTwoCascadeSplits = (_shadow_shadowTwoCascadeSplits = shadow.shadowTwoCascadeSplits) != null ? _shadow_shadowTwoCascadeSplits : scene.shadowTwoCascadeSplits;
|
|
5679
|
+
shadow.shadowFourCascadeSplits && scene.shadowFourCascadeSplits.copyFrom(shadow.shadowFourCascadeSplits);
|
|
5543
5680
|
}
|
|
5544
5681
|
return Promise.all(promises).then(function() {
|
|
5545
5682
|
resolve(scene);
|
|
@@ -5555,13 +5692,13 @@ SceneLoader = __decorate([
|
|
|
5555
5692
|
"scene"
|
|
5556
5693
|
], true)
|
|
5557
5694
|
], SceneLoader);
|
|
5558
|
-
ReflectionParser.registerCustomParseComponent("TextRenderer", /*#__PURE__*/ _async_to_generator(function(instance, item
|
|
5695
|
+
ReflectionParser.registerCustomParseComponent("TextRenderer", /*#__PURE__*/ _async_to_generator(function(instance, item) {
|
|
5559
5696
|
var props;
|
|
5560
5697
|
return __generator(this, function(_state) {
|
|
5561
5698
|
props = item.props;
|
|
5562
5699
|
if (!props.font) {
|
|
5563
5700
|
// @ts-ignore
|
|
5564
|
-
instance.font = Font.createFromOS(engine, props.fontFamily || "Arial");
|
|
5701
|
+
instance.font = Font.createFromOS(instance.engine, props.fontFamily || "Arial");
|
|
5565
5702
|
}
|
|
5566
5703
|
return [
|
|
5567
5704
|
2,
|
|
@@ -5617,7 +5754,7 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
5617
5754
|
throw "BlendShape animation is not supported when using draco.";
|
|
5618
5755
|
}, function() {
|
|
5619
5756
|
return decodedGeometry.index.array;
|
|
5620
|
-
}, context.keepMeshData);
|
|
5757
|
+
}, context.params.keepMeshData);
|
|
5621
5758
|
});
|
|
5622
5759
|
});
|
|
5623
5760
|
};
|
|
@@ -6062,5 +6199,5 @@ GALACEAN_animation_event = __decorate([
|
|
|
6062
6199
|
registerGLTFExtension("GALACEAN_animation_event", GLTFExtensionMode.AdditiveParse)
|
|
6063
6200
|
], GALACEAN_animation_event);
|
|
6064
6201
|
|
|
6065
|
-
export { AnimationClipDecoder, ComponentMap, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, KTX2Loader, KTX2TargetFormat, MeshDecoder, MeshLoader$1 as MeshLoader, PrefabParser, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
|
|
6202
|
+
export { AnimationClipDecoder, ComponentMap, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, KTX2Loader, KTX2TargetFormat, KTX2Transcoder, MeshDecoder, MeshLoader$1 as MeshLoader, PrefabParser, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
|
|
6066
6203
|
//# sourceMappingURL=module.js.map
|