super-three 0.177.0 → 0.179.0

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 (211) hide show
  1. package/README.md +1 -1
  2. package/build/three.cjs +959 -231
  3. package/build/three.core.js +751 -170
  4. package/build/three.core.min.js +1 -1
  5. package/build/three.module.js +210 -64
  6. package/build/three.module.min.js +1 -1
  7. package/build/three.tsl.js +78 -29
  8. package/build/three.tsl.min.js +1 -1
  9. package/build/three.webgpu.js +3269 -1545
  10. package/build/three.webgpu.min.js +1 -1
  11. package/build/three.webgpu.nodes.js +3093 -1545
  12. package/build/three.webgpu.nodes.min.js +1 -1
  13. package/examples/jsm/Addons.js +1 -2
  14. package/examples/jsm/capabilities/WebGL.js +0 -27
  15. package/examples/jsm/capabilities/WebGPU.js +1 -1
  16. package/examples/jsm/controls/ArcballControls.js +1 -1
  17. package/examples/jsm/controls/TransformControls.js +61 -14
  18. package/examples/jsm/csm/CSMShadowNode.js +4 -4
  19. package/examples/jsm/environments/RoomEnvironment.js +8 -3
  20. package/examples/jsm/exporters/USDZExporter.js +676 -299
  21. package/examples/jsm/geometries/RoundedBoxGeometry.js +47 -8
  22. package/examples/jsm/interactive/HTMLMesh.js +5 -3
  23. package/examples/jsm/libs/meshopt_decoder.module.js +75 -58
  24. package/examples/jsm/lights/LightProbeGenerator.js +14 -3
  25. package/examples/jsm/loaders/ColladaLoader.js +1 -1
  26. package/examples/jsm/loaders/EXRLoader.js +210 -22
  27. package/examples/jsm/loaders/FBXLoader.js +2 -2
  28. package/examples/jsm/loaders/MaterialXLoader.js +212 -30
  29. package/examples/jsm/loaders/TTFLoader.js +13 -1
  30. package/examples/jsm/loaders/USDLoader.js +219 -0
  31. package/examples/jsm/loaders/USDZLoader.js +4 -892
  32. package/examples/jsm/loaders/usd/USDAParser.js +741 -0
  33. package/examples/jsm/loaders/usd/USDCParser.js +17 -0
  34. package/examples/jsm/objects/LensflareMesh.js +3 -3
  35. package/examples/jsm/objects/SkyMesh.js +2 -2
  36. package/examples/jsm/physics/RapierPhysics.js +95 -16
  37. package/examples/jsm/postprocessing/GTAOPass.js +10 -9
  38. package/examples/jsm/postprocessing/OutlinePass.js +17 -17
  39. package/examples/jsm/postprocessing/SSAOPass.js +10 -9
  40. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +11 -2
  41. package/examples/jsm/transpiler/AST.js +381 -30
  42. package/examples/jsm/transpiler/GLSLDecoder.js +226 -86
  43. package/examples/jsm/transpiler/Linker.js +327 -0
  44. package/examples/jsm/transpiler/TSLEncoder.js +197 -92
  45. package/examples/jsm/transpiler/Transpiler.js +17 -1
  46. package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
  47. package/examples/jsm/transpiler/WGSLEncoder.js +788 -0
  48. package/examples/jsm/tsl/display/BloomNode.js +8 -7
  49. package/examples/jsm/tsl/display/ChromaticAberrationNode.js +206 -0
  50. package/examples/jsm/tsl/display/GaussianBlurNode.js +8 -10
  51. package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
  52. package/examples/jsm/tsl/display/{TRAAPassNode.js → TRAANode.js} +181 -172
  53. package/examples/jsm/tsl/display/hashBlur.js +3 -3
  54. package/examples/jsm/tsl/lighting/TiledLightsNode.js +1 -1
  55. package/package.json +1 -1
  56. package/src/Three.Core.js +1 -0
  57. package/src/Three.TSL.js +77 -28
  58. package/src/Three.WebGPU.js +2 -0
  59. package/src/animation/KeyframeTrack.js +1 -1
  60. package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
  61. package/src/animation/tracks/StringKeyframeTrack.js +1 -1
  62. package/src/cameras/Camera.js +14 -0
  63. package/src/cameras/OrthographicCamera.js +1 -1
  64. package/src/cameras/PerspectiveCamera.js +1 -1
  65. package/src/constants.js +3 -3
  66. package/src/core/BufferAttribute.js +3 -3
  67. package/src/core/Clock.js +2 -8
  68. package/src/core/GLBufferAttribute.js +13 -1
  69. package/src/core/Object3D.js +1 -1
  70. package/{examples/jsm/misc → src/core}/Timer.js +4 -42
  71. package/src/extras/PMREMGenerator.js +11 -0
  72. package/src/extras/core/Path.js +22 -22
  73. package/src/helpers/CameraHelper.js +41 -11
  74. package/src/helpers/SkeletonHelper.js +35 -6
  75. package/src/lights/LightShadow.js +21 -8
  76. package/src/lights/PointLightShadow.js +1 -1
  77. package/src/loaders/FileLoader.js +27 -4
  78. package/src/loaders/ImageBitmapLoader.js +27 -4
  79. package/src/loaders/ImageLoader.js +55 -8
  80. package/src/loaders/Loader.js +14 -0
  81. package/src/loaders/LoadingManager.js +23 -0
  82. package/src/materials/MeshBasicMaterial.js +1 -1
  83. package/src/materials/nodes/Line2NodeMaterial.js +0 -8
  84. package/src/materials/nodes/MeshBasicNodeMaterial.js +4 -3
  85. package/src/materials/nodes/MeshMatcapNodeMaterial.js +1 -1
  86. package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
  87. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -1
  88. package/src/materials/nodes/MeshSSSNodeMaterial.js +2 -2
  89. package/src/materials/nodes/NodeMaterial.js +28 -5
  90. package/src/materials/nodes/PointsNodeMaterial.js +5 -0
  91. package/src/materials/nodes/manager/NodeMaterialObserver.js +87 -2
  92. package/src/math/Frustum.js +25 -9
  93. package/src/math/FrustumArray.js +10 -5
  94. package/src/math/Line3.js +129 -2
  95. package/src/math/Matrix4.js +48 -27
  96. package/src/math/Quaternion.js +1 -1
  97. package/src/math/Spherical.js +2 -2
  98. package/src/nodes/Nodes.js +2 -3
  99. package/src/nodes/TSL.js +5 -3
  100. package/src/nodes/accessors/AccessorsUtils.js +7 -8
  101. package/src/nodes/accessors/Bitangent.js +31 -25
  102. package/src/nodes/accessors/Camera.js +12 -12
  103. package/src/nodes/accessors/Normal.js +95 -29
  104. package/src/nodes/accessors/Object3DNode.js +1 -1
  105. package/src/nodes/accessors/Position.js +7 -7
  106. package/src/nodes/accessors/ReferenceNode.js +18 -3
  107. package/src/nodes/accessors/ReflectVector.js +3 -3
  108. package/src/nodes/accessors/SceneNode.js +1 -1
  109. package/src/nodes/accessors/StorageTextureNode.js +1 -1
  110. package/src/nodes/accessors/Tangent.js +25 -17
  111. package/src/nodes/accessors/TangentUtils.js +46 -0
  112. package/src/nodes/accessors/TextureBicubic.js +21 -3
  113. package/src/nodes/accessors/TextureNode.js +12 -0
  114. package/src/nodes/accessors/UniformArrayNode.js +0 -16
  115. package/src/nodes/core/ArrayNode.js +12 -0
  116. package/src/nodes/core/AssignNode.js +3 -0
  117. package/src/nodes/core/CacheNode.js +0 -14
  118. package/src/nodes/core/ContextNode.js +20 -1
  119. package/src/nodes/core/Node.js +15 -3
  120. package/src/nodes/core/NodeBuilder.js +228 -92
  121. package/src/nodes/core/NodeUtils.js +4 -1
  122. package/src/nodes/core/StackNode.js +49 -29
  123. package/src/nodes/core/SubBuildNode.js +89 -0
  124. package/src/nodes/core/UniformNode.js +63 -5
  125. package/src/nodes/core/VarNode.js +91 -2
  126. package/src/nodes/core/VaryingNode.js +6 -4
  127. package/src/nodes/display/BlendModes.js +2 -2
  128. package/src/nodes/display/FrontFacingNode.js +34 -2
  129. package/src/nodes/display/NormalMapNode.js +19 -50
  130. package/src/nodes/display/PassNode.js +157 -9
  131. package/src/nodes/display/ScreenNode.js +0 -26
  132. package/src/nodes/display/ViewportTextureNode.js +67 -7
  133. package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
  134. package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
  135. package/src/nodes/functions/PhongLightingModel.js +3 -3
  136. package/src/nodes/functions/PhysicalLightingModel.js +16 -16
  137. package/src/nodes/functions/material/getGeometryRoughness.js +2 -2
  138. package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
  139. package/src/nodes/gpgpu/ComputeNode.js +67 -23
  140. package/src/nodes/gpgpu/WorkgroupInfoNode.js +28 -3
  141. package/src/nodes/lighting/EnvironmentNode.js +5 -5
  142. package/src/nodes/lighting/LightsNode.js +4 -4
  143. package/src/nodes/lighting/ProjectorLightNode.js +19 -6
  144. package/src/nodes/lighting/ShadowFilterNode.js +1 -1
  145. package/src/nodes/lighting/ShadowNode.js +2 -2
  146. package/src/nodes/materialx/MaterialXNodes.js +131 -2
  147. package/src/nodes/materialx/lib/mx_noise.js +165 -1
  148. package/src/nodes/math/ConditionalNode.js +1 -20
  149. package/src/nodes/math/MathNode.js +90 -55
  150. package/src/nodes/math/OperatorNode.js +22 -39
  151. package/src/nodes/tsl/TSLBase.js +1 -0
  152. package/src/nodes/tsl/TSLCore.js +114 -55
  153. package/src/nodes/utils/DebugNode.js +1 -1
  154. package/src/nodes/utils/EquirectUV.js +27 -0
  155. package/src/nodes/utils/EventNode.js +83 -0
  156. package/src/nodes/utils/LoopNode.js +0 -17
  157. package/src/nodes/utils/MatcapUV.js +22 -0
  158. package/src/nodes/utils/RTTNode.js +22 -5
  159. package/src/nodes/utils/ReflectorNode.js +11 -4
  160. package/src/nodes/utils/SampleNode.js +81 -0
  161. package/src/nodes/utils/TriplanarTextures.js +65 -0
  162. package/src/objects/BatchedMesh.js +4 -2
  163. package/src/renderers/WebGLRenderer.js +26 -24
  164. package/src/renderers/common/Background.js +2 -2
  165. package/src/renderers/common/Bindings.js +19 -18
  166. package/src/renderers/common/Color4.js +2 -2
  167. package/src/renderers/common/CubeRenderTarget.js +1 -1
  168. package/src/renderers/common/PostProcessing.js +60 -5
  169. package/src/renderers/common/RenderObject.js +68 -3
  170. package/src/renderers/common/Renderer.js +19 -16
  171. package/src/renderers/common/SampledTexture.js +3 -71
  172. package/src/renderers/common/Sampler.js +79 -0
  173. package/src/renderers/common/Storage3DTexture.js +100 -0
  174. package/src/renderers/common/StorageArrayTexture.js +84 -0
  175. package/src/renderers/common/StorageTexture.js +19 -0
  176. package/src/renderers/common/Textures.js +19 -3
  177. package/src/renderers/common/XRManager.js +31 -12
  178. package/src/renderers/common/XRRenderTarget.js +21 -4
  179. package/src/renderers/common/extras/PMREMGenerator.js +1 -1
  180. package/src/renderers/common/nodes/NodeSampledTexture.js +0 -12
  181. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +20 -2
  182. package/src/renderers/shaders/ShaderLib/depth.glsl.js +11 -2
  183. package/src/renderers/webgl/WebGLAttributes.js +4 -0
  184. package/src/renderers/webgl/WebGLCapabilities.js +2 -2
  185. package/src/renderers/webgl/WebGLProgram.js +12 -6
  186. package/src/renderers/webgl/WebGLPrograms.js +6 -4
  187. package/src/renderers/webgl/WebGLShadowMap.js +11 -1
  188. package/src/renderers/webgl/WebGLState.js +4 -4
  189. package/src/renderers/webgl/WebGLTextures.js +19 -7
  190. package/src/renderers/webgl-fallback/WebGLBackend.js +103 -72
  191. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +3 -5
  192. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +4 -0
  193. package/src/renderers/webgl-fallback/utils/WebGLState.js +4 -4
  194. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +2 -0
  195. package/src/renderers/webgpu/WebGPUBackend.js +63 -16
  196. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +64 -79
  197. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +6 -0
  198. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +45 -31
  199. package/src/renderers/webgpu/utils/WebGPUConstants.js +7 -1
  200. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +5 -5
  201. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +12 -65
  202. package/src/renderers/webgpu/utils/WebGPUUtils.js +2 -17
  203. package/src/renderers/webxr/WebXRDepthSensing.js +6 -10
  204. package/src/renderers/webxr/WebXRManager.js +68 -6
  205. package/src/textures/ExternalTexture.js +45 -0
  206. package/src/textures/FramebufferTexture.js +2 -2
  207. package/src/textures/Source.js +11 -1
  208. package/src/textures/VideoTexture.js +30 -2
  209. package/src/nodes/utils/EquirectUVNode.js +0 -65
  210. package/src/nodes/utils/MatcapUVNode.js +0 -49
  211. package/src/nodes/utils/TriplanarTexturesNode.js +0 -148
@@ -117,7 +117,7 @@ export * from './loaders/TDSLoader.js';
117
117
  export * from './loaders/TGALoader.js';
118
118
  export * from './loaders/TIFFLoader.js';
119
119
  export * from './loaders/TTFLoader.js';
120
- export * from './loaders/USDZLoader.js';
120
+ export * from './loaders/USDLoader.js';
121
121
  export * from './loaders/VOXLoader.js';
122
122
  export * from './loaders/VRMLLoader.js';
123
123
  export * from './loaders/VTKLoader.js';
@@ -146,7 +146,6 @@ export * from './misc/MorphAnimMesh.js';
146
146
  export * from './misc/MorphBlendMesh.js';
147
147
  export * from './misc/ProgressiveLightMap.js';
148
148
  export * from './misc/RollerCoaster.js';
149
- export * from './misc/Timer.js';
150
149
  export * from './misc/TubePainter.js';
151
150
  export * from './misc/Volume.js';
152
151
  export * from './misc/VolumeSlice.js';
@@ -108,33 +108,6 @@ class WebGL {
108
108
 
109
109
  }
110
110
 
111
- // @deprecated, r168
112
-
113
- static isWebGLAvailable() {
114
-
115
- console.warn( 'isWebGLAvailable() has been deprecated and will be removed in r178. Use isWebGL2Available() instead.' );
116
-
117
- try {
118
-
119
- const canvas = document.createElement( 'canvas' );
120
- return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) );
121
-
122
- } catch ( e ) {
123
-
124
- return false;
125
-
126
- }
127
-
128
- }
129
-
130
- static getWebGLErrorMessage() {
131
-
132
- console.warn( 'getWebGLErrorMessage() has been deprecated and will be removed in r178. Use getWebGL2ErrorMessage() instead.' );
133
-
134
- return this._getErrorMessage( 1 );
135
-
136
- }
137
-
138
111
  }
139
112
 
140
113
  export default WebGL;
@@ -2,7 +2,7 @@ let isAvailable = ( typeof navigator !== 'undefined' && navigator.gpu !== undefi
2
2
 
3
3
  if ( typeof window !== 'undefined' && isAvailable ) {
4
4
 
5
- isAvailable = await navigator.gpu.requestAdapter();
5
+ isAvailable = Boolean( await navigator.gpu.requestAdapter() );
6
6
 
7
7
  }
8
8
 
@@ -457,7 +457,7 @@ class ArcballControls extends Controls {
457
457
  this._devPxRatio = window.devicePixelRatio;
458
458
 
459
459
  this.domElement.addEventListener( 'contextmenu', this._onContextMenu );
460
- this.domElement.addEventListener( 'wheel', this._onWheel );
460
+ this.domElement.addEventListener( 'wheel', this._onWheel, { passive: false } );
461
461
  this.domElement.addEventListener( 'pointerdown', this._onPointerDown );
462
462
  this.domElement.addEventListener( 'pointercancel', this._onPointerCancel );
463
463
 
@@ -888,6 +888,40 @@ class TransformControls extends Controls {
888
888
 
889
889
  }
890
890
 
891
+ /**
892
+ * Sets the colors of the control's gizmo.
893
+ *
894
+ * @param {number|Color|string} xAxis - The x-axis color.
895
+ * @param {number|Color|string} yAxis - The y-axis color.
896
+ * @param {number|Color|string} zAxis - The z-axis color.
897
+ * @param {number|Color|string} active - The color for active elements.
898
+ */
899
+ setColors( xAxis, yAxis, zAxis, active ) {
900
+
901
+ const materialLib = this._gizmo.materialLib;
902
+
903
+ materialLib.xAxis.color.set( xAxis );
904
+ materialLib.yAxis.color.set( yAxis );
905
+ materialLib.zAxis.color.set( zAxis );
906
+ materialLib.active.color.set( active );
907
+ materialLib.xAxisTransparent.color.set( xAxis );
908
+ materialLib.yAxisTransparent.color.set( yAxis );
909
+ materialLib.zAxisTransparent.color.set( zAxis );
910
+ materialLib.activeTransparent.color.set( active );
911
+
912
+ // update color caches
913
+
914
+ if ( materialLib.xAxis._color ) materialLib.xAxis._color.set( xAxis );
915
+ if ( materialLib.yAxis._color ) materialLib.yAxis._color.set( yAxis );
916
+ if ( materialLib.zAxis._color ) materialLib.zAxis._color.set( zAxis );
917
+ if ( materialLib.active._color ) materialLib.active._color.set( active );
918
+ if ( materialLib.xAxisTransparent._color ) materialLib.xAxisTransparent._color.set( xAxis );
919
+ if ( materialLib.yAxisTransparent._color ) materialLib.yAxisTransparent._color.set( yAxis );
920
+ if ( materialLib.zAxisTransparent._color ) materialLib.zAxisTransparent._color.set( zAxis );
921
+ if ( materialLib.activeTransparent._color ) materialLib.activeTransparent._color.set( active );
922
+
923
+ }
924
+
891
925
  }
892
926
 
893
927
  // mouse / touch event handlers
@@ -1146,6 +1180,19 @@ class TransformControlsGizmo extends Object3D {
1146
1180
  const matGray = gizmoMaterial.clone();
1147
1181
  matGray.color.setHex( 0x787878 );
1148
1182
 
1183
+ // materials in the below property are configurable via setColors()
1184
+
1185
+ this.materialLib = {
1186
+ xAxis: matRed,
1187
+ yAxis: matGreen,
1188
+ zAxis: matBlue,
1189
+ active: matYellow,
1190
+ xAxisTransparent: matRedTransparent,
1191
+ yAxisTransparent: matGreenTransparent,
1192
+ zAxisTransparent: matBlueTransparent,
1193
+ activeTransparent: matYellowTransparent
1194
+ };
1195
+
1149
1196
  // reusable geometry
1150
1197
 
1151
1198
  const arrowGeometry = new CylinderGeometry( 0, 0.04, 0.1, 12 );
@@ -1200,16 +1247,16 @@ class TransformControlsGizmo extends Object3D {
1200
1247
  [ new Mesh( lineGeometry2, matBlue ), null, [ Math.PI / 2, 0, 0 ]]
1201
1248
  ],
1202
1249
  XYZ: [
1203
- [ new Mesh( new OctahedronGeometry( 0.1, 0 ), matWhiteTransparent.clone() ), [ 0, 0, 0 ]]
1250
+ [ new Mesh( new OctahedronGeometry( 0.1, 0 ), matWhiteTransparent ), [ 0, 0, 0 ]]
1204
1251
  ],
1205
1252
  XY: [
1206
- [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent.clone() ), [ 0.15, 0.15, 0 ]]
1253
+ [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent ), [ 0.15, 0.15, 0 ]]
1207
1254
  ],
1208
1255
  YZ: [
1209
- [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent.clone() ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]]
1256
+ [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]]
1210
1257
  ],
1211
1258
  XZ: [
1212
- [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent.clone() ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]]
1259
+ [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]]
1213
1260
  ]
1214
1261
  };
1215
1262
 
@@ -1251,13 +1298,13 @@ class TransformControlsGizmo extends Object3D {
1251
1298
  [ new Line( TranslateHelperGeometry(), matHelper ), null, null, null, 'helper' ]
1252
1299
  ],
1253
1300
  X: [
1254
- [ new Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
1301
+ [ new Line( lineGeometry, matHelper ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
1255
1302
  ],
1256
1303
  Y: [
1257
- [ new Line( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ]
1304
+ [ new Line( lineGeometry, matHelper ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ]
1258
1305
  ],
1259
1306
  Z: [
1260
- [ new Line( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ]
1307
+ [ new Line( lineGeometry, matHelper ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ]
1261
1308
  ]
1262
1309
  };
1263
1310
 
@@ -1281,7 +1328,7 @@ class TransformControlsGizmo extends Object3D {
1281
1328
 
1282
1329
  const helperRotate = {
1283
1330
  AXIS: [
1284
- [ new Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
1331
+ [ new Line( lineGeometry, matHelper ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
1285
1332
  ]
1286
1333
  };
1287
1334
 
@@ -1329,7 +1376,7 @@ class TransformControlsGizmo extends Object3D {
1329
1376
  [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]]
1330
1377
  ],
1331
1378
  XYZ: [
1332
- [ new Mesh( new BoxGeometry( 0.1, 0.1, 0.1 ), matWhiteTransparent.clone() ) ],
1379
+ [ new Mesh( new BoxGeometry( 0.1, 0.1, 0.1 ), matWhiteTransparent ) ],
1333
1380
  ]
1334
1381
  };
1335
1382
 
@@ -1362,13 +1409,13 @@ class TransformControlsGizmo extends Object3D {
1362
1409
 
1363
1410
  const helperScale = {
1364
1411
  X: [
1365
- [ new Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
1412
+ [ new Line( lineGeometry, matHelper ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ]
1366
1413
  ],
1367
1414
  Y: [
1368
- [ new Line( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ]
1415
+ [ new Line( lineGeometry, matHelper ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ]
1369
1416
  ],
1370
1417
  Z: [
1371
- [ new Line( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ]
1418
+ [ new Line( lineGeometry, matHelper ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ]
1372
1419
  ]
1373
1420
  };
1374
1421
 
@@ -1749,7 +1796,7 @@ class TransformControlsGizmo extends Object3D {
1749
1796
 
1750
1797
  if ( handle.name === this.axis ) {
1751
1798
 
1752
- handle.material.color.setHex( 0xffff00 );
1799
+ handle.material.color.copy( this.materialLib.active.color );
1753
1800
  handle.material.opacity = 1.0;
1754
1801
 
1755
1802
  } else if ( this.axis.split( '' ).some( function ( a ) {
@@ -1758,7 +1805,7 @@ class TransformControlsGizmo extends Object3D {
1758
1805
 
1759
1806
  } ) ) {
1760
1807
 
1761
- handle.material.color.setHex( 0xffff00 );
1808
+ handle.material.color.copy( this.materialLib.active.color );
1762
1809
  handle.material.opacity = 1.0;
1763
1810
 
1764
1811
  }
@@ -374,9 +374,9 @@ class CSMShadowNode extends ShadowBaseNode {
374
374
  _setupFade() {
375
375
 
376
376
  const cameraNear = reference( 'camera.near', 'float', this ).setGroup( renderGroup );
377
- const cascades = reference( '_cascades', 'vec2', this ).setGroup( renderGroup ).label( 'cascades' );
377
+ const cascades = reference( '_cascades', 'vec2', this ).setGroup( renderGroup ).setName( 'cascades' );
378
378
 
379
- const shadowFar = uniform( 'float' ).setGroup( renderGroup ).label( 'shadowFar' )
379
+ const shadowFar = uniform( 'float' ).setGroup( renderGroup ).setName( 'shadowFar' )
380
380
  .onRenderUpdate( () => Math.min( this.maxFar, this.camera.far ) );
381
381
 
382
382
  const linearDepth = viewZToOrthographicDepth( positionView.z, cameraNear, shadowFar ).toVar( 'linearDepth' );
@@ -456,9 +456,9 @@ class CSMShadowNode extends ShadowBaseNode {
456
456
  _setupStandard() {
457
457
 
458
458
  const cameraNear = reference( 'camera.near', 'float', this ).setGroup( renderGroup );
459
- const cascades = reference( '_cascades', 'vec2', this ).setGroup( renderGroup ).label( 'cascades' );
459
+ const cascades = reference( '_cascades', 'vec2', this ).setGroup( renderGroup ).setName( 'cascades' );
460
460
 
461
- const shadowFar = uniform( 'float' ).setGroup( renderGroup ).label( 'shadowFar' )
461
+ const shadowFar = uniform( 'float' ).setGroup( renderGroup ).setName( 'shadowFar' )
462
462
  .onRenderUpdate( () => Math.min( this.maxFar, this.camera.far ) );
463
463
 
464
464
  const linearDepth = viewZToOrthographicDepth( positionView.z, cameraNear, shadowFar ).toVar( 'linearDepth' );
@@ -3,7 +3,7 @@ import {
3
3
  BoxGeometry,
4
4
  InstancedMesh,
5
5
  Mesh,
6
- MeshBasicMaterial,
6
+ MeshLambertMaterial,
7
7
  MeshStandardMaterial,
8
8
  PointLight,
9
9
  Scene,
@@ -168,8 +168,13 @@ class RoomEnvironment extends Scene {
168
168
 
169
169
  function createAreaLightMaterial( intensity ) {
170
170
 
171
- const material = new MeshBasicMaterial();
172
- material.color.setScalar( intensity );
171
+ // create an emissive-only material. see #31348
172
+ const material = new MeshLambertMaterial( {
173
+ color: 0x000000,
174
+ emissive: 0xffffff,
175
+ emissiveIntensity: intensity
176
+ } );
177
+
173
178
  return material;
174
179
 
175
180
  }