@needle-tools/engine 4.13.1 → 4.14.0-beta

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 (141) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/components.needle.json +1 -1
  3. package/dist/generateMeshBVH.worker-DiCnZlf3.js +21 -0
  4. package/dist/gltf-progressive-Bm_6aEi4.js +1528 -0
  5. package/dist/gltf-progressive-BttGBXw6.umd.cjs +10 -0
  6. package/dist/gltf-progressive-T5WKTux5.min.js +10 -0
  7. package/dist/loader.worker-BqODMeeW.js +23 -0
  8. package/dist/{materialx-B9ddsHcF.min.js → materialx-CJyQZtjt.min.js} +1 -1
  9. package/dist/{materialx-fkoFuRh3.js → materialx-DMs1E08Z.js} +2 -2
  10. package/dist/{materialx-BF23AVE8.umd.cjs → materialx-DaKKOoVk.umd.cjs} +1 -1
  11. package/dist/needle-engine.bundle-BW2VusZV.min.js +1646 -0
  12. package/dist/{needle-engine.bundle-tjI5Fq2c.umd.cjs → needle-engine.bundle-Cb5bKEqa.umd.cjs} +152 -159
  13. package/dist/{needle-engine.bundle-DauZUYl7.js → needle-engine.bundle-D9VPvp5o.js} +7798 -7497
  14. package/dist/needle-engine.d.ts +779 -42
  15. package/dist/needle-engine.js +416 -415
  16. package/dist/needle-engine.min.js +1 -1
  17. package/dist/needle-engine.umd.cjs +1 -1
  18. package/dist/{postprocessing-BVNrgYZK.min.js → postprocessing-CctM1XIO.min.js} +1 -1
  19. package/dist/{postprocessing-DdM-tz1j.js → postprocessing-DGm6qJ-I.js} +2 -2
  20. package/dist/{postprocessing-CI2TjWpu.umd.cjs → postprocessing-Dbl2PJpd.umd.cjs} +1 -1
  21. package/dist/{three-BW2s1Yl-.umd.cjs → three-BjYim-vL.umd.cjs} +4 -4
  22. package/dist/{three-VvRoMeIN.js → three-Bvk2VKbF.js} +4210 -4210
  23. package/dist/{three-I__hSXzr.min.js → three-IG2qPafA.min.js} +33 -33
  24. package/dist/{three-examples-Bpfu6ke_.umd.cjs → three-examples-BMmNgNCN.umd.cjs} +1 -1
  25. package/dist/{three-examples-BhfOE7NG.js → three-examples-CMYCd5nH.js} +1 -1
  26. package/dist/{three-examples-D8zAE_7t.min.js → three-examples-CQl1fFZp.min.js} +1 -1
  27. package/dist/{three-mesh-ui-C3QbemOV.min.js → three-mesh-ui-5HVE2RV-.min.js} +1 -1
  28. package/dist/{three-mesh-ui-CcMp-FQm.js → three-mesh-ui-BlakAItG.js} +1 -1
  29. package/dist/{three-mesh-ui-BU55xDxJ.umd.cjs → three-mesh-ui-D828VbQp.umd.cjs} +1 -1
  30. package/dist/{vendor-DW7zqjuT.min.js → vendor-BxK0WKmT.min.js} +1 -1
  31. package/dist/{vendor-COVQl0b8.umd.cjs → vendor-CIDkyBaO.umd.cjs} +1 -1
  32. package/dist/{vendor-BiyIZ61v.js → vendor-ixwD-vv2.js} +1 -1
  33. package/lib/engine/api.d.ts +1 -0
  34. package/lib/engine/api.js +1 -0
  35. package/lib/engine/api.js.map +1 -1
  36. package/lib/engine/engine_context.js +12 -2
  37. package/lib/engine/engine_context.js.map +1 -1
  38. package/lib/engine/engine_lightdata.js +8 -6
  39. package/lib/engine/engine_lightdata.js.map +1 -1
  40. package/lib/engine/engine_materialpropertyblock.d.ts +259 -0
  41. package/lib/engine/engine_materialpropertyblock.js +682 -0
  42. package/lib/engine/engine_materialpropertyblock.js.map +1 -0
  43. package/lib/engine/engine_utils.d.ts +1 -0
  44. package/lib/engine/engine_utils.js +1 -0
  45. package/lib/engine/engine_utils.js.map +1 -1
  46. package/lib/engine/engine_utils_screenshot.d.ts +171 -14
  47. package/lib/engine/engine_utils_screenshot.js +65 -0
  48. package/lib/engine/engine_utils_screenshot.js.map +1 -1
  49. package/lib/engine/engine_utils_screenshot.xr.d.ts +1 -1
  50. package/lib/engine/engine_utils_screenshot.xr.js +1 -1
  51. package/lib/engine/extensions/NEEDLE_techniques_webgl.js +3 -0
  52. package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
  53. package/lib/engine/xr/NeedleXRSession.d.ts +5 -0
  54. package/lib/engine/xr/NeedleXRSession.js +5 -0
  55. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  56. package/lib/engine-components/Camera.js.map +1 -1
  57. package/lib/engine-components/DropListener.js.map +1 -1
  58. package/lib/engine-components/Duplicatable.js.map +1 -1
  59. package/lib/engine-components/GroundProjection.js.map +1 -1
  60. package/lib/engine-components/NeedleMenu.js.map +1 -1
  61. package/lib/engine-components/NestedGltf.js.map +1 -1
  62. package/lib/engine-components/ReflectionProbe.d.ts +32 -4
  63. package/lib/engine-components/ReflectionProbe.js +58 -88
  64. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  65. package/lib/engine-components/Renderer.d.ts +2 -0
  66. package/lib/engine-components/Renderer.js +30 -6
  67. package/lib/engine-components/Renderer.js.map +1 -1
  68. package/lib/engine-components/RendererLightmap.d.ts +13 -9
  69. package/lib/engine-components/RendererLightmap.js +67 -81
  70. package/lib/engine-components/RendererLightmap.js.map +1 -1
  71. package/lib/engine-components/SeeThrough.d.ts +0 -2
  72. package/lib/engine-components/SeeThrough.js +114 -88
  73. package/lib/engine-components/SeeThrough.js.map +1 -1
  74. package/lib/engine-components/SmoothFollow.js.map +1 -1
  75. package/lib/engine-components/VideoPlayer.js +6 -0
  76. package/lib/engine-components/VideoPlayer.js.map +1 -1
  77. package/lib/engine-components/ui/Button.js.map +1 -1
  78. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  79. package/lib/engine-components/utils/OpenURL.d.ts +1 -0
  80. package/lib/engine-components/utils/OpenURL.js +1 -0
  81. package/lib/engine-components/utils/OpenURL.js.map +1 -1
  82. package/lib/engine-components/web/CursorFollow.d.ts +1 -0
  83. package/lib/engine-components/web/CursorFollow.js +1 -0
  84. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  85. package/lib/engine-components/web/ScrollFollow.d.ts +1 -0
  86. package/lib/engine-components/web/ScrollFollow.js +1 -0
  87. package/lib/engine-components/web/ScrollFollow.js.map +1 -1
  88. package/lib/engine-components/web/ViewBox.d.ts +2 -2
  89. package/lib/engine-components/web/ViewBox.js +2 -2
  90. package/lib/engine-components/web/ViewBox.js.map +1 -1
  91. package/lib/engine-components/webxr/WebARCameraBackground.d.ts +9 -0
  92. package/lib/engine-components/webxr/WebARCameraBackground.js +9 -0
  93. package/lib/engine-components/webxr/WebARCameraBackground.js.map +1 -1
  94. package/lib/engine-components/webxr/WebXR.d.ts +1 -0
  95. package/lib/engine-components/webxr/WebXR.js +1 -0
  96. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  97. package/lib/engine-components/webxr/WebXRPlaneTracking.js.map +1 -1
  98. package/lib/engine-components/webxr/controllers/XRControllerFollow.js.map +1 -1
  99. package/lib/engine-components/webxr/controllers/XRControllerMovement.js.map +1 -1
  100. package/package.json +5 -5
  101. package/plugins/vite/build-pipeline.js +16 -2
  102. package/src/engine/api.ts +1 -0
  103. package/src/engine/engine_context.ts +17 -3
  104. package/src/engine/engine_lightdata.ts +8 -6
  105. package/src/engine/engine_materialpropertyblock.ts +866 -0
  106. package/src/engine/engine_utils.ts +1 -0
  107. package/src/engine/engine_utils_screenshot.ts +241 -17
  108. package/src/engine/engine_utils_screenshot.xr.ts +1 -1
  109. package/src/engine/extensions/NEEDLE_techniques_webgl.ts +3 -0
  110. package/src/engine/xr/NeedleXRSession.ts +5 -0
  111. package/src/engine-components/Camera.ts +2 -2
  112. package/src/engine-components/ContactShadows.ts +1 -1
  113. package/src/engine-components/DropListener.ts +1 -1
  114. package/src/engine-components/Duplicatable.ts +1 -1
  115. package/src/engine-components/GroundProjection.ts +3 -0
  116. package/src/engine-components/NeedleMenu.ts +3 -0
  117. package/src/engine-components/NestedGltf.ts +1 -1
  118. package/src/engine-components/ReflectionProbe.ts +64 -105
  119. package/src/engine-components/Renderer.ts +34 -6
  120. package/src/engine-components/RendererLightmap.ts +75 -87
  121. package/src/engine-components/SeeThrough.ts +124 -109
  122. package/src/engine-components/SmoothFollow.ts +2 -2
  123. package/src/engine-components/VideoPlayer.ts +6 -0
  124. package/src/engine-components/ui/Button.ts +1 -1
  125. package/src/engine-components/ui/Raycaster.ts +1 -1
  126. package/src/engine-components/utils/OpenURL.ts +1 -0
  127. package/src/engine-components/web/CursorFollow.ts +1 -0
  128. package/src/engine-components/web/ScrollFollow.ts +1 -0
  129. package/src/engine-components/web/ViewBox.ts +9 -2
  130. package/src/engine-components/webxr/WebARCameraBackground.ts +12 -3
  131. package/src/engine-components/webxr/WebXR.ts +1 -0
  132. package/src/engine-components/webxr/WebXRPlaneTracking.ts +3 -3
  133. package/src/engine-components/webxr/controllers/XRControllerFollow.ts +1 -1
  134. package/src/engine-components/webxr/controllers/XRControllerMovement.ts +4 -4
  135. package/dist/generateMeshBVH.worker-iyfPIK6R.js +0 -21
  136. package/dist/gltf-progressive-BURrJW0U.umd.cjs +0 -8
  137. package/dist/gltf-progressive-DHLDFNvQ.min.js +0 -8
  138. package/dist/gltf-progressive-eiJCrjLb.js +0 -1400
  139. package/dist/loader.worker-C1GG9A7C.js +0 -23
  140. package/dist/needle-engine.bundle-BNIUpreS.min.js +0 -1653
  141. package/src/include/three/DragControls.js +0 -232
@@ -1,9 +1,9 @@
1
1
  import { NEEDLE_progressive } from "@needle-tools/gltf-progressive";
2
- import { Group, Mesh, MeshPhysicalMaterial, ShaderMaterial, Vector4 } from "three";
2
+ import { Group, Mesh, ShaderMaterial, Vector2, Vector4 } from "three";
3
3
  import { getParam } from "../engine/engine_utils.js";
4
+ import { MaterialPropertyBlock } from "../engine/engine_materialpropertyblock.js";
4
5
  const debug = getParam("debuglightmaps");
5
- let cloningCounter = 0;
6
- const $lightmapVersion = Symbol("lightmap-material-version");
6
+ const $lightmapKey = Symbol("lightmapKey");
7
7
  /**
8
8
  * This component is automatically added by the {@link Renderer} component if the object has lightmap uvs AND we have a lightmap.
9
9
  *
@@ -18,10 +18,13 @@ export class RendererLightmap {
18
18
  if (tex !== this.lightmapTexture) {
19
19
  this.lightmapTexture = tex;
20
20
  this.applyLightmap();
21
+ this.updatePropertyBlockTexture();
21
22
  if (this.lightmapTexture) {
22
23
  NEEDLE_progressive.assignTextureLOD(this.lightmapTexture, 0).then(res => {
23
- if (res?.isTexture)
24
+ if (res?.isTexture) {
24
25
  this.lightmapTexture = res;
26
+ this.updatePropertyBlockTexture();
27
+ }
25
28
  });
26
29
  }
27
30
  }
@@ -29,12 +32,10 @@ export class RendererLightmap {
29
32
  lightmapIndex = -1;
30
33
  lightmapScaleOffset = new Vector4(1, 1, 0, 0);
31
34
  renderer;
32
- clonedMaterials = new Array();
35
+ _isApplied = false;
33
36
  get context() { return this.renderer.context; }
34
37
  get gameObject() { return this.renderer.gameObject; }
35
38
  lightmapTexture = null;
36
- lightmapScaleOffsetUniform = { value: new Vector4(1, 1, 0, 0) };
37
- lightmapUniform = { value: null };
38
39
  constructor(renderer) {
39
40
  this.renderer = renderer;
40
41
  }
@@ -46,8 +47,10 @@ export class RendererLightmap {
46
47
  this.lightmapScaleOffset = lightmapScaleOffset;
47
48
  this.lightmapTexture = lightmapTexture;
48
49
  NEEDLE_progressive.assignTextureLOD(lightmapTexture, 0).then(res => {
49
- if (res?.isTexture)
50
+ if (res?.isTexture) {
50
51
  this.lightmapTexture = res;
52
+ this.updatePropertyBlockTexture();
53
+ }
51
54
  });
52
55
  if (debug == "show") {
53
56
  console.log("Lightmap:", this.gameObject.name, lightmapIndex, "\nScaleOffset:", lightmapScaleOffset, "\nTexture:", lightmapTexture);
@@ -57,17 +60,17 @@ export class RendererLightmap {
57
60
  console.log("Use debuglightmaps=show to render lightmaps only in the scene.");
58
61
  this.applyLightmap();
59
62
  }
60
- updateLightmapUniforms(material) {
61
- const uniforms = material["uniforms"];
62
- if (uniforms && uniforms.lightmap) {
63
- this.lightmapScaleOffsetUniform.value = this.lightmapScaleOffset;
64
- uniforms.lightmapScaleOffset = this.lightmapScaleOffsetUniform;
65
- }
63
+ updateLightmapUniforms(_material) {
66
64
  }
67
65
  /**
68
- * Apply the lightmap to the object. This will clone the material and set the lightmap texture and scale/offset
66
+ * Apply the lightmap to the object using MaterialPropertyBlock instead of cloning materials.
67
+ * The lightmap texture and its per-object UV transform are set as overrides via PropertyBlock.
68
+ * Three.js reads material.lightMap to determine shader defines and upload uniforms,
69
+ * and uses texture.offset/repeat to compute lightMapTransform in the vertex shader.
69
70
  */
70
71
  applyLightmap() {
72
+ if (this._isApplied)
73
+ return;
71
74
  if (this.gameObject.type === "Object3D") {
72
75
  if (debug)
73
76
  console.warn("Can not add lightmap. Is this object missing a renderer?", this.gameObject.name);
@@ -75,22 +78,56 @@ export class RendererLightmap {
75
78
  }
76
79
  const mesh = this.gameObject;
77
80
  this.ensureLightmapUvs(mesh);
81
+ if (this.lightmapIndex >= 0 && this.lightmapTexture) {
82
+ this.lightmapTexture.channel = 1;
83
+ const so = this.lightmapScaleOffset;
84
+ for (let i = 0; i < this.renderer.sharedMaterials.length; i++) {
85
+ const mat = this.renderer.sharedMaterials[i];
86
+ if (!mat)
87
+ continue;
88
+ // If the material doesn't support lightmaps, skip it
89
+ if (mat["lightMap"] === undefined)
90
+ continue;
91
+ if (debug)
92
+ console.log("Setting lightmap on material", mat.name, "for renderer", this.renderer.name);
93
+ // Use property block to set lightMap with per-object UV transform.
94
+ // The texture transform differentiates cache keys per object and
95
+ // PropertyBlock handles save/restore of the shared texture's offset/repeat.
96
+ const propertyBlock = MaterialPropertyBlock.get(this.gameObject);
97
+ propertyBlock.setOverride("lightMap", this.lightmapTexture, {
98
+ offset: new Vector2(so.z, 1 - so.y - so.w),
99
+ repeat: new Vector2(so.x, so.y)
100
+ });
101
+ mat[$lightmapKey] = true;
102
+ }
103
+ this._isApplied = true;
104
+ }
105
+ }
106
+ /** Update the lightMap override on all property blocks (e.g. after LOD swap) */
107
+ updatePropertyBlockTexture() {
108
+ if (!this._isApplied || !this.lightmapTexture)
109
+ return;
110
+ this.lightmapTexture.channel = 1;
111
+ const so = this.lightmapScaleOffset;
112
+ const propertyBlock = MaterialPropertyBlock.get(this.gameObject);
113
+ propertyBlock.setOverride("lightMap", this.lightmapTexture, {
114
+ offset: new Vector2(so.z, 1 - so.y - so.w),
115
+ repeat: new Vector2(so.x, so.y)
116
+ });
117
+ }
118
+ /**
119
+ * Remove the lightmap from the object
120
+ */
121
+ onUnset() {
78
122
  for (let i = 0; i < this.renderer.sharedMaterials.length; i++) {
79
123
  const mat = this.renderer.sharedMaterials[i];
80
- if (!mat)
81
- continue;
82
- const newMat = this.ensureLightmapMaterial(mat, i);
83
- if (mat !== newMat) {
84
- this.renderer.sharedMaterials[i] = newMat;
124
+ if (mat) {
125
+ delete mat[$lightmapKey];
85
126
  }
86
127
  }
87
- if (this.lightmapIndex >= 0 && this.lightmapTexture) {
88
- // always on channel 1 for now. We could optimize this by passing the correct lightmap index along
89
- this.lightmapTexture.channel = 1;
90
- for (const mat of this.renderer.sharedMaterials) {
91
- if (mat)
92
- this.assignLightmapTexture(mat);
93
- }
128
+ const block = MaterialPropertyBlock.get(this.gameObject);
129
+ if (block) {
130
+ block.removeOveride("lightMap");
94
131
  }
95
132
  }
96
133
  ensureLightmapUvs(object) {
@@ -105,58 +142,8 @@ export class RendererLightmap {
105
142
  }
106
143
  }
107
144
  }
108
- ensureLightmapMaterial(material, index) {
109
- if (!material.userData)
110
- material.userData = {};
111
- // if (material instanceof MeshPhysicalMaterial) {
112
- // return material;
113
- // }
114
- // check if the material version has changed and only then clone the material
115
- if (this.clonedMaterials[index] !== material) {
116
- if (debug) {
117
- ++cloningCounter;
118
- if (cloningCounter++ < 1000) {
119
- console.warn(`Cloning material for lightmap ${this.renderer.name}: '${material.name}'`);
120
- }
121
- else if (cloningCounter === 1000) {
122
- console.warn(`Further material cloning for lightmaps suppressed to avoid flooding the console.`);
123
- }
124
- }
125
- const mat = material.clone();
126
- if (!mat.name?.includes("(lightmap)"))
127
- mat.name = material.name + " (lightmap)";
128
- material = mat;
129
- material.onBeforeCompile = this.onBeforeCompile;
130
- this.clonedMaterials[index] = material;
131
- }
132
- return material;
133
- }
134
- assignLightmapTexture(material) {
135
- if (!material)
136
- return;
137
- if (material instanceof MeshPhysicalMaterial && material.transmission > 0) {
138
- return;
139
- }
140
- const hasChanged = material.lightMap !== this.lightmapTexture || material[$lightmapVersion] !== material.version;
141
- if (!hasChanged) {
142
- return;
143
- }
144
- if (debug)
145
- console.log(`Assigning lightmap texture ${this.renderer.name}: '${material.name}' (${material.version} ${material[$lightmapVersion]})`);
146
- // assign the lightmap
147
- material.lightMap = this.lightmapTexture;
148
- material.needsUpdate = true;
149
- // store the version of the material
150
- material[$lightmapVersion] = material.version;
151
- }
152
- onBeforeCompile = (shader, _) => {
153
- if (debug === "verbose")
154
- console.log("Lightmaps, before compile\n", shader);
155
- this.lightmapScaleOffsetUniform.value = this.lightmapScaleOffset;
156
- this.lightmapUniform.value = this.lightmapTexture;
157
- shader.uniforms.lightmapScaleOffset = this.lightmapScaleOffsetUniform;
158
- };
159
145
  setLightmapDebugMaterial() {
146
+ const so = this.lightmapScaleOffset;
160
147
  // debug lightmaps
161
148
  this.gameObject["material"] = new ShaderMaterial({
162
149
  vertexShader: `
@@ -170,7 +157,6 @@ export class RendererLightmap {
170
157
  fragmentShader: `
171
158
  uniform sampler2D lightMap;
172
159
  uniform float lightMapIntensity;
173
- uniform vec4 lightmapScaleOffset;
174
160
  varying vec2 vUv1;
175
161
 
176
162
  // took from threejs 05fc79cd52b79e8c3e8dec1e7dca72c5c39983a4
@@ -179,8 +165,8 @@ export class RendererLightmap {
179
165
  }
180
166
 
181
167
  void main() {
182
- vec2 lUv = vUv1.xy * lightmapScaleOffset.xy + vec2(lightmapScaleOffset.z, (1. - (lightmapScaleOffset.y + lightmapScaleOffset.w)));
183
-
168
+ vec2 lUv = vUv1.xy * vec2(${so.x.toFixed(6)}, ${so.y.toFixed(6)}) + vec2(${so.z.toFixed(6)}, ${(1 - so.y - so.w).toFixed(6)});
169
+
184
170
  vec4 lightMapTexel = texture2D( lightMap, lUv);
185
171
  gl_FragColor = lightMapTexel;
186
172
  gl_FragColor.a = 1.;
@@ -1 +1 @@
1
- {"version":3,"file":"RendererLightmap.js","sourceRoot":"","sources":["../../src/engine-components/RendererLightmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RendererLightmap.js","sourceRoot":"","sources":["../../src/engine-components/RendererLightmap.ts"],"names":[],"mappings":"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"}
@@ -127,8 +127,6 @@ export declare class SeeThrough extends Behaviour {
127
127
  * @internal
128
128
  */
129
129
  update(): void;
130
- private readonly rendererMaterials;
131
- private readonly rendererMaterialsOriginal;
132
130
  private updateDirection;
133
131
  /**
134
132
  * Update the alpha of the object's materials towards the target alpha over the given duration.
@@ -11,9 +11,22 @@ import { serializable } from "../engine/engine_serialization_decorator.js";
11
11
  import { getTempVector } from "../engine/engine_three_utils.js";
12
12
  import { getParam } from "../engine/engine_utils.js";
13
13
  import { Behaviour } from "./Component.js";
14
- import { USDZExporter } from "./export/usdz/USDZExporter.js";
15
14
  import { Renderer } from "./Renderer.js";
15
+ import { MaterialPropertyBlock } from "../engine/engine_materialpropertyblock.js";
16
16
  const debugSeeThrough = getParam("debugseethrough");
17
+ // type MaterialState = {
18
+ // opacity: number,
19
+ // transparent: boolean,
20
+ // alphaHash: boolean
21
+ // }
22
+ // type MaterialWithState = Material & {
23
+ // /** Original values */
24
+ // userData: {
25
+ // seeThrough: {
26
+ // initial: MaterialState,
27
+ // }
28
+ // }
29
+ // };
17
30
  let i = 0;
18
31
  /**
19
32
  * Automatically fades objects to transparent when they obscure a reference point from the camera's view.
@@ -142,26 +155,24 @@ export class SeeThrough extends Behaviour {
142
155
  onEnable() {
143
156
  this._needsUpdate = true;
144
157
  this._renderer = null;
145
- SeeThroughUsdzExporterPlugin.components.push(this);
158
+ // SeeThroughUsdzExporterPlugin.components.push(this);
146
159
  }
147
160
  /** @internal */
148
161
  onDisable() {
149
- this._renderer?.forEach(r => {
150
- const original = this.rendererMaterialsOriginal.get(r);
151
- for (let i = 0; i < r.sharedMaterials.length; i++) {
152
- const mat = r.sharedMaterials[i];
153
- if (!mat)
154
- continue;
155
- if (original && original[i]) {
156
- r.sharedMaterials[i] = original[i];
157
- }
158
- }
159
- this.rendererMaterials.delete(r);
160
- this.rendererMaterialsOriginal.delete(r);
161
- });
162
- const index = SeeThroughUsdzExporterPlugin.components.indexOf(this);
163
- if (index !== -1)
164
- SeeThroughUsdzExporterPlugin.components.splice(index, 1);
162
+ // this._renderer?.forEach(r => {
163
+ // const original = this.rendererMaterialsOriginal.get(r);
164
+ // for (let i = 0; i < r.sharedMaterials.length; i++) {
165
+ // const mat = r.sharedMaterials[i];
166
+ // if (!mat) continue;
167
+ // if (original && original[i]) {
168
+ // r.sharedMaterials[i] = original[i];
169
+ // }
170
+ // }
171
+ // this.rendererMaterials.delete(r);
172
+ // this.rendererMaterialsOriginal.delete(r);
173
+ // });
174
+ // const index = SeeThroughUsdzExporterPlugin.components.indexOf(this);
175
+ // if (index !== -1) SeeThroughUsdzExporterPlugin.components.splice(index, 1);
165
176
  }
166
177
  /**
167
178
  * @internal
@@ -195,8 +206,8 @@ export class SeeThrough extends Behaviour {
195
206
  this.updateAlpha(1, this.fadeDuration);
196
207
  }
197
208
  }
198
- rendererMaterials = new WeakMap();
199
- rendererMaterialsOriginal = new WeakMap();
209
+ // private readonly rendererMaterials = new WeakMap<Renderer, Array<MaterialWithState>>();
210
+ // private readonly rendererMaterialsOriginal = new WeakMap<Renderer, Array<Material>>();
200
211
  updateDirection() {
201
212
  this.referencePoint ??= this.context.scene;
202
213
  this._referencePointVector.copy(this.gameObject.worldPosition.sub(this.referencePoint.worldPosition));
@@ -221,62 +232,69 @@ export class SeeThrough extends Behaviour {
221
232
  else {
222
233
  renderer.gameObject.raycastAllowed = true;
223
234
  }
224
- if (!this.rendererMaterials.has(renderer)) {
225
- const originalMaterials = new Array();
226
- const clonedMaterials = new Array();
227
- // We clone the materials once and store them, so we can modify the opacity without affecting other objects using the same material. This could potentially be optimized further to re-use materials between renderers if multiple renderers use the same material.
228
- for (let i = 0; i < renderer.sharedMaterials.length; i++) {
229
- const mat = renderer.sharedMaterials[i];
230
- if (!mat)
231
- continue;
232
- originalMaterials.push(mat);
233
- const matClone = mat.clone();
234
- // @ts-ignore
235
- matClone.userData = mat.userData || {};
236
- matClone.userData.seeThrough = {
237
- initial: {
238
- opacity: matClone.opacity,
239
- transparent: matClone.transparent,
240
- alphaHash: matClone.alphaHash
241
- }
242
- };
243
- clonedMaterials.push(matClone);
244
- renderer.sharedMaterials[i] = matClone;
245
- }
246
- this.rendererMaterials.set(renderer, clonedMaterials);
247
- this.rendererMaterialsOriginal.set(renderer, originalMaterials);
248
- }
249
- const materials = renderer.hasLightmap ? renderer.sharedMaterials : this.rendererMaterials.get(renderer);
235
+ // if (!this.rendererMaterials.has(renderer)) {
236
+ // const originalMaterials = new Array<Material>();
237
+ // const clonedMaterials = new Array<MaterialWithState>();
238
+ // // We clone the materials once and store them, so we can modify the opacity without affecting other objects using the same material. This could potentially be optimized further to re-use materials between renderers if multiple renderers use the same material.
239
+ // for (let i = 0; i < renderer.sharedMaterials.length; i++) {
240
+ // const mat = renderer.sharedMaterials[i];
241
+ // if (!mat) continue;
242
+ // originalMaterials.push(mat);
243
+ // const matClone = mat.clone() as MaterialWithState;
244
+ // // @ts-ignore
245
+ // matClone.userData = mat.userData || {};
246
+ // matClone.userData.seeThrough = {
247
+ // initial: {
248
+ // opacity: matClone.opacity,
249
+ // transparent: matClone.transparent,
250
+ // alphaHash: matClone.alphaHash
251
+ // }
252
+ // }
253
+ // clonedMaterials.push(matClone);
254
+ // // renderer.sharedMaterials[i] = matClone;
255
+ // }
256
+ // this.rendererMaterials.set(renderer, clonedMaterials);
257
+ // this.rendererMaterialsOriginal.set(renderer, originalMaterials);
258
+ // }
259
+ const materials = renderer.sharedMaterials; // : this.rendererMaterials.get(renderer);
250
260
  if (!materials)
251
261
  return;
252
- for (const mat of materials) {
253
- if (!mat)
254
- continue;
255
- let newAlpha = Mathf.lerp(mat.opacity, targetAlpha, duration <= 0 ? 1 : this.context.time.deltaTime / duration);
256
- ;
257
- if (newAlpha >= 0.99)
258
- newAlpha = 1;
259
- else if (newAlpha <= 0.01)
260
- newAlpha = 0;
261
- const wasTransparent = mat.transparent;
262
- const wasAlphaHash = mat.alphaHash;
263
- const previousOpacity = mat.opacity;
264
- mat.alphaHash = this.useAlphaHash;
265
- if (mat.userData && "seeThrough" in mat.userData) {
266
- const initial = mat.userData.seeThrough.initial;
267
- mat.opacity = initial.opacity * newAlpha;
268
- mat.transparent = mat.opacity >= 1 ? initial.transparent : !this.useAlphaHash;
269
- }
270
- else {
271
- mat.transparent = mat.opacity >= 1 ? false : !this.useAlphaHash;
272
- }
273
- if (wasTransparent !== mat.transparent
274
- || wasAlphaHash !== mat.alphaHash
275
- || mat.opacity !== previousOpacity // MeshPhysicsMaterial needs that and maybe other materials too...
276
- ) {
277
- mat.needsUpdate = true;
278
- }
279
- }
262
+ const block = MaterialPropertyBlock.get(renderer.gameObject);
263
+ const currentOpacity = (block.getOverride("opacity")?.value ?? materials[0].opacity ?? 1);
264
+ let newAlpha = Mathf.lerp(currentOpacity, targetAlpha, duration <= 0 ? 1 : this.context.time.deltaTime / duration);
265
+ ;
266
+ if (newAlpha >= 0.99)
267
+ newAlpha = 1;
268
+ else if (newAlpha <= 0.01)
269
+ newAlpha = 0;
270
+ // const currentTransparent = (block.getOverride("transparent")?.value ?? materials[0].transparent ?? false) as boolean;
271
+ block.setOverride("alphaHash", this.useAlphaHash);
272
+ block.setOverride("opacity", newAlpha);
273
+ block.setOverride("transparent", newAlpha >= 0.99999 ? false : !this.useAlphaHash);
274
+ // for (const mat of materials) {
275
+ // if (!mat) continue;
276
+ // let newAlpha = Mathf.lerp(mat.opacity, targetAlpha, duration <= 0 ? 1 : this.context.time.deltaTime / duration);;
277
+ // if (newAlpha >= 0.99) newAlpha = 1;
278
+ // else if (newAlpha <= 0.01) newAlpha = 0;
279
+ // const wasTransparent = mat.transparent;
280
+ // const wasAlphaHash = mat.alphaHash;
281
+ // const previousOpacity = mat.opacity;
282
+ // mat.alphaHash = this.useAlphaHash;
283
+ // if (mat.userData && "seeThrough" in mat.userData) {
284
+ // const initial = mat.userData.seeThrough.initial as MaterialState;
285
+ // mat.opacity = initial.opacity * newAlpha;
286
+ // mat.transparent = mat.opacity >= 1 ? initial.transparent : !this.useAlphaHash;
287
+ // }
288
+ // else {
289
+ // mat.transparent = mat.opacity >= 1 ? false : !this.useAlphaHash;
290
+ // }
291
+ // if (wasTransparent !== mat.transparent
292
+ // || wasAlphaHash !== mat.alphaHash
293
+ // || mat.opacity !== previousOpacity // MeshPhysicsMaterial needs that and maybe other materials too...
294
+ // ) {
295
+ // mat.needsUpdate = true;
296
+ // }
297
+ // }
280
298
  });
281
299
  }
282
300
  }
@@ -299,18 +317,26 @@ __decorate([
299
317
  serializable()
300
318
  ], SeeThrough.prototype, "autoUpdate", void 0);
301
319
  ;
302
- class SeeThroughUsdzExporterPlugin {
303
- static components = [];
304
- get extensionName() {
305
- return "SeeThrough";
306
- }
307
- }
308
- const seeThroughUsdzExporterPlugin = new SeeThroughUsdzExporterPlugin();
309
- USDZExporter.beforeExport.addEventListener(args => {
310
- if (SeeThroughUsdzExporterPlugin.components.length === 0)
311
- return;
312
- if (args.exporter.extensions.includes(seeThroughUsdzExporterPlugin) === false) {
313
- args.exporter.extensions.push(seeThroughUsdzExporterPlugin);
314
- }
315
- });
320
+ // class SeeThroughUsdzExporterPlugin implements IUSDExporterExtension {
321
+ // static readonly components: SeeThrough[] = [];
322
+ // get extensionName() {
323
+ // return "SeeThrough";
324
+ // }
325
+ // // onExportObject(object: Object3D<Object3DEventMap>, model: USDObject, context: USDZExporterContext) {
326
+ // // const component = SeeThroughUsdzExporterPlugin.components.find(c => c.gameObject === object);
327
+ // // if(!component) return;
328
+ // // console.log("OH MY GOD SEE THROUGH USDZ EXPORTER", component, model);
329
+ // // model.materialName = "AlphaHashMaterialInstance"; // we could make this unique per object if needed
330
+ // // model.addEventListener("serialize", (writer, context) => {
331
+ // // writer.appendLine(`# SeeThrough component on ${object.name}`);
332
+ // // });
333
+ // // }
334
+ // }
335
+ // const seeThroughUsdzExporterPlugin = new SeeThroughUsdzExporterPlugin();
336
+ // USDZExporter.beforeExport.addEventListener(args => {
337
+ // if (SeeThroughUsdzExporterPlugin.components.length === 0) return;
338
+ // if (args.exporter.extensions.includes(seeThroughUsdzExporterPlugin) === false) {
339
+ // args.exporter.extensions.push(seeThroughUsdzExporterPlugin);
340
+ // }
341
+ // });
316
342
  //# sourceMappingURL=SeeThrough.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SeeThrough.js","sourceRoot":"","sources":["../../src/engine-components/SeeThrough.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SeeThrough.js","sourceRoot":"","sources":["../../src/engine-components/SeeThrough.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SmoothFollow.js","sourceRoot":"","sources":["../../src/engine-components/SmoothFollow.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAEvF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IAEvC;;OAEG;IAEH,MAAM,GAAoB,IAAI,CAAC;IAE/B;;;;;;OAMG;IAEH,YAAY,GAAG,EAAE,CAAC;IAElB;;;;;;OAMG;IAEH,YAAY,GAAG,EAAE,CAAC;IAElB;;;;OAIG;IAEH,YAAY,GAAS,IAAI,CAAC,GAAG,CAAC;IAE9B,yEAAyE;IACzE,WAAW,GAAY,KAAK,CAAC;IAErB,MAAM,CAAC,cAAc,GAAe,IAAI,UAAU,EAAE,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,YAAY,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,cAAc;QACV,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,IAAa;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5D,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5G,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;YAE3C,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9F,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9F,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAE9F,yCAAyC;YAEzC,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;aAC/C;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAE5G,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;;AAxED;IADC,YAAY,CAAC,QAAQ,CAAC;4CACQ;AAU/B;IADC,YAAY,EAAE;kDACG;AAUlB;IADC,YAAY,EAAE;kDACG;AAQlB;IADC,YAAY,EAAE;kDACe"}
1
+ {"version":3,"file":"SmoothFollow.js","sourceRoot":"","sources":["../../src/engine-components/SmoothFollow.ts"],"names":[],"mappings":"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"}
@@ -567,11 +567,17 @@ export class VideoPlayer extends Behaviour {
567
567
  const fieldName = "map";
568
568
  const videoMaterial = this._videoMaterial;
569
569
  if (!this.targetMaterialProperty) {
570
+ if (debug && videoMaterial[fieldName] === undefined) {
571
+ console.warn(`The target material does not have a '${fieldName}' property, video might not render correctly.`);
572
+ }
570
573
  videoMaterial[fieldName] = this._videoTexture;
571
574
  }
572
575
  else {
573
576
  switch (this.targetMaterialProperty) {
574
577
  default:
578
+ if (debug && videoMaterial[this.targetMaterialProperty] === undefined) {
579
+ console.warn(`The target material does not have a '${this.targetMaterialProperty}' property, video might not render correctly.`);
580
+ }
575
581
  videoMaterial[fieldName] = this._videoTexture;
576
582
  break;
577
583
  // doesnt render: