@needle-tools/engine 4.3.0 → 4.3.1
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 +5 -0
- package/components.needle.json +1 -1
- package/dist/needle-engine.bundle.js +2925 -2899
- package/dist/needle-engine.bundle.light.js +2925 -2899
- package/dist/needle-engine.bundle.light.min.js +115 -99
- package/dist/needle-engine.bundle.light.umd.cjs +118 -102
- package/dist/needle-engine.bundle.min.js +115 -99
- package/dist/needle-engine.bundle.umd.cjs +124 -108
- package/dist/needle-engine.js +509 -507
- package/dist/needle-engine.light.js +509 -507
- 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-components/Duplicatable.d.ts +2 -6
- package/lib/engine-components/Duplicatable.js +21 -20
- package/lib/engine-components/Duplicatable.js.map +1 -1
- package/lib/engine-components/OrbitControls.d.ts +1 -0
- package/lib/engine-components/OrbitControls.js +8 -0
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/Renderer.js +12 -6
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/RendererInstancing.js +27 -11
- package/lib/engine-components/RendererInstancing.js.map +1 -1
- package/lib/engine-components/ui/Canvas.js +2 -2
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/needle-engine.js +8 -6
- package/lib/needle-engine.js.map +1 -1
- package/package.json +1 -1
- package/plugins/common/buildinfo.js +8 -3
- package/plugins/vite/copyfiles.js +1 -1
- package/src/engine-components/Duplicatable.ts +21 -19
- package/src/engine-components/OrbitControls.ts +8 -0
- package/src/engine-components/Renderer.ts +12 -5
- package/src/engine-components/RendererInstancing.ts +28 -13
- package/src/engine-components/ui/Canvas.ts +2 -2
- package/src/needle-engine.ts +8 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Canvas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Canvas.ts"],"names":[],"mappings":"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"}
|
package/lib/needle-engine.js
CHANGED
|
@@ -6,7 +6,7 @@ export * from "./engine-components/api.js";
|
|
|
6
6
|
export * from "./engine-components-experimental/api.js";
|
|
7
7
|
export * from "./engine-schemes/api.js";
|
|
8
8
|
// make accessible for external javascript
|
|
9
|
-
import { Context, loadSync, NeedleXRSession, onBeforeRender, onStart, onUpdate, VERSION } from "./engine/api.js";
|
|
9
|
+
import { Context, loadSync, NeedleXRSession, onAfterRender, onBeforeRender, onClear, onDestroy, onInitialized, onStart, onUpdate, VERSION } from "./engine/api.js";
|
|
10
10
|
const Needle = {
|
|
11
11
|
VERSION: VERSION,
|
|
12
12
|
Context: Context,
|
|
@@ -14,11 +14,13 @@ const Needle = {
|
|
|
14
14
|
gltf: {
|
|
15
15
|
loadFromURL: loadSync,
|
|
16
16
|
},
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
onStart: onStart,
|
|
18
|
+
onUpdate: onUpdate,
|
|
19
|
+
onBeforeRender: onBeforeRender,
|
|
20
|
+
onAfterRender: onAfterRender,
|
|
21
|
+
onInitializedContext: onInitialized,
|
|
22
|
+
onDestroyContext: onDestroy,
|
|
23
|
+
onClearContext: onClear,
|
|
22
24
|
};
|
|
23
25
|
if (globalThis["Needle"]?.VERSION !== undefined) {
|
|
24
26
|
console.warn(`Needle Engine is already imported: ${globalThis["Needle"].VERSION}`);
|
package/lib/needle-engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"needle-engine.js","sourceRoot":"","sources":["../src/needle-engine.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,0BAA0B,CAAC;AAClC,OAAO,0BAA0B,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AAExC,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"needle-engine.js","sourceRoot":"","sources":["../src/needle-engine.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,0BAA0B,CAAC;AAClC,OAAO,0BAA0B,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AAExC,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACnK,MAAM,MAAM,GAAG;IACX,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,eAAe,EAAE,eAAe;IAChC,IAAI,EAAE;QACF,WAAW,EAAE,QAAQ;KACxB;IACD,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,cAAc;IAC9B,aAAa,EAAE,aAAa;IAC5B,oBAAoB,EAAE,aAAa;IACnC,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,OAAO;CAC1B,CAAC;AACF,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,SAAS,EAAE;IAC7C,OAAO,CAAC,IAAI,CAAC,sCAAsC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;CACtF;AACD,SAAS,cAAc,CAAC,GAAW;IAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;AACL,CAAC;AACD,OAAO,KAAK,SAAS,MAAM,kCAAkC,CAAC;AAC9D,cAAc,CAAC,SAAS,CAAC,CAAC;AAE1B,OAAO,KAAK,UAAU,MAAM,2CAA2C,CAAC;AACxE,cAAc,CAAC,UAAU,CAAC,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;IACzD,QAAQ,MAAM,EAAE;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACP,SAAS;QACb;YACI,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM;KACb;CACJ;AAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;IACvB,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;CACjC;KACI;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3C;CACJ;AAGD,wBAAwB;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IACtB,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;CAC/B;;IACI,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.1",
|
|
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": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import fs, { statSync } from 'fs';
|
|
1
|
+
import fs, { existsSync, statSync } from 'fs';
|
|
2
2
|
import crypto from 'crypto';
|
|
3
3
|
|
|
4
4
|
|
|
@@ -21,7 +21,12 @@ export function createBuildInfoFile(buildDirectory) {
|
|
|
21
21
|
const buildInfoPath = `${buildDirectory}/needle.buildinfo.json`;
|
|
22
22
|
const totalSizeInMB = buildInfo.totalsize / 1024 / 1024;
|
|
23
23
|
console.log(`[needle-buildinfo] - Collected ${buildInfo.files.length} files (${totalSizeInMB.toFixed(2)} MB). Writing build info to \"${buildInfoPath}\"`);
|
|
24
|
-
|
|
24
|
+
const str = JSON.stringify(buildInfo);
|
|
25
|
+
fs.writeFileSync(buildInfoPath, str);
|
|
26
|
+
if(!existsSync(buildDirectory)) {
|
|
27
|
+
console.warn(`WARN: Could not write build info file to \"${buildInfoPath}\"`);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
31
|
|
|
27
32
|
/** Recursively collect all files in a directory
|
|
@@ -42,7 +47,7 @@ function recursivelyCollectFiles(directory, path, info) {
|
|
|
42
47
|
console.log(`[needle-buildinfo] - Collect files in \"/${newPath}\"`);
|
|
43
48
|
recursivelyCollectFiles(newDirectory, newPath, info);
|
|
44
49
|
} else {
|
|
45
|
-
const relpath = `${path}/${entry.name}`;
|
|
50
|
+
const relpath = path?.length <= 0 ? entry.name : `${path}/${entry.name}`;
|
|
46
51
|
// console.log("[needle-buildinfo] - New File: " + relpath);
|
|
47
52
|
const filehash = crypto.createHash('sha256');
|
|
48
53
|
const fullpath = `${directory}/${entry.name}`;
|
|
@@ -65,7 +65,7 @@ async function run(buildstep, config) {
|
|
|
65
65
|
|
|
66
66
|
const outDir = resolve(baseDir, outdirName);
|
|
67
67
|
if (!existsSync(outDir)) {
|
|
68
|
-
mkdirSync(outDir);
|
|
68
|
+
mkdirSync(outDir, { recursive: true });
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
// copy a list of files or directories declared in build.copy = [] in the needle.config.json
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Object3D, Quaternion, Vector3 } from "three";
|
|
2
2
|
|
|
3
3
|
import { isDevEnvironment } from "../engine/debug/index.js";
|
|
4
|
+
import { WaitForSeconds } from "../engine/engine_coroutine.js";
|
|
4
5
|
import { InstantiateOptions } from "../engine/engine_gameobject.js";
|
|
5
6
|
import { InstantiateIdProvider } from "../engine/engine_networking_instantiate.js";
|
|
6
7
|
import { serializable } from "../engine/engine_serialization_decorator.js";
|
|
@@ -30,17 +31,10 @@ export class Duplicatable extends Behaviour implements IPointerEventHandler {
|
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
33
|
* The maximum number of objects that can be duplicated in the interval.
|
|
33
|
-
* @default 10
|
|
34
|
-
*/
|
|
35
|
-
@serializable()
|
|
36
|
-
limitCount = 10;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* The interval in seconds in which the limitCount is reset.
|
|
40
34
|
* @default 60
|
|
41
35
|
*/
|
|
42
36
|
@serializable()
|
|
43
|
-
|
|
37
|
+
limitCount = 60;
|
|
44
38
|
|
|
45
39
|
private _currentCount = 0;
|
|
46
40
|
private _startPosition: Vector3 | null = null;
|
|
@@ -94,8 +88,9 @@ export class Duplicatable extends Behaviour implements IPointerEventHandler {
|
|
|
94
88
|
|
|
95
89
|
if (!this.gameObject.getComponentInParent(ObjectRaycaster))
|
|
96
90
|
this.gameObject.addComponent(ObjectRaycaster);
|
|
97
|
-
|
|
98
|
-
|
|
91
|
+
}
|
|
92
|
+
onEnable(): void {
|
|
93
|
+
this.startCoroutine(this.cloneLimitIntervalFn());
|
|
99
94
|
}
|
|
100
95
|
|
|
101
96
|
private _forwardPointerEvents: Map<Object3D, DragControls> = new Map();
|
|
@@ -131,7 +126,12 @@ export class Duplicatable extends Behaviour implements IPointerEventHandler {
|
|
|
131
126
|
}
|
|
132
127
|
}
|
|
133
128
|
else {
|
|
134
|
-
|
|
129
|
+
if (this._currentCount >= this.limitCount) {
|
|
130
|
+
console.warn(`[Duplicatable] Limit of ${this.limitCount} objects created within a few seconds reached. Please wait a moment before creating more objects.`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
console.warn(`[Duplicatable] Could not duplicate object.`);
|
|
134
|
+
}
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
|
|
@@ -145,19 +145,21 @@ export class Duplicatable extends Behaviour implements IPointerEventHandler {
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
private cloneLimitIntervalFn() {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
148
|
+
private *cloneLimitIntervalFn() {
|
|
149
|
+
while (this.activeAndEnabled && !this.destroyed) {
|
|
150
|
+
if (this._currentCount > 0) {
|
|
151
|
+
this._currentCount -= 1;
|
|
152
|
+
}
|
|
153
|
+
else if (this._currentCount < 0) {
|
|
154
|
+
this._currentCount = 0;
|
|
155
|
+
}
|
|
156
|
+
yield WaitForSeconds(1);
|
|
152
157
|
}
|
|
153
|
-
setTimeout(() => {
|
|
154
|
-
this.cloneLimitIntervalFn();
|
|
155
|
-
}, (this.limitInterval / this.limitCount) * 1000);
|
|
156
158
|
}
|
|
157
159
|
|
|
158
160
|
private handleDuplication(): Object3D | null {
|
|
159
161
|
if (!this.object) return null;
|
|
160
|
-
if (this._currentCount >= this.limitCount) return null;
|
|
162
|
+
if (this.limitCount > 0 && this._currentCount >= this.limitCount) return null;
|
|
161
163
|
if (this.object === this.gameObject) return null;
|
|
162
164
|
if (GameObject.isDestroyed(this.object)) {
|
|
163
165
|
this.object = null;
|
|
@@ -332,6 +332,7 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
332
332
|
|
|
333
333
|
this._activePointerEvents = [];
|
|
334
334
|
this.context.input.addEventListener("pointerdown", this._onPointerDown, { queue: InputEventQueue.Early });
|
|
335
|
+
this.context.input.addEventListener("pointerdown", this._onPointerDownLate, { queue: InputEventQueue.Late });
|
|
335
336
|
this.context.input.addEventListener("pointerup", this._onPointerUp, { queue: InputEventQueue.Early });
|
|
336
337
|
this.context.input.addEventListener("pointerup", this._onPointerUpLate, { queue: InputEventQueue.Late });
|
|
337
338
|
}
|
|
@@ -352,6 +353,7 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
352
353
|
}
|
|
353
354
|
this._activePointerEvents.length = 0;
|
|
354
355
|
this.context.input.removeEventListener("pointerdown", this._onPointerDown);
|
|
356
|
+
this.context.input.removeEventListener("pointerdown", this._onPointerDownLate);
|
|
355
357
|
this.context.input.removeEventListener("pointerup", this._onPointerUp);
|
|
356
358
|
this.context.input.removeEventListener("pointerup", this._onPointerUpLate);
|
|
357
359
|
}
|
|
@@ -363,6 +365,12 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
363
365
|
private _onPointerDown = (_evt: NEPointerEvent) => {
|
|
364
366
|
this._activePointerEvents.push(_evt);
|
|
365
367
|
}
|
|
368
|
+
private _onPointerDownLate = (evt: NEPointerEvent) => {
|
|
369
|
+
if(evt.used && this._controls) {
|
|
370
|
+
// Disabling orbit controls here because otherwise we get a slight movement when e.g. using DragControls
|
|
371
|
+
this._controls.enabled = false;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
366
374
|
|
|
367
375
|
private _onPointerUp = (evt: NEPointerEvent) => {
|
|
368
376
|
// make sure we cleanup the active pointer events
|
|
@@ -847,11 +847,18 @@ export class SkinnedMeshRenderer extends MeshRenderer {
|
|
|
847
847
|
for (const mesh of this.sharedMeshes) {
|
|
848
848
|
if (mesh instanceof SkinnedMesh) {
|
|
849
849
|
this._needUpdateBoundingSphere = false;
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
850
|
+
try {
|
|
851
|
+
const geometry = mesh.geometry;
|
|
852
|
+
const raycastmesh = getRaycastMesh(mesh);
|
|
853
|
+
if (raycastmesh) {
|
|
854
|
+
mesh.geometry = raycastmesh;
|
|
855
|
+
}
|
|
856
|
+
mesh.computeBoundingSphere();
|
|
857
|
+
mesh.geometry = geometry;
|
|
858
|
+
}
|
|
859
|
+
catch(err) {
|
|
860
|
+
console.error(`Error updating bounding sphere for ${mesh.name}`, err);
|
|
861
|
+
}
|
|
855
862
|
}
|
|
856
863
|
}
|
|
857
864
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BatchedMesh, BufferGeometry, Color, Material, Matrix4, Mesh, MeshStandardMaterial, Object3D, RawShaderMaterial } from "three";
|
|
2
2
|
|
|
3
3
|
import { isDevEnvironment, showBalloonError } from "../engine/debug/index.js";
|
|
4
|
+
import { Gizmos } from "../engine/engine_gizmos.js";
|
|
4
5
|
import { $instancingAutoUpdateBounds, $instancingRenderer, NEED_UPDATE_INSTANCE_KEY } from "../engine/engine_instancing.js";
|
|
5
6
|
import { Context } from "../engine/engine_setup.js";
|
|
6
7
|
import { getParam, makeIdFromRandomWords } from "../engine/engine_utils.js";
|
|
@@ -337,6 +338,12 @@ class InstancedMeshRenderer {
|
|
|
337
338
|
this._batchedMesh.computeBoundingBox();
|
|
338
339
|
if (sphere)
|
|
339
340
|
this._batchedMesh.computeBoundingSphere();
|
|
341
|
+
if (debugInstancing && this._batchedMesh.boundingSphere) {
|
|
342
|
+
const sphere = this._batchedMesh.boundingSphere;
|
|
343
|
+
// const worldPos = this._batchedMesh.worldPosition.add(sphere.center);
|
|
344
|
+
// const worldRadius = sphere!.radius;
|
|
345
|
+
Gizmos.DrawWireSphere(sphere.center, sphere.radius, 0x00ff00);
|
|
346
|
+
}
|
|
340
347
|
}
|
|
341
348
|
|
|
342
349
|
private _context: Context;
|
|
@@ -401,7 +408,7 @@ class InstancedMeshRenderer {
|
|
|
401
408
|
// break;
|
|
402
409
|
// }
|
|
403
410
|
// }
|
|
404
|
-
if(!canMergeMaterial) {
|
|
411
|
+
if (!canMergeMaterial) {
|
|
405
412
|
return false;
|
|
406
413
|
}
|
|
407
414
|
}
|
|
@@ -588,7 +595,7 @@ class InstancedMeshRenderer {
|
|
|
588
595
|
this._batchedMesh.layers.enableAll();
|
|
589
596
|
|
|
590
597
|
if (this._needUpdateBounds && this._batchedMesh[$instancingAutoUpdateBounds] === true) {
|
|
591
|
-
if (debugInstancing) console.log("Update instancing bounds", this.name, this._batchedMesh.matrixWorldNeedsUpdate);
|
|
598
|
+
if (debugInstancing === "verbose") console.log("Update instancing bounds", this.name, this._batchedMesh.matrixWorldNeedsUpdate);
|
|
592
599
|
this.updateBounds();
|
|
593
600
|
}
|
|
594
601
|
}
|
|
@@ -623,7 +630,9 @@ class InstancedMeshRenderer {
|
|
|
623
630
|
}
|
|
624
631
|
|
|
625
632
|
private markNeedsUpdate() {
|
|
626
|
-
if (debugInstancing
|
|
633
|
+
if (debugInstancing === "verbose") {
|
|
634
|
+
console.warn("Marking instanced mesh dirty", this.name);
|
|
635
|
+
}
|
|
627
636
|
this._needUpdateBounds = true;
|
|
628
637
|
// this.inst.instanceMatrix.needsUpdate = true;
|
|
629
638
|
}
|
|
@@ -641,19 +650,23 @@ class InstancedMeshRenderer {
|
|
|
641
650
|
}
|
|
642
651
|
|
|
643
652
|
private grow(geometry: BufferGeometry) {
|
|
644
|
-
const
|
|
653
|
+
const growFactor = 2;
|
|
654
|
+
const newSize = Math.ceil(this._maxInstanceCount * growFactor);
|
|
645
655
|
|
|
646
656
|
// create a new BatchedMesh instance
|
|
647
657
|
const estimatedSpace = this.tryEstimateVertexCountSize(newSize, [geometry]);// geometry.attributes.position.count;
|
|
648
658
|
// const indices = geometry.index ? geometry.index.count : 0;
|
|
649
659
|
const newMaxVertexCount = Math.max(this._maxVertexCount, estimatedSpace.vertexCount);
|
|
650
|
-
const newMaxIndexCount = Math.max(this._maxIndexCount, estimatedSpace.indexCount, this._maxVertexCount *
|
|
660
|
+
const newMaxIndexCount = Math.max(this._maxIndexCount, estimatedSpace.indexCount, Math.ceil(this._maxVertexCount * growFactor));
|
|
651
661
|
|
|
652
662
|
if (debugInstancing) {
|
|
653
663
|
const geometryInfo = getMeshInformation(geometry);
|
|
654
|
-
console.warn(`Growing
|
|
664
|
+
console.warn(`[Instancing] Growing Buffer\nMesh: \"${this.name}${geometry.name?.length ? "/" + geometry.name : ""}\"\n${geometryInfo.vertexCount} vertices, ${geometryInfo.indexCount} indices\nMax count ${this._maxInstanceCount} → ${newSize}\nMax vertex count ${this._maxVertexCount} -> ${newMaxVertexCount}\nMax index count ${this._maxIndexCount} -> ${newMaxIndexCount}`);
|
|
655
665
|
this._debugMaterial = createDebugMaterial();
|
|
656
666
|
}
|
|
667
|
+
else if (isDevEnvironment()) {
|
|
668
|
+
console.debug(`[Instancing] Growing Buffer\nMesh: \"${this.name}${geometry.name?.length ? "/" + geometry.name : ""}\"\nMax count ${this._maxInstanceCount} → ${newSize}\nMax vertex count ${this._maxVertexCount} -> ${newMaxVertexCount}\nMax index count ${this._maxIndexCount} -> ${newMaxIndexCount}`);
|
|
669
|
+
}
|
|
657
670
|
|
|
658
671
|
this._maxVertexCount = newMaxVertexCount;
|
|
659
672
|
this._maxIndexCount = newMaxIndexCount;
|
|
@@ -750,7 +763,8 @@ class InstancedMeshRenderer {
|
|
|
750
763
|
|
|
751
764
|
private addGeometry(handle: InstanceHandle) {
|
|
752
765
|
|
|
753
|
-
const
|
|
766
|
+
const obj = handle.object;
|
|
767
|
+
const geo = obj.geometry as BufferGeometry;
|
|
754
768
|
if (!geo) {
|
|
755
769
|
// if the geometry is null we cannot add it
|
|
756
770
|
return;
|
|
@@ -776,7 +790,7 @@ class InstancedMeshRenderer {
|
|
|
776
790
|
if (smallestBucket != null) {
|
|
777
791
|
const bucket = smallestBucket;
|
|
778
792
|
if (debugInstancing)
|
|
779
|
-
console.debug(`
|
|
793
|
+
console.debug(`[Instancing] SET GEOMETRY \"${handle.name}\"\nGEOMETRY_ID=${bucket.geometryIndex}\n${this._currentInstanceCount} instances\n${handle.maxVertexCount} vertices, ${handle.maxIndexCount} indices, `);
|
|
780
794
|
try {
|
|
781
795
|
this._batchedMesh.setGeometryAt(bucket.geometryIndex, handle.object.geometry as BufferGeometry);
|
|
782
796
|
const newIndex = this._batchedMesh.addInstance(bucket.geometryIndex);
|
|
@@ -800,15 +814,13 @@ class InstancedMeshRenderer {
|
|
|
800
814
|
let geometryId = this._geometryIds.get(geo);
|
|
801
815
|
if (geometryId === undefined || geometryId === null) {
|
|
802
816
|
if (debugInstancing)
|
|
803
|
-
console.debug(
|
|
804
|
-
|
|
805
|
-
|
|
817
|
+
console.debug(`[Instancing] > ADD GEOMETRY \"${handle.name}\"\n${this._currentInstanceCount} instances, ${handle.maxVertexCount} max vertices, ${handle.maxIndexCount} max indices`);
|
|
806
818
|
|
|
807
819
|
geometryId = this._batchedMesh.addGeometry(geo, handle.maxVertexCount, handle.maxIndexCount);
|
|
808
820
|
this._geometryIds.set(geo, geometryId);
|
|
809
821
|
}
|
|
810
822
|
else {
|
|
811
|
-
if (debugInstancing) console.log(
|
|
823
|
+
if (debugInstancing === "verbose") console.log(`[Instancing] > ADD INSTANCE \"${handle.name}\"\nGEOMETRY_ID=${geometryId}\n${this._currentInstanceCount} instances`);
|
|
812
824
|
}
|
|
813
825
|
this._currentVertexCount += handle.maxVertexCount;
|
|
814
826
|
this._currentIndexCount += handle.maxIndexCount;
|
|
@@ -820,7 +832,7 @@ class InstancedMeshRenderer {
|
|
|
820
832
|
this._usedBuckets[i] = { geometryIndex: geometryId, vertexCount: handle.maxVertexCount, indexCount: handle.maxIndexCount };
|
|
821
833
|
this._batchedMesh.setMatrixAt(i, handle.object.matrixWorld);
|
|
822
834
|
if (debugInstancing)
|
|
823
|
-
console.debug(`
|
|
835
|
+
console.debug(`[Instancing] > ADDED INSTANCE \"${handle.name}\"\nGEOMETRY_ID=${geometryId}\n${this._currentInstanceCount} instances\nIndex: ${handle.__instanceIndex}`);
|
|
824
836
|
|
|
825
837
|
}
|
|
826
838
|
|
|
@@ -837,6 +849,9 @@ class InstancedMeshRenderer {
|
|
|
837
849
|
// this.inst.deleteGeometry(handle.__instanceIndex);
|
|
838
850
|
// else
|
|
839
851
|
// this._batchedMesh.setVisibleAt(handle.__instanceIndex, false);
|
|
852
|
+
if(debugInstancing) {
|
|
853
|
+
console.debug(`[Instancing] < REMOVE INSTANCE \"${handle.name}\" at [${handle.__instanceIndex}]\nGEOMETRY_ID=${handle.__geometryIndex}\n${this._currentInstanceCount} instances\nIndex: ${handle.__instanceIndex}`);
|
|
854
|
+
}
|
|
840
855
|
this._batchedMesh.deleteInstance(handle.__instanceIndex);
|
|
841
856
|
this._availableBuckets.push({
|
|
842
857
|
geometryIndex: handle.__geometryIndex,
|
|
@@ -141,14 +141,14 @@ export class Canvas extends UIRootComponent implements ICanvas {
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
start() {
|
|
144
|
-
this.
|
|
144
|
+
this.applyRenderSettings();
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
onEnable() {
|
|
148
148
|
super.onEnable();
|
|
149
149
|
this._updateRenderSettingsRoutine = undefined;
|
|
150
150
|
this._lastMatrixWorld = new Matrix4();
|
|
151
|
-
this.
|
|
151
|
+
this.applyRenderSettings();
|
|
152
152
|
document.addEventListener("resize", this._boundRenderSettingsChanged);
|
|
153
153
|
// We want to run AFTER all regular onBeforeRender callbacks
|
|
154
154
|
this.context.pre_render_callbacks.push(this.onBeforeRenderRoutine);
|
package/src/needle-engine.ts
CHANGED
|
@@ -7,7 +7,7 @@ export * from "./engine-components-experimental/api.js";
|
|
|
7
7
|
export * from "./engine-schemes/api.js";
|
|
8
8
|
|
|
9
9
|
// make accessible for external javascript
|
|
10
|
-
import { Context, loadSync, NeedleXRSession, onBeforeRender, onStart, onUpdate, VERSION } from "./engine/api.js";
|
|
10
|
+
import { Context, loadSync, NeedleXRSession, onAfterRender, onBeforeRender, onClear, onDestroy, onInitialized, onStart, onUpdate, VERSION } from "./engine/api.js";
|
|
11
11
|
const Needle = {
|
|
12
12
|
VERSION: VERSION,
|
|
13
13
|
Context: Context,
|
|
@@ -15,11 +15,13 @@ const Needle = {
|
|
|
15
15
|
gltf: {
|
|
16
16
|
loadFromURL: loadSync,
|
|
17
17
|
},
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
onStart: onStart,
|
|
19
|
+
onUpdate: onUpdate,
|
|
20
|
+
onBeforeRender: onBeforeRender,
|
|
21
|
+
onAfterRender: onAfterRender,
|
|
22
|
+
onInitializedContext: onInitialized,
|
|
23
|
+
onDestroyContext: onDestroy,
|
|
24
|
+
onClearContext: onClear,
|
|
23
25
|
};
|
|
24
26
|
if (globalThis["Needle"]?.VERSION !== undefined) {
|
|
25
27
|
console.warn(`Needle Engine is already imported: ${globalThis["Needle"].VERSION}`);
|