@needle-tools/engine 4.11.5-beta → 4.11.5-next.b4a2f9e

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 (35) hide show
  1. package/dist/{needle-engine.bundle-78QepNU6.min.js → needle-engine.bundle-D2_8tEN0.min.js} +107 -107
  2. package/dist/{needle-engine.bundle-CtMdIm9E.umd.cjs → needle-engine.bundle-DG38kMjs.umd.cjs} +78 -78
  3. package/dist/{needle-engine.bundle-DLreKDiJ.js → needle-engine.bundle-DnJ3q6Oa.js} +1844 -1809
  4. package/dist/needle-engine.js +2 -2
  5. package/dist/needle-engine.min.js +1 -1
  6. package/dist/needle-engine.umd.cjs +1 -1
  7. package/lib/engine/engine_context.d.ts +15 -5
  8. package/lib/engine/engine_context.js +25 -4
  9. package/lib/engine/engine_context.js.map +1 -1
  10. package/lib/engine/engine_loaders.d.ts +0 -6
  11. package/lib/engine/engine_loaders.js +5 -5
  12. package/lib/engine/engine_loaders.js.map +1 -1
  13. package/lib/engine/engine_scenelighting.d.ts +12 -1
  14. package/lib/engine/engine_scenelighting.js +21 -1
  15. package/lib/engine/engine_scenelighting.js.map +1 -1
  16. package/lib/engine/extensions/NEEDLE_lightmaps.js +2 -2
  17. package/lib/engine/extensions/NEEDLE_lightmaps.js.map +1 -1
  18. package/lib/engine/extensions/extensions.d.ts +2 -2
  19. package/lib/engine/extensions/extensions.js +11 -5
  20. package/lib/engine/extensions/extensions.js.map +1 -1
  21. package/lib/engine-components/ReflectionProbe.js +16 -10
  22. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  23. package/lib/engine-components/Renderer.js +2 -2
  24. package/lib/engine-components/Renderer.js.map +1 -1
  25. package/lib/engine-components/webxr/controllers/XRControllerModel.js +1 -1
  26. package/lib/engine-components/webxr/controllers/XRControllerModel.js.map +1 -1
  27. package/package.json +2 -2
  28. package/src/engine/engine_context.ts +36 -6
  29. package/src/engine/engine_loaders.ts +6 -6
  30. package/src/engine/engine_scenelighting.ts +30 -8
  31. package/src/engine/extensions/NEEDLE_lightmaps.ts +2 -2
  32. package/src/engine/extensions/extensions.ts +11 -5
  33. package/src/engine-components/ReflectionProbe.ts +18 -10
  34. package/src/engine-components/Renderer.ts +2 -2
  35. package/src/engine-components/webxr/controllers/XRControllerModel.ts +1 -1
@@ -1,4 +1,4 @@
1
- import { EquirectangularReflectionMapping, LinearSRGBColorSpace, Material, MeshBasicMaterial, Object3D, SRGBColorSpace, Texture, Vector3 } from "three";
1
+ import { CubeReflectionMapping, CubeTexture, EquirectangularReflectionMapping, LinearSRGBColorSpace, Material, MeshBasicMaterial, Object3D, SRGBColorSpace, Texture, Vector3 } from "three";
2
2
 
3
3
  import { isDevEnvironment, showBalloonWarning } from "../engine/debug/index.js";
4
4
  import { serializable } from "../engine/engine_serialization.js";
@@ -63,13 +63,19 @@ export class ReflectionProbe extends Behaviour {
63
63
 
64
64
  // @serializable(Texture)
65
65
  set texture(tex: Texture) {
66
- if (tex && !(tex instanceof Texture)) {
67
- console.error("ReflectionProbe.texture must be a Texture", tex);
68
- return;
69
- }
66
+
67
+ if (this._texture === tex) return;
70
68
  this._texture = tex;
69
+
70
+ if (debug) console.debug("[ReflectionProbe] Set reflection probe texture " + (tex?.name || "(removed)"));
71
+
71
72
  if (tex) {
72
- tex.mapping = EquirectangularReflectionMapping;
73
+ if (tex instanceof CubeTexture) {
74
+ // cube textures use CubeReflectionMapping by default
75
+ }
76
+ else if (tex.mapping !== EquirectangularReflectionMapping) {
77
+ tex.mapping = EquirectangularReflectionMapping;
78
+ }
73
79
  tex.colorSpace = LinearSRGBColorSpace;
74
80
  tex.needsUpdate = true;
75
81
  }
@@ -110,9 +116,8 @@ export class ReflectionProbe extends Behaviour {
110
116
  }
111
117
  }
112
118
  start(): void {
113
- if (!this._texture && isDevEnvironment()) {
119
+ if (!this._texture) {
114
120
  console.warn(`[ReflectionProbe] Missing texture. Please assign a custom cubemap texture. To use reflection probes assign them to your renderer's "anchor" property.`);
115
- showBalloonWarning("ReflectionProbe configuration hint: See browser console for details")
116
121
  }
117
122
  }
118
123
 
@@ -206,8 +211,11 @@ export class ReflectionProbe extends Behaviour {
206
211
  /** this is the material that we copied and that has the reflection probe */
207
212
  const copy = cached?.copy;
208
213
 
209
- // make sure the reflection probe is assigned
210
- copy["envMap"] = this.texture;
214
+ if ("envMap" in copy) {
215
+ // make sure the reflection probe is assigned
216
+ copy.envMap = this.texture;
217
+ copy.needsUpdate = true;
218
+ }
211
219
 
212
220
  _rend.sharedMaterials[i] = copy;
213
221
  }
@@ -702,7 +702,6 @@ export class Renderer extends Behaviour implements IRenderer {
702
702
  // If the material has a envMap and is NOT using a reflection probe we set the envMap to the scene environment
703
703
  if (mat && "envMap" in mat && "envMapIntensity" in mat && !ReflectionProbe.isUsingReflectionProbe(mat)) {
704
704
  mat.envMap = this.context.scene.environment;
705
- mat.envMapIntensity = this.context.scene.environmentIntensity;
706
705
  mat.envMapRotation = this.context.scene.environmentRotation;
707
706
  }
708
707
  }
@@ -713,8 +712,9 @@ export class Renderer extends Behaviour implements IRenderer {
713
712
  private onBeforeRenderThree = (_renderer, _scene, _camera, _geometry, material, _group) => {
714
713
  if (material.envMapIntensity !== undefined) {
715
714
  const factor = this.hasLightmap ? Math.PI : 1;
716
- const environmentIntensity = this.context.mainCameraComponent?.environmentIntensity ?? 1;
715
+ const environmentIntensity = this.context.scene.environmentIntensity;
717
716
  material.envMapIntensity = Math.max(0, environmentIntensity * this.context.sceneLighting.environmentIntensity / factor);
717
+ // console.log(this.context.sceneLighting.environmentIntensity);
718
718
  }
719
719
  if (this._lightmaps) {
720
720
  for (const lm of this._lightmaps) {
@@ -284,7 +284,7 @@ export class XRControllerModel extends Behaviour {
284
284
 
285
285
  const loader = new GLTFLoader();
286
286
  addDracoAndKTX2Loaders(loader, context);
287
- await registerExtensions(loader, context, this.sourceId ?? "");
287
+ await registerExtensions(loader, context, this.sourceId ?? "", this.sourceId ?? "");
288
288
  const componentsExtension = registerComponentExtension(loader);
289
289
 
290
290
  let filename = "";