@needle-tools/engine 4.7.2-next.d24ebbc → 4.7.3-next.65e7878

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.
Files changed (46) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/gltf-progressive-BCZdu3Gc.min.js +8 -0
  3. package/dist/gltf-progressive-C6QbvrB4.umd.cjs +8 -0
  4. package/dist/{gltf-progressive-CNdBjvz6.js → gltf-progressive-CCddD-3B.js} +413 -399
  5. package/dist/{needle-engine.bundle-CHfSBXXT.js → needle-engine.bundle-B0QYYufM.js} +1945 -1887
  6. package/dist/{needle-engine.bundle-CGXifNgp.min.js → needle-engine.bundle-BCAZfCyl.min.js} +101 -101
  7. package/dist/{needle-engine.bundle-Dcn5L5IY.umd.cjs → needle-engine.bundle-C6yScKUU.umd.cjs} +69 -69
  8. package/dist/needle-engine.d.ts +21 -0
  9. package/dist/needle-engine.js +3 -3
  10. package/dist/needle-engine.min.js +1 -1
  11. package/dist/needle-engine.umd.cjs +1 -1
  12. package/dist/{postprocessing-CjW23fio.umd.cjs → postprocessing-CNCT892s.umd.cjs} +1 -1
  13. package/dist/{postprocessing-xYQWCHFu.min.js → postprocessing-TkXiVrjY.min.js} +1 -1
  14. package/dist/{postprocessing-DYLNOL3W.js → postprocessing-qvgDnYKK.js} +1 -1
  15. package/dist/{three-examples-DaDLBuy6.min.js → three-examples-BMOhDaYR.min.js} +17 -17
  16. package/dist/{three-examples-X3OadjXB.umd.cjs → three-examples-DUcCNw9s.umd.cjs} +17 -17
  17. package/dist/{three-examples-B50TT3Iu.js → three-examples-tvuhV8Ne.js} +688 -688
  18. package/lib/engine/engine_create_objects.js +24 -1
  19. package/lib/engine/engine_create_objects.js.map +1 -1
  20. package/lib/engine/engine_input.js +3 -0
  21. package/lib/engine/engine_input.js.map +1 -1
  22. package/lib/engine/engine_physics.d.ts +13 -1
  23. package/lib/engine/engine_physics.js +15 -7
  24. package/lib/engine/engine_physics.js.map +1 -1
  25. package/lib/engine/webcomponents/needle-engine.js +14 -11
  26. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  27. package/lib/engine-components/OrbitControls.d.ts +45 -0
  28. package/lib/engine-components/OrbitControls.js +54 -9
  29. package/lib/engine-components/OrbitControls.js.map +1 -1
  30. package/lib/engine-components/Skybox.d.ts +1 -0
  31. package/lib/engine-components/Skybox.js +14 -18
  32. package/lib/engine-components/Skybox.js.map +1 -1
  33. package/lib/engine-components/ui/EventSystem.js +9 -10
  34. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  35. package/package.json +3 -3
  36. package/plugins/common/logger.js +34 -16
  37. package/plugins/vite/logger.client.js +55 -22
  38. package/src/engine/engine_create_objects.ts +24 -1
  39. package/src/engine/engine_input.ts +8 -1
  40. package/src/engine/engine_physics.ts +26 -8
  41. package/src/engine/webcomponents/needle-engine.ts +15 -13
  42. package/src/engine-components/OrbitControls.ts +78 -14
  43. package/src/engine-components/Skybox.ts +15 -21
  44. package/src/engine-components/ui/EventSystem.ts +8 -9
  45. package/dist/gltf-progressive-C_oN6wCA.umd.cjs +0 -8
  46. package/dist/gltf-progressive-MgWOszRl.min.js +0 -8
@@ -122,14 +122,6 @@ export class EventSystem extends Behaviour {
122
122
  data.isDown = pointerEvent.type == InputEvents.PointerDown;
123
123
  data.isUp = pointerEvent.type == InputEvents.PointerUp;
124
124
  data.isPressed = this.context.input.getPointerPressed(pointerEvent.pointerId);
125
- if (debug) {
126
- if (data.isDown)
127
- console.log("DOWN", data.pointerId);
128
- else if (data.isUp)
129
- console.log("UP", data.pointerId);
130
- if (data.isClick)
131
- console.log("CLICK", data.pointerId);
132
- }
133
125
  // raycast
134
126
  const options = new RaycastOptions();
135
127
  if (pointerEvent.hasRay) {
@@ -138,7 +130,16 @@ export class EventSystem extends Behaviour {
138
130
  else {
139
131
  options.screenPoint = this.context.input.getPointerPositionRC(pointerEvent.pointerId);
140
132
  }
133
+ options.allowSlowRaycastFallback = pointerEvent.isClick || pointerEvent.isDoubleClick;
141
134
  const hits = this.performRaycast(options);
135
+ if (debug) {
136
+ if (data.isDown)
137
+ console.log("DOWN", { id: data.pointerId, hits: hits.length });
138
+ else if (data.isUp)
139
+ console.log("UP", { id: data.pointerId, hits: hits.length });
140
+ if (data.isClick)
141
+ console.log("CLICK", { id: data.pointerId, hits: hits.length });
142
+ }
142
143
  if (hits) {
143
144
  for (const hit of hits) {
144
145
  hit.event = pointerEvent;
@@ -248,8 +249,6 @@ export class EventSystem extends Behaviour {
248
249
  // we clear the cache of previously seen objects
249
250
  this._testObjectsCache.clear();
250
251
  this._sortedHits.length = 0;
251
- if (!opts)
252
- opts = new RaycastOptions();
253
252
  opts.testObject = this.shouldRaycastObject;
254
253
  for (const rc of this.raycaster) {
255
254
  if (!rc.activeAndEnabled)
@@ -1 +1 @@
1
- {"version":3,"file":"EventSystem.js","sourceRoot":"","sources":["../../../src/engine-components/ui/EventSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventSystem.js","sourceRoot":"","sources":["../../../src/engine-components/ui/EventSystem.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.7.2-next.d24ebbc",
3
+ "version": "4.7.3-next.65e7878",
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": {
@@ -93,7 +93,7 @@
93
93
  ],
94
94
  "dependencies": {
95
95
  "@dimforge/rapier3d-compat": "^0.14.0",
96
- "@needle-tools/gltf-progressive": "3.0.0-alpha.1",
96
+ "@needle-tools/gltf-progressive": "3.0.1",
97
97
  "@webxr-input-profiles/motion-controllers": "^1.0.0",
98
98
  "flatbuffers": "2.0.4",
99
99
  "md5": "^2.3.0",
@@ -102,7 +102,7 @@
102
102
  "postprocessing": "^6.36.6",
103
103
  "simplex-noise": "^4.0.1",
104
104
  "stats.js": "^0.17.0",
105
- "three": "npm:@needle-tools/three@^0.169.5",
105
+ "three": "npm:@needle-tools/three@^0.169.7",
106
106
  "three-mesh-bvh": "^0.8.3",
107
107
  "three-mesh-ui": "npm:@needle-tools/three-mesh-ui@^7.1.5-alpha.5",
108
108
  "three.quarks": "0.15.6",
@@ -106,17 +106,17 @@ export function captureLogMessage(process, key, log, connectionId, time = Date.n
106
106
  // #region stringify log
107
107
 
108
108
 
109
+
109
110
  /**
110
111
  * Stringifies a log message, handling circular references and formatting.
111
112
  * @param {any} log
112
113
  * @param {Set<any>} [seen]
113
114
  */
114
115
  function stringifyLog(log, seen = new Set(), depth = 0) {
115
-
116
116
  const isServer = typeof window === "undefined";
117
117
  const stringify_limits = {
118
- string: isServer ? 100_000 : 2000,
119
- object_keys: isServer ? 300 : 100,
118
+ string: isServer ? 100_000 : 1_000,
119
+ object_keys: isServer ? 300 : 200,
120
120
  object_depth: isServer ? 10 : 3,
121
121
  array_items: isServer ? 2_000 : 100,
122
122
  }
@@ -140,7 +140,20 @@ function stringifyLog(log, seen = new Set(), depth = 0) {
140
140
 
141
141
  if (seen.has(log)) return "<circular>";
142
142
 
143
- if (Array.isArray(log)) {
143
+ if (Array.isArray(log)
144
+ || log instanceof ArrayBuffer
145
+ || log instanceof Uint8Array
146
+ || log instanceof Float32Array
147
+ || log instanceof Int32Array
148
+ || log instanceof Uint32Array
149
+ || log instanceof Uint16Array
150
+ || log instanceof Uint8ClampedArray
151
+ || log instanceof Int16Array
152
+ || log instanceof Int8Array
153
+ || log instanceof BigInt64Array
154
+ || log instanceof BigUint64Array
155
+ || log instanceof Float64Array
156
+ ) {
144
157
  seen.add(log);
145
158
  return stringifyArray(log);
146
159
  }
@@ -151,25 +164,26 @@ function stringifyLog(log, seen = new Set(), depth = 0) {
151
164
  }
152
165
 
153
166
  seen.add(log);
154
- // const str = JSON.stringify(log, (key, value) => {
155
- // if (typeof value === "function") return "<function>";
156
- // if (typeof value === "string") return stringifyLog(value, seen, depth + 1);
157
- // if (typeof value === "object") {
158
- // if (seen.has(value)) return "<circular>";
159
- // seen.add(value);
160
- // }
161
- // return value;
162
- // });
163
- // return str;
167
+
168
+ if(log instanceof Error) {
169
+ return `<Error: ${log.message}\nStack: ${log.stack}>`;
170
+ }
171
+
164
172
  const keys = Object.keys(log);
165
173
  let res = "{";
166
174
  for (let i = 0; i < keys.length; i++) {
167
175
  const key = keys[i];
168
176
  let value = log[key];
177
+ if (i >= stringify_limits.object_keys) {
178
+ res += `, ... <truncated ${keys.length - i} keys>`;
179
+ break;
180
+ }
169
181
 
170
182
  if (typeof value === "number") {
171
- // clamp precision for numbers
172
- value = Number(value.toFixed(6));
183
+ // clamp precision for numbers if it has decimal places
184
+ if (value % 1 !== 0) {
185
+ value = Number(value.toFixed(4));
186
+ }
173
187
  }
174
188
  let str = stringifyLog(value, seen, depth + 1);
175
189
  if (typeof value === "object") {
@@ -191,6 +205,7 @@ function stringifyLog(log, seen = new Set(), depth = 0) {
191
205
  // });
192
206
  // return `{ ${entries.join(", ")} }`;
193
207
  }
208
+
194
209
  return String(log);
195
210
 
196
211
  function stringifyArray(arr) {
@@ -212,6 +227,9 @@ function stringifyLog(log, seen = new Set(), depth = 0) {
212
227
 
213
228
 
214
229
 
230
+
231
+
232
+
215
233
  // #region utility functions
216
234
 
217
235
  /**
@@ -1,4 +1,6 @@
1
1
 
2
+ let isStringifying = false;
3
+
2
4
  /**
3
5
  * Patches console methods to capture log messages and send them to the server.
4
6
  * This is useful for debugging and logging in the client.
@@ -6,14 +8,31 @@
6
8
  * @param {any} message - The log message to capture.
7
9
  */
8
10
  function sendLogToServer(level, ...message) {
11
+ if (isStringifying) return;
9
12
  if ("hot" in import.meta) {
10
- message = stringifyLog(message);
11
- // keep messages below payload limit
12
- if(message.length > 100_000) {
13
- message = message.slice(0, 100_000) + "... <truncated>";
13
+ try {
14
+ isStringifying = true;
15
+ // console.time("sendLogToServer");
16
+ message = stringifyLog(message);
17
+ // console.timeEnd("sendLogToServer");
18
+ // keep messages below payload limit
19
+ if (message.length > 100_000) {
20
+ message = message.slice(0, 100_000) + "... <truncated>";
21
+ }
22
+ // @ts-ignore
23
+ import.meta.hot.send("needle:client-log", { level, message: message });
24
+ } catch (e) {
25
+ // silently fail but send a message
26
+ try {
27
+ import.meta.hot.send("needle:client-log", { level: "error", message: `Error during logging: ${e.message}` });
28
+ }
29
+ catch (e2) {
30
+ // fallback failed as well
31
+ }
32
+ }
33
+ finally {
34
+ isStringifying = false;
14
35
  }
15
- // @ts-ignore
16
- import.meta.hot.send("needle:client-log", { level, message: message });
17
36
  }
18
37
  }
19
38
 
@@ -174,11 +193,10 @@ User Activation: ${"userActivation" in navigator ? JSON.stringify(navigator.user
174
193
  * @param {Set<any>} [seen]
175
194
  */
176
195
  function stringifyLog(log, seen = new Set(), depth = 0) {
177
-
178
196
  const isServer = typeof window === "undefined";
179
197
  const stringify_limits = {
180
- string: isServer ? 100_000 : 2000,
181
- object_keys: isServer ? 300 : 100,
198
+ string: isServer ? 100_000 : 1_000,
199
+ object_keys: isServer ? 300 : 200,
182
200
  object_depth: isServer ? 10 : 3,
183
201
  array_items: isServer ? 2_000 : 100,
184
202
  }
@@ -202,7 +220,20 @@ function stringifyLog(log, seen = new Set(), depth = 0) {
202
220
 
203
221
  if (seen.has(log)) return "<circular>";
204
222
 
205
- if (Array.isArray(log)) {
223
+ if (Array.isArray(log)
224
+ || log instanceof ArrayBuffer
225
+ || log instanceof Uint8Array
226
+ || log instanceof Float32Array
227
+ || log instanceof Int32Array
228
+ || log instanceof Uint32Array
229
+ || log instanceof Uint16Array
230
+ || log instanceof Uint8ClampedArray
231
+ || log instanceof Int16Array
232
+ || log instanceof Int8Array
233
+ || log instanceof BigInt64Array
234
+ || log instanceof BigUint64Array
235
+ || log instanceof Float64Array
236
+ ) {
206
237
  seen.add(log);
207
238
  return stringifyArray(log);
208
239
  }
@@ -213,25 +244,26 @@ function stringifyLog(log, seen = new Set(), depth = 0) {
213
244
  }
214
245
 
215
246
  seen.add(log);
216
- // const str = JSON.stringify(log, (key, value) => {
217
- // if (typeof value === "function") return "<function>";
218
- // if (typeof value === "string") return stringifyLog(value, seen, depth + 1);
219
- // if (typeof value === "object") {
220
- // if (seen.has(value)) return "<circular>";
221
- // seen.add(value);
222
- // }
223
- // return value;
224
- // });
225
- // return str;
247
+
248
+ if (log instanceof Error) {
249
+ return `<Error: ${log.message}\nStack: ${log.stack}>`;
250
+ }
251
+
226
252
  const keys = Object.keys(log);
227
253
  let res = "{";
228
254
  for (let i = 0; i < keys.length; i++) {
229
255
  const key = keys[i];
230
256
  let value = log[key];
257
+ if (i >= stringify_limits.object_keys) {
258
+ res += `, ... <truncated ${keys.length - i} keys>`;
259
+ break;
260
+ }
231
261
 
232
262
  if (typeof value === "number") {
233
- // clamp precision for numbers
234
- value = Number(value.toFixed(6));
263
+ // clamp precision for numbers if it has decimal places
264
+ if (value % 1 !== 0) {
265
+ value = Number(value.toFixed(4));
266
+ }
235
267
  }
236
268
  let str = stringifyLog(value, seen, depth + 1);
237
269
  if (typeof value === "object") {
@@ -253,6 +285,7 @@ function stringifyLog(log, seen = new Set(), depth = 0) {
253
285
  // });
254
286
  // return `{ ${entries.join(", ")} }`;
255
287
  }
288
+
256
289
  return String(log);
257
290
 
258
291
  function stringifyArray(arr) {
@@ -1,5 +1,5 @@
1
1
  import { createLoaders } from "@needle-tools/gltf-progressive";
2
- import { BoxGeometry, BufferGeometry, Color, ColorRepresentation, CylinderGeometry, DoubleSide, ExtrudeGeometry, Group, Material, Mesh, MeshBasicMaterial, MeshStandardMaterial, Object3D, PlaneGeometry, Shape, SphereGeometry, Sprite, SpriteMaterial, Texture } from "three"
2
+ import { BoxGeometry, BufferGeometry, Color, ColorRepresentation, CylinderGeometry, DoubleSide, ExtrudeGeometry, Group, Material, Mesh, MeshBasicMaterial, MeshStandardMaterial, Object3D, PlaneGeometry, Shape, SphereGeometry, Sprite, SpriteMaterial, Texture, Vector2 } from "three"
3
3
  import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js";
4
4
  import { Font, FontLoader } from "three/examples/jsm/loaders/FontLoader.js";
5
5
  import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
@@ -300,9 +300,29 @@ function createBoxWithRoundedEdges(width: number, height: number, _depth: number
300
300
  bevelSize: radius,
301
301
  bevelThickness: radius0,
302
302
  curveSegments: smoothness,
303
+ UVGenerator: {
304
+ generateTopUV: (_, vertices: number[]) => {
305
+ const uvs: Vector2[] = [];
306
+ for (let i = 0; i < vertices.length; i += 3) {
307
+ uvs.push(new Vector2(vertices[i] / width, vertices[i + 1] / height));
308
+ }
309
+ return uvs;
310
+ },
311
+ generateSideWallUV: (_, vertices: number[], indexA: number, indexB: number, indexC: number, indexD: number) => {
312
+ const uvs: Vector2[] = [];
313
+ uvs.push(new Vector2(vertices[indexA] / width, vertices[indexA + 1] / height));
314
+ uvs.push(new Vector2(vertices[indexB] / width, vertices[indexB + 1] / height));
315
+ uvs.push(new Vector2(vertices[indexC] / width, vertices[indexC + 1] / height));
316
+ uvs.push(new Vector2(vertices[indexD] / width, vertices[indexD + 1] / height));
317
+ return uvs;
318
+ }
319
+ },
303
320
  });
304
321
  geometry.scale(1, 1, 1 - radius0)
305
322
  geometry.center();
323
+ // Ensure we have an index buffer
324
+ if (!geometry.index)
325
+ geometry.setIndex(Array.from({ length: geometry.attributes.position.count }, (_, i) => i));
306
326
  geometry.computeVertexNormals();
307
327
  return geometry;
308
328
  }
@@ -389,6 +409,9 @@ function loadShaderball(group: Group, opts?: ObjectOptions) {
389
409
  const instance = res.clone();
390
410
  const mesh = instance.children[0] as Mesh;
391
411
  if (mesh?.type === "Mesh") {
412
+ // Ensure we have tangents for the Shaderball mesh
413
+ if (!mesh.geometry.attributes.tangent)
414
+ mesh.geometry.computeTangents();
392
415
  updateShaderballMaterial(mesh, opts);
393
416
  }
394
417
  group.add(instance);
@@ -241,6 +241,9 @@ declare type EventListenerOptions = {
241
241
  signal?: AbortSignal;
242
242
  }
243
243
 
244
+
245
+ type RegisteredEventListenerValue = Array<{ priority: number, listeners: Array<{ callback: InputEventListener, options: EventListenerOptions }> }>;
246
+
244
247
  /**
245
248
  * The input system is responsible for handling all input events like pointer events (mouse, touch, xr controllers) and keyboard events.
246
249
  */
@@ -250,7 +253,7 @@ export class Input implements IInput {
250
253
  * That way users can control if they want to receive events before or after other listeners (e.g subscribe to pointer events before the EventSystem receives them) - this allows certain listeners to be always invoked first (or last) and stop propagation
251
254
  * Listeners per event are sorted
252
255
  */
253
- private readonly _eventListeners: { [key: string]: Array<{ priority: number, listeners: Array<{ callback: InputEventListener, options: EventListenerOptions }> }> } = {};
256
+ private readonly _eventListeners: Record<string, RegisteredEventListenerValue> = {};
254
257
 
255
258
  /** Adds an event listener for the specified event type. The callback will be called when the event is triggered.
256
259
  * @param type The event type to listen for
@@ -846,6 +849,10 @@ export class Input implements IInput {
846
849
  }
847
850
 
848
851
  unbindEvents() {
852
+ for (const key in this._eventListeners) {
853
+ this._eventListeners[key].length = 0; // clear all listeners for this event
854
+ }
855
+
849
856
  window.removeEventListener('contextmenu', this.onContextMenu);
850
857
 
851
858
  this._htmlEventSource?.removeEventListener('pointerdown', this.onPointerDown);
@@ -68,9 +68,15 @@ export declare interface IRaycastOptions {
68
68
 
69
69
  /**
70
70
  * Use MeshBVH for raycasting. This is faster than the default threejs raycaster but uses more memory.
71
- * @default undefined
71
+ * @default true
72
72
  */
73
73
  useAcceleratedRaycast?: boolean;
74
+
75
+ /**
76
+ * When enabled raycasting will use the 'slower' traditional three.js raycasting method while the MeshBVH is being generated in the background. When disabled objects that don't have a BVH available *Yet* because it's still being generated will be ignored and not generate any hits. This is useful to improve performance for cases where raycasting happens frequently and it won't matter if raycasts don't produce hits for a few frames.
77
+ * @default true
78
+ */
79
+ allowSlowRaycastFallback?: boolean;
74
80
  }
75
81
 
76
82
  export class RaycastOptions implements IRaycastOptions {
@@ -90,6 +96,7 @@ export class RaycastOptions implements IRaycastOptions {
90
96
  ignore?: Object3D[];
91
97
  testObject?: RaycastTestObjectCallback;
92
98
  useAcceleratedRaycast?: boolean | undefined;
99
+ allowSlowRaycastFallback?: boolean = true;
93
100
 
94
101
  screenPointFromOffset(ox: number, oy: number) {
95
102
  if (this.screenPoint === undefined) this.screenPoint = new Vector2();
@@ -356,7 +363,7 @@ export class Physics {
356
363
  // did handle raycast
357
364
  }
358
365
  else if (options.useAcceleratedRaycast !== false) {
359
- NEMeshBVH.runMeshBVHRaycast(raycaster, mesh, results, this.context);
366
+ NEMeshBVH.runMeshBVHRaycast(raycaster, mesh, results, this.context, options);
360
367
  }
361
368
  else {
362
369
  raycaster.intersectObject(mesh, false, results);
@@ -416,7 +423,7 @@ export class Physics {
416
423
  sphere.center.copy(spherePos);
417
424
  sphere.radius = radius;
418
425
  const previousResults = results.length;
419
- NEMeshBVH.runMeshBVHRaycast(this.sphere, mesh, results, this.context);
426
+ NEMeshBVH.runMeshBVHRaycast(this.sphere, mesh, results, this.context, {});
420
427
  if (previousResults != results.length && !traverseChildsAfterHit) {
421
428
  return;
422
429
  }
@@ -539,7 +546,13 @@ declare module 'three' {
539
546
  acceleratedRaycast?: any;
540
547
  }
541
548
  export interface SkinnedMesh {
549
+ /** @deprecated use autoUpdateMeshBvhInterval */
542
550
  autoUpdateMeshBVH?: boolean;
551
+ /**
552
+ * Interval in milliseconds to automatically update the mesh BVH. When set to >= 0 the BVH will be updated every x milliseconds.
553
+ * @default undefined (disabled)
554
+ */
555
+ autoUpdateMeshBvhInterval?: number;
543
556
  bvhNeedsUpdate?: boolean;
544
557
  }
545
558
  }
@@ -547,7 +560,7 @@ declare module 'three' {
547
560
 
548
561
 
549
562
  namespace NEMeshBVH {
550
- export function runMeshBVHRaycast(method: Raycaster | Sphere, mesh: Mesh, results: Intersection[], context: Pick<Context, "xr">): boolean {
563
+ export function runMeshBVHRaycast(method: Raycaster | Sphere, mesh: Mesh, results: Intersection[], context: Pick<Context, "xr">, options: { allowSlowRaycastFallback?: boolean }): boolean {
551
564
  if (!mesh.geometry) {
552
565
  return false;
553
566
  }
@@ -570,15 +583,16 @@ namespace NEMeshBVH {
570
583
  skinnedMesh.staticGeometry = skinnedMesh.staticGenerator.generate();
571
584
  geom.boundsTree = _computeBoundsTree?.call(skinnedMesh.staticGeometry);
572
585
  skinnedMesh.staticGeometryLastUpdate = performance.now() + Math.random() * 200;
573
- if (skinnedMesh.autoUpdateMeshBVH === undefined)
574
- skinnedMesh.autoUpdateMeshBVH = false;
586
+ skinnedMesh.bvhNeedsUpdate = true;
575
587
  }
576
588
  }
577
- else if (geom.boundsTree && (skinnedMesh.autoUpdateMeshBVH === true || skinnedMeshBVHNeedsUpdate === true)) {
589
+ else if (geom.boundsTree && ((skinnedMesh.autoUpdateMeshBvhInterval !== undefined && skinnedMesh.autoUpdateMeshBvhInterval >= 0) || skinnedMeshBVHNeedsUpdate === true)) {
578
590
  // automatically refit the tree every 300ms
579
591
  const now = performance.now();
580
592
  const timeSinceLastUpdate = now - skinnedMesh.staticGeometryLastUpdate!;
581
- if (skinnedMeshBVHNeedsUpdate || timeSinceLastUpdate > 100) {
593
+ const interval = skinnedMesh.autoUpdateMeshBvhInterval ?? 100;
594
+ if (skinnedMeshBVHNeedsUpdate || timeSinceLastUpdate > interval) {
595
+ if(debugPhysics) console.warn(`Physics: updating skinned mesh bvh for ${mesh.name} after ${timeSinceLastUpdate.toFixed(2)}ms`);
582
596
  skinnedMesh.bvhNeedsUpdate = false;
583
597
  skinnedMesh.staticGeometryLastUpdate = now;
584
598
  skinnedMesh.staticGenerator?.generate(skinnedMesh.staticGeometry);
@@ -694,6 +708,10 @@ namespace NEMeshBVH {
694
708
  }
695
709
  else {
696
710
  if (debugPhysics) console.warn("No bounds tree found for mesh", mesh.name, { workerTask: geom[workerTaskSymbol], hasAcceleratedRaycast: _acceleratedRaycast != null });
711
+ if (options.allowSlowRaycastFallback === false) {
712
+ if (debugPhysics) console.warn("Skipping raycast because no bounds tree is available and allowSlowRaycastFallback is false");
713
+ return false;
714
+ }
697
715
  }
698
716
  const prevFirstHitOnly = raycaster.firstHitOnly;
699
717
  raycaster.firstHitOnly = false;
@@ -869,19 +869,21 @@ function getDisplayName(str: string) {
869
869
 
870
870
 
871
871
  function handleLoadingBlur(needleEngineElement: NeedleEngineWebComponent) {
872
- const userBlurSetting = needleEngineElement.getAttribute("loading-blur");
873
- if (userBlurSetting !== null && userBlurSetting !== "0") {
874
- onStart((ctx) => {
872
+ onStart((ctx) => {
873
+ const userBlurSetting = needleEngineElement.getAttribute("loading-blur");
874
+ if (userBlurSetting !== null && userBlurSetting !== "0") {
875
875
  if (ctx.domElement === needleEngineElement) {
876
876
 
877
877
  const promise = ctx.lodsManager.manager?.awaitLoading({
878
+ frames: 5,
878
879
  signal: AbortSignal.timeout(10_000), // Limit how long the page can be blurred
880
+ maxPromisesPerObject: 1,
879
881
  }).catch(_ => {
880
882
  // Ignore errors (none are expected tho...)
881
883
  });
882
- let blur = "10px";
884
+ let blur = "20px";
883
885
  if (userBlurSetting.endsWith("px")) blur = userBlurSetting;
884
- const duration = 500;
886
+ const duration = 170;
885
887
 
886
888
  // If the scene has a transparent background we apply a blur to the canvas directly to not *also* blur images
887
889
  // But don't always use this effect because the edges don't look as good as with a backdrop filter
@@ -896,30 +898,30 @@ function handleLoadingBlur(needleEngineElement: NeedleEngineWebComponent) {
896
898
  const animation = canvas.animate([{
897
899
  filter: "blur(0px)",
898
900
  }
899
- ], { duration: duration, easing: "ease-in" });
901
+ ], { duration: duration, easing: "ease-in", });
900
902
  animation.onfinish = () => {
901
903
  canvas.style.filter = originalFilterValue;
902
904
  domElement.style.overflow = originalOverflowValue;
903
905
  };
904
906
  });
905
907
  }
906
- else
907
- {
908
+ else {
908
909
  const blurryElement = document.createElement("div");
909
910
  ctx.domElement.prepend(blurryElement);
910
- blurryElement.style.cssText = "position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 10;";
911
+ blurryElement.style.cssText = "position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 10; pointer-events: none";
911
912
  blurryElement.style.backdropFilter = `blur(${blur})`;
912
913
  promise?.then(() => {
913
914
  const animation = blurryElement.animate([{
914
915
  backdropFilter: "blur(0px)",
916
+ opacity: 0,
915
917
  }
916
- ], { duration: duration, easing: "ease-in" });
918
+ ], { duration: duration, easing: "ease-in", });
917
919
  animation.onfinish = () => {
918
920
  blurryElement.remove();
919
921
  };
920
922
  });
921
923
  }
922
924
  }
923
- }, { once: true });
924
- }
925
- }
925
+ }
926
+ }, { once: true });
927
+ }