@needle-tools/engine 4.5.0-alpha.1 → 4.5.0-alpha.3
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 +15 -1
- package/dist/{needle-engine.bundle-3d05185b.js → needle-engine.bundle-1b8f44f4.js} +4945 -4907
- package/dist/{needle-engine.bundle-b2e17f0e.light.min.js → needle-engine.bundle-56f095f1.light.min.js} +125 -119
- package/dist/{needle-engine.bundle-d7d53476.light.umd.cjs → needle-engine.bundle-9fe9a394.light.umd.cjs} +137 -131
- package/dist/{needle-engine.bundle-e4ae93a2.min.js → needle-engine.bundle-baacde19.min.js} +125 -119
- package/dist/{needle-engine.bundle-c44e02c7.light.js → needle-engine.bundle-d710d96f.light.js} +4947 -4909
- package/dist/{needle-engine.bundle-f496c70e.umd.cjs → needle-engine.bundle-ef2b8438.umd.cjs} +135 -129
- package/dist/needle-engine.js +467 -471
- package/dist/needle-engine.light.js +467 -471
- 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_registry.d.ts +2 -2
- package/lib/engine/engine_context_registry.js +2 -2
- package/lib/engine/engine_context_registry.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_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/ContactShadows.d.ts +12 -0
- package/lib/engine-components/ContactShadows.js +23 -0
- package/lib/engine-components/ContactShadows.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/src/engine/api.ts +2 -1
- package/src/engine/engine_context_registry.ts +2 -2
- package/src/engine/engine_gltf.ts +2 -2
- package/src/engine/engine_gltf_builtin_components.ts +7 -7
- 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/ContactShadows.ts +24 -0
- package/src/engine-components/webxr/controllers/XRControllerModel.ts +4 -5
- 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.3",
|
|
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/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";
|
|
@@ -5,11 +5,11 @@ const debug = typeof window !== undefined ? window.location.search.includes("deb
|
|
|
5
5
|
/** The various events that can be dispatched by a Needle Engine {@link IContext} instance
|
|
6
6
|
*/
|
|
7
7
|
export enum ContextEvent {
|
|
8
|
-
/** called when the context is registered to the registry, the context is not fully initialized at this point */
|
|
8
|
+
/** called once when the context is registered to the registry, the context is not fully initialized at this point */
|
|
9
9
|
ContextRegistered = "ContextRegistered",
|
|
10
10
|
/** called before the first glb is loaded, can be used to initialize physics engine, is awaited */
|
|
11
11
|
ContextCreationStart = "ContextCreationStart",
|
|
12
|
-
/** Called when the context has been created, before the first frame */
|
|
12
|
+
/** Called when the context content has been created, before the first frame. This callback may be called multiple time during the lifetime of the context, e.g. every time when the context is created and cleared */
|
|
13
13
|
ContextCreated = "ContextCreated",
|
|
14
14
|
/** Called after the first frame has been rendered after creation */
|
|
15
15
|
ContextFirstFrameRendered = "ContextFirstFrameRendered",
|
|
@@ -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;
|
|
@@ -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
|
+
}
|