@needle-tools/engine 4.5.0-alpha → 4.5.0-alpha.2
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/CHANGELOG.md +16 -1
- package/dist/{needle-engine.bundle-a2aadea9.light.js → needle-engine.bundle-1526f05b.light.js} +4883 -4855
- package/dist/{needle-engine.bundle-ff2e699c.light.min.js → needle-engine.bundle-15b19b2c.light.min.js} +122 -116
- package/dist/{needle-engine.bundle-19ca6713.min.js → needle-engine.bundle-2024e2b3.min.js} +122 -116
- package/dist/{needle-engine.bundle-916d62ca.js → needle-engine.bundle-53f80c62.js} +4887 -4859
- package/dist/{needle-engine.bundle-8bee539f.umd.cjs → needle-engine.bundle-a52706c5.umd.cjs} +120 -114
- package/dist/{needle-engine.bundle-032ef70a.light.umd.cjs → needle-engine.bundle-f3c8cffc.light.umd.cjs} +131 -125
- package/dist/needle-engine.js +467 -470
- package/dist/needle-engine.light.js +467 -470
- package/dist/needle-engine.light.min.js +1 -1
- package/dist/needle-engine.light.umd.cjs +1 -1
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/lib/engine/api.d.ts +2 -1
- package/lib/engine/api.js +2 -1
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/engine_context.js +5 -1
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_gltf.d.ts +2 -2
- package/lib/engine/engine_gltf_builtin_components.d.ts +5 -1
- package/lib/engine/engine_gltf_builtin_components.js +2 -2
- package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
- package/lib/engine/engine_hot_reload.d.ts +1 -0
- package/lib/engine/engine_hot_reload.js +16 -3
- package/lib/engine/engine_hot_reload.js.map +1 -1
- package/lib/engine/engine_loaders.callbacks.d.ts +62 -0
- package/lib/engine/engine_loaders.callbacks.js +56 -0
- package/lib/engine/engine_loaders.callbacks.js.map +1 -0
- package/lib/engine/engine_loaders.d.ts +44 -9
- package/lib/engine/engine_loaders.gltf.d.ts +13 -0
- package/lib/engine/engine_loaders.gltf.js +63 -0
- package/lib/engine/engine_loaders.gltf.js.map +1 -0
- package/lib/engine/engine_loaders.js +305 -48
- package/lib/engine/engine_loaders.js.map +1 -1
- package/lib/engine/engine_types.d.ts +7 -1
- package/lib/engine/engine_types.js +7 -0
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/engine_utils_format.d.ts +5 -3
- package/lib/engine/engine_utils_format.js +26 -10
- package/lib/engine/engine_utils_format.js.map +1 -1
- package/lib/engine/extensions/extensions.d.ts +3 -2
- package/lib/engine/extensions/extensions.js +10 -6
- package/lib/engine/extensions/extensions.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.attributes.d.ts +3 -6
- package/lib/engine/webcomponents/needle-engine.js +2 -2
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.loading.js +26 -34
- package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
- package/lib/engine-components/AvatarLoader.js +1 -1
- package/lib/engine-components/AvatarLoader.js.map +1 -1
- package/lib/engine-components/Component.js +5 -0
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/webxr/controllers/XRControllerModel.js +4 -3
- package/lib/engine-components/webxr/controllers/XRControllerModel.js.map +1 -1
- package/package.json +1 -1
- package/plugins/vite/reload.js +8 -20
- package/src/engine/api.ts +2 -1
- package/src/engine/engine_context.ts +5 -1
- package/src/engine/engine_gltf.ts +2 -2
- package/src/engine/engine_gltf_builtin_components.ts +7 -7
- package/src/engine/engine_hot_reload.ts +16 -4
- package/src/engine/engine_loaders.callbacks.ts +88 -0
- package/src/engine/engine_loaders.gltf.ts +82 -0
- package/src/engine/engine_loaders.ts +332 -54
- package/src/engine/engine_types.ts +34 -18
- package/src/engine/engine_utils_format.ts +32 -14
- package/src/engine/extensions/extensions.ts +12 -7
- package/src/engine/webcomponents/needle-engine.attributes.ts +3 -6
- package/src/engine/webcomponents/needle-engine.loading.ts +28 -36
- package/src/engine/webcomponents/needle-engine.ts +2 -2
- package/src/engine-components/AvatarLoader.ts +1 -1
- package/src/engine-components/Component.ts +51 -48
- package/src/engine-components/webxr/controllers/XRControllerModel.ts +4 -3
- package/src/engine/engine_scenetools.ts +0 -379
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XRControllerModel.js","sourceRoot":"","sources":["../../../../src/engine-components/webxr/controllers/XRControllerModel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"XRControllerModel.js","sourceRoot":"","sources":["../../../../src/engine-components/webxr/controllers/XRControllerModel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.5.0-alpha",
|
|
3
|
+
"version": "4.5.0-alpha.2",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
|
|
5
5
|
"main": "dist/needle-engine.min.js",
|
|
6
6
|
"exports": {
|
package/plugins/vite/reload.js
CHANGED
|
@@ -267,28 +267,16 @@ function removeVersionQueryArgument(content) {
|
|
|
267
267
|
|
|
268
268
|
|
|
269
269
|
function insertScriptRegisterHotReloadCode(src, filePath) {
|
|
270
|
-
|
|
270
|
+
|
|
271
|
+
// We only want to inject the hot reload code in the needle-engine root file
|
|
272
|
+
if(!filePath.includes("/src/needle-engine.ts")) {
|
|
271
273
|
return src;
|
|
272
274
|
}
|
|
273
|
-
|
|
274
|
-
// this code
|
|
275
|
+
console.log("[Needle HMR] Hot reload is enabled");
|
|
276
|
+
// this code let's the engine know that we are in hot reload mode
|
|
275
277
|
const code = `
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
import { Component as ComponentType } from "./engine-components/Component";
|
|
279
|
-
|
|
280
|
-
const prototype = ComponentType.prototype;
|
|
281
|
-
const created = prototype.__internalNewInstanceCreated;
|
|
282
|
-
prototype.__internalNewInstanceCreated = function (...args) {
|
|
283
|
-
created.call(this, ...args);
|
|
284
|
-
register(this);
|
|
285
|
-
}
|
|
286
|
-
const destroy = prototype.__internalDestroy;
|
|
287
|
-
prototype.__internalDestroy = function (...args) {
|
|
288
|
-
destroy.call(this, ...args);
|
|
289
|
-
unregister(this);
|
|
290
|
-
}
|
|
291
|
-
`
|
|
278
|
+
globalThis.NEEDLE_HOT_RELOAD_ENABLED = true;
|
|
279
|
+
`
|
|
292
280
|
return code + src;
|
|
293
281
|
}
|
|
294
282
|
|
|
@@ -357,7 +345,7 @@ if (import.meta.hot) {
|
|
|
357
345
|
filesUsingHotReload.add(originalFilePath);
|
|
358
346
|
|
|
359
347
|
return {
|
|
360
|
-
code:
|
|
348
|
+
code: src + "\n" + code,
|
|
361
349
|
map: null
|
|
362
350
|
}
|
|
363
351
|
|
package/src/engine/api.ts
CHANGED
|
@@ -58,7 +58,8 @@ export * from "./engine_physics.types.js";
|
|
|
58
58
|
export * from "./engine_physics_rapier.js";
|
|
59
59
|
export * from "./engine_playerview.js";
|
|
60
60
|
export * from "./engine_scenelighting.js";
|
|
61
|
-
export
|
|
61
|
+
export { loadAsset, parseSync, loadSync } from "./engine_loaders.js";
|
|
62
|
+
export { NeedleEngineModelLoader } from "./engine_loaders.callbacks.js";
|
|
62
63
|
export * from "./engine_serialization.js";
|
|
63
64
|
export { type ISerializable } from "./engine_serialization_core.js";
|
|
64
65
|
export * from "./engine_test_utils.js";
|
|
@@ -1376,7 +1376,11 @@ export class Context implements IContext {
|
|
|
1376
1376
|
private internalOnBeforeRender(timestamp: DOMHighResTimeStamp, frame: XRFrame | null) {
|
|
1377
1377
|
|
|
1378
1378
|
// If we don't auto reset we get wrong stats in WebXR. AutoReset was turned off to support custom blits and count them too
|
|
1379
|
-
|
|
1379
|
+
// But when we're using postprocessing we need to reset manually: https://discourse.threejs.org/t/accessing-draw-calls-when-using-effectcomposer
|
|
1380
|
+
this.renderer.info.autoReset = frame ? true : false;
|
|
1381
|
+
if (this.renderer.info.autoReset === false) {
|
|
1382
|
+
this.renderer.info.reset();
|
|
1383
|
+
}
|
|
1380
1384
|
|
|
1381
1385
|
|
|
1382
1386
|
const sessionStarted = frame !== null && this._xrFrame === null;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { SerializationContext } from "./engine_serialization_core.js";
|
|
2
2
|
import { Context } from "./engine_setup.js";
|
|
3
|
-
import type { ConstructorConcrete, Model, SourceIdentifier, UIDProvider } from "./engine_types.js";
|
|
3
|
+
import type { ConstructorConcrete, GLTF, Model, SourceIdentifier, UIDProvider } from "./engine_types.js";
|
|
4
4
|
import { NEEDLE_components } from "./extensions/NEEDLE_components.js";
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
export interface INeedleGltfLoader {
|
|
8
|
-
createBuiltinComponents(context: Context, gltfId: SourceIdentifier, gltf, seed: number | null | UIDProvider, extension?: NEEDLE_components): Promise<void>
|
|
8
|
+
createBuiltinComponents(context: Context, gltfId: SourceIdentifier, gltf: GLTF, seed: number | null | UIDProvider, extension?: NEEDLE_components): Promise<void>
|
|
9
9
|
writeBuiltinComponentData(comp: object, context: SerializationContext);
|
|
10
10
|
parseSync(context: Context, data: string | ArrayBuffer, path: string, seed: number | UIDProvider | null): Promise<Model | undefined>;
|
|
11
11
|
loadSync(context: Context, url: string, sourceId: string, seed: number | UIDProvider | null, prog?: (prog: ProgressEvent) => void): Promise<Model | undefined>
|
|
@@ -15,6 +15,8 @@ import type { GuidsMap, ICamera, ICollider, IComponent, IGameObject, IRigidbody,
|
|
|
15
15
|
import { TypeStore } from "./engine_typestore.js";
|
|
16
16
|
import { getParam } from "./engine_utils.js";
|
|
17
17
|
import { NEEDLE_components } from "./extensions/NEEDLE_components.js";
|
|
18
|
+
import { type GLTF } from "three/examples/jsm/loaders/GLTFLoader.js";
|
|
19
|
+
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
const debug = debugExtension;
|
|
@@ -41,7 +43,7 @@ export function writeBuiltinComponentData(comp: IComponent, context: Serializati
|
|
|
41
43
|
const typeImplementationInformation = new ImplementationInformation();
|
|
42
44
|
const $context_deserialize_queue = Symbol("deserialize-queue");
|
|
43
45
|
|
|
44
|
-
export async function createBuiltinComponents(context: Context, gltfId: SourceIdentifier, gltf, seed: number | null | UIDProvider = null, extension?: NEEDLE_components) {
|
|
46
|
+
export async function createBuiltinComponents(context: Context, gltfId: SourceIdentifier, gltf: GLTF & { children?: Array<Object3D> }, seed: number | null | UIDProvider = null, extension?: NEEDLE_components) {
|
|
45
47
|
if (!gltf) {
|
|
46
48
|
console.debug("Can not create component instances: gltf is null");
|
|
47
49
|
return;
|
|
@@ -73,6 +75,7 @@ export async function createBuiltinComponents(context: Context, gltfId: SourceId
|
|
|
73
75
|
await onCreateBuiltinComponents(serializationContext, scene, deserializeQueue, lateResolve);
|
|
74
76
|
}
|
|
75
77
|
}
|
|
78
|
+
// TODO: when is the gltf here an object3d?
|
|
76
79
|
if (gltf.children) {
|
|
77
80
|
for (const ch of gltf.children) {
|
|
78
81
|
await onCreateBuiltinComponents(serializationContext, ch, deserializeQueue, lateResolve);
|
|
@@ -100,7 +103,8 @@ export async function createBuiltinComponents(context: Context, gltfId: SourceId
|
|
|
100
103
|
// TODO: should we do this after setup callbacks now?
|
|
101
104
|
const guidsMap: GuidsMap = {};
|
|
102
105
|
const resolveGuids: IHasResolveGuids[] = [];
|
|
103
|
-
|
|
106
|
+
// TODO: when is the gltf here an object3d?
|
|
107
|
+
recursiveCreateGuids(gltf as any, idProvider, guidsMap, resolveGuids);
|
|
104
108
|
for (const scene of gltf.scenes)
|
|
105
109
|
recursiveCreateGuids(scene, idProvider, guidsMap, resolveGuids);
|
|
106
110
|
// make sure to resolve all guids AFTER new guids have been assigned
|
|
@@ -109,10 +113,6 @@ export async function createBuiltinComponents(context: Context, gltfId: SourceId
|
|
|
109
113
|
}
|
|
110
114
|
}
|
|
111
115
|
});
|
|
112
|
-
|
|
113
|
-
// tools.findAnimationsLate(context, gltf, context.new_scripts_pre_setup_callbacks);
|
|
114
|
-
|
|
115
|
-
// console.log("finished creating builtin components", gltf.scene?.name, gltf);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
declare type IHasResolveGuids = {
|
|
@@ -129,7 +129,7 @@ const originalComponentNameKey = Symbol("original-component-name");
|
|
|
129
129
|
// TODO: clear this when re-loading the context
|
|
130
130
|
const idProviderCache = new Map<string, InstantiateIdProvider>();
|
|
131
131
|
|
|
132
|
-
function recursiveCreateGuids(obj:
|
|
132
|
+
function recursiveCreateGuids(obj: Object3D, idProvider: UIDProvider | null, guidsMap: GuidsMap, resolveGuids: IHasResolveGuids[]) {
|
|
133
133
|
if (idProvider === null) return;
|
|
134
134
|
if (!obj) return;
|
|
135
135
|
const prev = obj.guid;
|
|
@@ -32,9 +32,17 @@ export function isHotReloading() {
|
|
|
32
32
|
return isApplyingChanges;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
export function isHotReloadEnabled() {
|
|
36
|
+
return globalThis["NEEDLE_HOT_RELOAD_ENABLED"] === true;
|
|
37
|
+
}
|
|
38
|
+
|
|
35
39
|
/** @internal */
|
|
36
40
|
export function registerHotReloadType(instance: object) {
|
|
37
|
-
if (isApplyingChanges)
|
|
41
|
+
if (isApplyingChanges) {
|
|
42
|
+
if (debug) console.warn("[Needle Engine] Hot reloading is in progress, not registering instance", instance);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if(debug) console.log("[Needle Engine] Registering hot reload instance", instance);
|
|
38
46
|
const type = instance.constructor;
|
|
39
47
|
const name = type.name;
|
|
40
48
|
if (!instances.has(name)) {
|
|
@@ -47,7 +55,11 @@ export function registerHotReloadType(instance: object) {
|
|
|
47
55
|
|
|
48
56
|
/** @internal */
|
|
49
57
|
export function unregisterHotReloadType(instance: object) {
|
|
50
|
-
if (isApplyingChanges)
|
|
58
|
+
if (isApplyingChanges) {
|
|
59
|
+
if (debug) console.warn("[Needle Engine] Hot reloading is in progress, not unregistering instance", instance);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if(debug) console.log("[Needle Engine] Unregistering hot reload instance", instance);
|
|
51
63
|
const type = instance.constructor;
|
|
52
64
|
const name = type.name;
|
|
53
65
|
const instancesOfType = instances.get(name);
|
|
@@ -97,7 +109,7 @@ export function applyHMRChanges(newModule): boolean {
|
|
|
97
109
|
|
|
98
110
|
const typeToUpdate = TypeStore.get(key);
|
|
99
111
|
if (!typeToUpdate) {
|
|
100
|
-
if(debug) console.log("[HMR] Type not found: " + key)
|
|
112
|
+
if (debug) console.log("[HMR] Type not found: " + key)
|
|
101
113
|
continue;
|
|
102
114
|
}
|
|
103
115
|
const newType = newModule[key];
|
|
@@ -106,7 +118,7 @@ export function applyHMRChanges(newModule): boolean {
|
|
|
106
118
|
let hotReloadMessage = "[Needle Engine] Updating type: " + key;
|
|
107
119
|
const typesCount = instancesOfType?.length ?? -1;
|
|
108
120
|
if (typesCount > 0) hotReloadMessage += " x" + typesCount;
|
|
109
|
-
else hotReloadMessage += "
|
|
121
|
+
else hotReloadMessage += " (No instances registered)";
|
|
110
122
|
console.log(hotReloadMessage);
|
|
111
123
|
|
|
112
124
|
// Update prototype (methods and properties)
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { BufferGeometry, Object3D } from "three";
|
|
2
|
+
import { Context } from "./engine_setup.js";
|
|
3
|
+
import { CustomModel } from "./engine_types.js";
|
|
4
|
+
import { type FileType } from "./engine_utils_format.js";
|
|
5
|
+
|
|
6
|
+
export type ValidLoaderReturnType = CustomModel | Object3D | BufferGeometry;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/** @internal */
|
|
10
|
+
export type CustomLoader = {
|
|
11
|
+
/** The name of the loader. This is used for debugging purposes. */
|
|
12
|
+
name?: string,
|
|
13
|
+
/** Load the model from the given URL. This method should return a promise that resolves to the loaded model. */
|
|
14
|
+
loadAsync: (url: string, onProgress?: ((event: ProgressEvent<EventTarget>) => void) | undefined) => Promise<ValidLoaderReturnType>,
|
|
15
|
+
/** Load the model given a buffer. This method should return the loaded model. */
|
|
16
|
+
parse: (buffer: ArrayBuffer | string, path: string) => ValidLoaderReturnType,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
type CustomLoaderCallback = (args: { context: Context, url: string, filetype: FileType }) => CustomLoader | null | undefined | void;
|
|
20
|
+
/** @internal */
|
|
21
|
+
export const registeredModelLoaderCallbacks: Array<CustomLoaderCallback> = [];
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
type FileTypeCallback = (args: {
|
|
25
|
+
/** The URL of the file to load */
|
|
26
|
+
url: string,
|
|
27
|
+
/** The response of the range request with the first few bytes of the file (bytes are available in the 'args.bytes' property of this callback) */
|
|
28
|
+
response: Response,
|
|
29
|
+
/** The mimetype of the file as provided by the request header */
|
|
30
|
+
contentType: string | null,
|
|
31
|
+
/** The first few bytes of the file as a Uint8Array */
|
|
32
|
+
bytes: Uint8Array
|
|
33
|
+
}) => FileType | null;
|
|
34
|
+
/** @internal */
|
|
35
|
+
export const registeredFileTypeCallbacks: Array<FileTypeCallback> = [];
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* NeedleEngineModelLoader is a namespace that provides functions to register custom model loaders and mimetype callbacks.
|
|
40
|
+
* It allows you to create custom loaders for specific file types and determine the mimetype of files based on their content.
|
|
41
|
+
*/
|
|
42
|
+
export namespace NeedleEngineModelLoader {
|
|
43
|
+
|
|
44
|
+
// export type ModelLoaderPlugin = {
|
|
45
|
+
// name: string,
|
|
46
|
+
// canLoad: (url: string, mimetype: string) => boolean,
|
|
47
|
+
// }
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Register a custom loader callback. For every file that is requested this callback is called with the url and mimetype. It should return a custom loader or null if it does not want to handle the file.
|
|
51
|
+
* @param callback The callback to register
|
|
52
|
+
* @returns A function to unregister the callback
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { onCreateModelLoader } from "@needle-tools/engine";
|
|
56
|
+
* const unregister = onCreateModelLoader((url, mimetype) => {
|
|
57
|
+
* if (mimetype === "application/vnd.usdz+zip") {
|
|
58
|
+
* return new CustomLoader();
|
|
59
|
+
* }
|
|
60
|
+
* return null;
|
|
61
|
+
* });
|
|
62
|
+
*/
|
|
63
|
+
export function onCreateCustomModelLoader(callback: CustomLoaderCallback) {
|
|
64
|
+
registeredModelLoaderCallbacks.push(callback);
|
|
65
|
+
return () => {
|
|
66
|
+
const index = registeredModelLoaderCallbacks.indexOf(callback);
|
|
67
|
+
if (index >= 0) {
|
|
68
|
+
registeredModelLoaderCallbacks.splice(index, 1);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Register a callback to determine the mimetype of a file. This is to support custom loaders. The callback will provide the URL of the file to load + a range request response with the first few bytes of the file. The callback should return a mimetype or null if it does not want to handle the file.
|
|
75
|
+
* @param callback The callback to register
|
|
76
|
+
* @returns A function to unregister the callback
|
|
77
|
+
*
|
|
78
|
+
*/
|
|
79
|
+
export function onDetermineModelFiletype(callback: FileTypeCallback): (() => void) {
|
|
80
|
+
registeredFileTypeCallbacks.push(callback);
|
|
81
|
+
return () => {
|
|
82
|
+
const index = registeredFileTypeCallbacks.indexOf(callback);
|
|
83
|
+
if (index >= 0) {
|
|
84
|
+
registeredFileTypeCallbacks.splice(index, 1);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
|
|
2
|
+
import { addDracoAndKTX2Loaders as addDracoAndKTX2LoadersGLTFProgressive, configureLoader, createLoaders, setDracoDecoderLocation, setKTX2TranscoderLocation } from '@needle-tools/gltf-progressive';
|
|
3
|
+
import { MeshoptDecoder } from 'three/examples/jsm/libs/meshopt_decoder.module.js';
|
|
4
|
+
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
|
|
5
|
+
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'
|
|
6
|
+
import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js';
|
|
7
|
+
|
|
8
|
+
import { Context } from "./engine_setup.js"
|
|
9
|
+
import { getParam } from "./engine_utils.js";
|
|
10
|
+
|
|
11
|
+
const debug = getParam("debugdecoders");
|
|
12
|
+
|
|
13
|
+
let loaders: null | { dracoLoader: DRACOLoader, ktx2Loader: KTX2Loader, meshoptDecoder: typeof MeshoptDecoder } = null;
|
|
14
|
+
|
|
15
|
+
function ensureLoaders() {
|
|
16
|
+
if (!loaders) {
|
|
17
|
+
const res = createLoaders(null);
|
|
18
|
+
loaders = { dracoLoader: res.dracoLoader, ktx2Loader: res.ktx2Loader, meshoptDecoder: res.meshoptDecoder };
|
|
19
|
+
}
|
|
20
|
+
return loaders;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function setDracoDecoderPath(path: string | undefined) {
|
|
24
|
+
if (path !== undefined && typeof path === "string") {
|
|
25
|
+
setDracoDecoderLocation(path);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function setDracoDecoderType(type: string | undefined) {
|
|
30
|
+
if (type !== undefined && typeof type === "string") {
|
|
31
|
+
if (type !== "js") {
|
|
32
|
+
const loaders = ensureLoaders();
|
|
33
|
+
if (debug) console.log("Setting draco decoder type to", type);
|
|
34
|
+
loaders.dracoLoader.setDecoderConfig({ type: type });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function setKtx2TranscoderPath(path: string) {
|
|
40
|
+
if (path !== undefined && typeof path === "string") {
|
|
41
|
+
setKTX2TranscoderLocation(path);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function setMeshoptDecoder(_meshoptDecoder: any) {
|
|
46
|
+
if (_meshoptDecoder !== undefined) {
|
|
47
|
+
const loaders = ensureLoaders();
|
|
48
|
+
loaders.meshoptDecoder = _meshoptDecoder;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Add Draco, Meshopt and KTX2 loaders to a GLTFLoader instance.
|
|
54
|
+
* @param loader The GLTFLoader instance to add the loaders to.
|
|
55
|
+
* @param context The context object containing the renderer.
|
|
56
|
+
* @returns The GLTFLoader instance with the loaders added.
|
|
57
|
+
*/
|
|
58
|
+
export function addDracoAndKTX2Loaders(loader: GLTFLoader, context: Pick<Context, "renderer">) {
|
|
59
|
+
|
|
60
|
+
const loaders = ensureLoaders();
|
|
61
|
+
|
|
62
|
+
if (context.renderer) {
|
|
63
|
+
loaders.ktx2Loader.detectSupport(context.renderer);
|
|
64
|
+
}
|
|
65
|
+
else
|
|
66
|
+
console.warn("No renderer provided to detect ktx2 support - loading KTX2 textures will probably fail");
|
|
67
|
+
|
|
68
|
+
addDracoAndKTX2LoadersGLTFProgressive(loader);
|
|
69
|
+
|
|
70
|
+
if (!loader.dracoLoader)
|
|
71
|
+
loader.setDRACOLoader(loaders.dracoLoader);
|
|
72
|
+
if (!(loader as any).ktx2Loader)
|
|
73
|
+
loader.setKTX2Loader(loaders.ktx2Loader);
|
|
74
|
+
if (!(loader as any).meshoptDecoder)
|
|
75
|
+
loader.setMeshoptDecoder(loaders.meshoptDecoder);
|
|
76
|
+
|
|
77
|
+
configureLoader(loader, {
|
|
78
|
+
progressive: true,
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
return loader;
|
|
82
|
+
}
|