@plastic-software/three 0.181.2 → 0.182.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 (253) hide show
  1. package/README.md +3 -4
  2. package/build/three.cjs +1192 -522
  3. package/build/three.core.js +345 -219
  4. package/build/three.core.min.js +1 -1
  5. package/build/three.module.js +864 -328
  6. package/build/three.module.min.js +1 -1
  7. package/build/three.tsl.js +15 -3
  8. package/build/three.tsl.min.js +1 -1
  9. package/build/three.webgpu.js +3660 -1545
  10. package/build/three.webgpu.min.js +1 -1
  11. package/build/three.webgpu.nodes.js +3659 -1544
  12. package/build/three.webgpu.nodes.min.js +1 -1
  13. package/examples/jsm/controls/MapControls.js +55 -1
  14. package/examples/jsm/controls/OrbitControls.js +6 -6
  15. package/examples/jsm/controls/TrackballControls.js +6 -6
  16. package/examples/jsm/csm/CSM.js +2 -1
  17. package/examples/jsm/environments/RoomEnvironment.js +2 -0
  18. package/examples/jsm/geometries/DecalGeometry.js +1 -1
  19. package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
  20. package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
  21. package/examples/jsm/inspector/Inspector.js +53 -9
  22. package/examples/jsm/inspector/RendererInspector.js +12 -2
  23. package/examples/jsm/inspector/tabs/Console.js +2 -2
  24. package/examples/jsm/inspector/tabs/Parameters.js +2 -2
  25. package/examples/jsm/inspector/tabs/Performance.js +2 -2
  26. package/examples/jsm/inspector/tabs/Viewer.js +4 -4
  27. package/examples/jsm/inspector/ui/Profiler.js +1836 -31
  28. package/examples/jsm/inspector/ui/Style.js +948 -13
  29. package/examples/jsm/inspector/ui/Tab.js +188 -1
  30. package/examples/jsm/inspector/ui/Values.js +17 -1
  31. package/examples/jsm/loaders/3DMLoader.js +5 -4
  32. package/examples/jsm/loaders/DRACOLoader.js +5 -5
  33. package/examples/jsm/loaders/FBXLoader.js +0 -2
  34. package/examples/jsm/loaders/HDRLoader.js +0 -1
  35. package/examples/jsm/loaders/KTX2Loader.js +16 -0
  36. package/examples/jsm/loaders/LDrawLoader.js +2 -3
  37. package/examples/jsm/loaders/PCDLoader.js +1 -0
  38. package/examples/jsm/loaders/SVGLoader.js +1 -1
  39. package/examples/jsm/loaders/TDSLoader.js +0 -2
  40. package/examples/jsm/loaders/TGALoader.js +0 -2
  41. package/examples/jsm/loaders/UltraHDRLoader.js +110 -137
  42. package/examples/jsm/loaders/VOXLoader.js +660 -117
  43. package/examples/jsm/loaders/VRMLLoader.js +2 -2
  44. package/examples/jsm/loaders/usd/USDCParser.js +1 -1
  45. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -1
  46. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -1
  47. package/examples/jsm/materials/WoodNodeMaterial.js +11 -11
  48. package/examples/jsm/math/Octree.js +131 -1
  49. package/examples/jsm/misc/Volume.js +0 -1
  50. package/examples/jsm/misc/VolumeSlice.js +0 -1
  51. package/examples/jsm/objects/SkyMesh.js +13 -3
  52. package/examples/jsm/physics/AmmoPhysics.js +12 -7
  53. package/examples/jsm/physics/JoltPhysics.js +3 -1
  54. package/examples/jsm/physics/RapierPhysics.js +3 -1
  55. package/examples/jsm/postprocessing/OutputPass.js +9 -0
  56. package/examples/jsm/postprocessing/RenderPass.js +10 -0
  57. package/examples/jsm/postprocessing/UnrealBloomPass.js +48 -18
  58. package/examples/jsm/renderers/Projector.js +268 -30
  59. package/examples/jsm/renderers/SVGRenderer.js +191 -58
  60. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -4
  61. package/examples/jsm/transpiler/AST.js +44 -0
  62. package/examples/jsm/transpiler/GLSLDecoder.js +61 -4
  63. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
  64. package/examples/jsm/transpiler/TSLEncoder.js +46 -3
  65. package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
  66. package/examples/jsm/transpiler/WGSLEncoder.js +27 -0
  67. package/examples/jsm/tsl/display/AnaglyphPassNode.js +2 -0
  68. package/examples/jsm/tsl/display/BloomNode.js +11 -1
  69. package/examples/jsm/tsl/display/GTAONode.js +3 -2
  70. package/examples/jsm/tsl/display/PixelationPassNode.js +2 -1
  71. package/examples/jsm/tsl/display/SSGINode.js +7 -19
  72. package/examples/jsm/tsl/display/SSRNode.js +1 -1
  73. package/examples/jsm/tsl/display/SSSNode.js +4 -2
  74. package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
  75. package/examples/jsm/tsl/display/TRAANode.js +265 -114
  76. package/examples/jsm/tsl/display/radialBlur.js +68 -0
  77. package/examples/jsm/utils/ShadowMapViewer.js +24 -10
  78. package/examples/jsm/utils/ShadowMapViewerGPU.js +1 -1
  79. package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
  80. package/package.json +14 -12
  81. package/src/Three.Core.js +1 -0
  82. package/src/Three.TSL.js +14 -2
  83. package/src/animation/AnimationUtils.js +1 -12
  84. package/src/animation/KeyframeTrack.js +1 -1
  85. package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
  86. package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
  87. package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
  88. package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
  89. package/src/animation/tracks/StringKeyframeTrack.js +1 -1
  90. package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
  91. package/src/constants.js +61 -5
  92. package/src/core/BufferGeometry.js +14 -2
  93. package/src/core/Raycaster.js +2 -2
  94. package/src/extras/PMREMGenerator.js +3 -10
  95. package/src/extras/TextureUtils.js +5 -1
  96. package/src/geometries/ExtrudeGeometry.js +2 -2
  97. package/src/geometries/PolyhedronGeometry.js +1 -1
  98. package/src/helpers/PointLightHelper.js +1 -1
  99. package/src/lights/DirectionalLight.js +13 -0
  100. package/src/lights/HemisphereLight.js +10 -0
  101. package/src/lights/Light.js +1 -11
  102. package/src/lights/LightProbe.js +0 -15
  103. package/src/lights/LightShadow.js +0 -3
  104. package/src/lights/PointLight.js +15 -0
  105. package/src/lights/PointLightShadow.js +0 -86
  106. package/src/lights/SpotLight.js +22 -1
  107. package/src/loaders/MaterialLoader.js +2 -1
  108. package/src/loaders/ObjectLoader.js +3 -1
  109. package/src/loaders/nodes/NodeLoader.js +2 -2
  110. package/src/materials/Material.js +2 -0
  111. package/src/materials/ShaderMaterial.js +20 -1
  112. package/src/materials/nodes/Line2NodeMaterial.js +2 -2
  113. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +3 -2
  114. package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
  115. package/src/materials/nodes/NodeMaterial.js +59 -3
  116. package/src/materials/nodes/manager/NodeMaterialObserver.js +1 -1
  117. package/src/math/Matrix4.js +40 -40
  118. package/src/math/Sphere.js +1 -1
  119. package/src/math/Vector3.js +0 -2
  120. package/src/nodes/TSL.js +4 -1
  121. package/src/nodes/accessors/BatchNode.js +10 -10
  122. package/src/nodes/accessors/BufferAttributeNode.js +98 -12
  123. package/src/nodes/accessors/BufferNode.js +29 -2
  124. package/src/nodes/accessors/ClippingNode.js +4 -4
  125. package/src/nodes/accessors/CubeTextureNode.js +20 -1
  126. package/src/nodes/accessors/InstanceNode.js +69 -29
  127. package/src/nodes/accessors/MaterialNode.js +9 -1
  128. package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
  129. package/src/nodes/accessors/ModelNode.js +1 -1
  130. package/src/nodes/accessors/Normal.js +2 -2
  131. package/src/nodes/accessors/ReferenceBaseNode.js +4 -4
  132. package/src/nodes/accessors/ReferenceNode.js +4 -4
  133. package/src/nodes/accessors/RendererReferenceNode.js +1 -2
  134. package/src/nodes/accessors/SkinningNode.js +15 -2
  135. package/src/nodes/accessors/StorageBufferNode.js +4 -2
  136. package/src/nodes/accessors/Tangent.js +1 -11
  137. package/src/nodes/accessors/Texture3DNode.js +26 -1
  138. package/src/nodes/accessors/UniformArrayNode.js +2 -2
  139. package/src/nodes/accessors/UserDataNode.js +1 -2
  140. package/src/nodes/accessors/VertexColorNode.js +1 -2
  141. package/src/nodes/code/FunctionNode.js +1 -2
  142. package/src/nodes/core/ArrayNode.js +20 -1
  143. package/src/nodes/core/AssignNode.js +2 -2
  144. package/src/nodes/core/AttributeNode.js +2 -2
  145. package/src/nodes/core/ContextNode.js +103 -4
  146. package/src/nodes/core/NodeBuilder.js +56 -14
  147. package/src/nodes/core/NodeFrame.js +12 -4
  148. package/src/nodes/core/NodeUtils.js +5 -5
  149. package/src/nodes/core/ParameterNode.js +1 -2
  150. package/src/nodes/core/PropertyNode.js +19 -3
  151. package/src/nodes/core/StackNode.js +56 -8
  152. package/src/nodes/core/StructNode.js +1 -2
  153. package/src/nodes/core/StructTypeNode.js +11 -17
  154. package/src/nodes/core/UniformNode.js +19 -4
  155. package/src/nodes/core/VarNode.js +46 -21
  156. package/src/nodes/display/NormalMapNode.js +37 -2
  157. package/src/nodes/display/PassNode.js +77 -7
  158. package/src/nodes/display/ScreenNode.js +1 -0
  159. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +3 -3
  160. package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
  161. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  162. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +1 -1
  163. package/src/nodes/functions/PhysicalLightingModel.js +102 -43
  164. package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -2
  165. package/src/nodes/gpgpu/SubgroupFunctionNode.js +1 -1
  166. package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -3
  167. package/src/nodes/lighting/AnalyticLightNode.js +53 -0
  168. package/src/nodes/lighting/LightsNode.js +2 -2
  169. package/src/nodes/lighting/PointShadowNode.js +141 -140
  170. package/src/nodes/lighting/ShadowFilterNode.js +53 -37
  171. package/src/nodes/lighting/ShadowNode.js +53 -19
  172. package/src/nodes/math/BitcountNode.js +433 -0
  173. package/src/nodes/math/PackFloatNode.js +98 -0
  174. package/src/nodes/math/UnpackFloatNode.js +96 -0
  175. package/src/nodes/pmrem/PMREMNode.js +1 -1
  176. package/src/nodes/tsl/TSLCore.js +4 -4
  177. package/src/nodes/utils/ArrayElementNode.js +13 -0
  178. package/src/nodes/utils/EventNode.js +1 -2
  179. package/src/nodes/utils/Packing.js +13 -1
  180. package/src/nodes/utils/PostProcessingUtils.js +33 -1
  181. package/src/nodes/utils/ReflectorNode.js +1 -1
  182. package/src/nodes/utils/SampleNode.js +1 -1
  183. package/src/nodes/utils/UVUtils.js +26 -0
  184. package/src/objects/BatchedMesh.js +5 -2
  185. package/src/objects/Line.js +1 -1
  186. package/src/objects/Mesh.js +1 -1
  187. package/src/objects/Points.js +1 -1
  188. package/src/objects/Skeleton.js +9 -0
  189. package/src/renderers/WebGLRenderer.js +145 -33
  190. package/src/renderers/common/Backend.js +8 -0
  191. package/src/renderers/common/Background.js +19 -9
  192. package/src/renderers/common/Binding.js +11 -0
  193. package/src/renderers/common/Bindings.js +7 -7
  194. package/src/renderers/common/Buffer.js +40 -0
  195. package/src/renderers/common/ChainMap.js +30 -6
  196. package/src/renderers/common/Geometries.js +12 -0
  197. package/src/renderers/common/RenderContexts.js +8 -1
  198. package/src/renderers/common/RenderObject.js +14 -1
  199. package/src/renderers/common/Renderer.js +53 -35
  200. package/src/renderers/common/Textures.js +1 -1
  201. package/src/renderers/common/UniformsGroup.js +1 -0
  202. package/src/renderers/common/XRManager.js +1 -0
  203. package/src/renderers/common/extras/PMREMGenerator.js +2 -8
  204. package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
  205. package/src/renderers/shaders/DFGLUTData.js +19 -34
  206. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +5 -2
  207. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
  208. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +90 -51
  209. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +194 -186
  210. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  211. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  212. package/src/renderers/shaders/ShaderChunk.js +3 -3
  213. package/src/renderers/shaders/ShaderLib/depth.glsl.js +3 -0
  214. package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
  215. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +0 -1
  216. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
  217. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
  218. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
  219. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
  220. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +0 -1
  221. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
  222. package/src/renderers/shaders/ShaderLib.js +3 -3
  223. package/src/renderers/webgl/WebGLCapabilities.js +3 -4
  224. package/src/renderers/webgl/WebGLLights.js +18 -1
  225. package/src/renderers/webgl/WebGLOutput.js +267 -0
  226. package/src/renderers/webgl/WebGLProgram.js +43 -107
  227. package/src/renderers/webgl/WebGLPrograms.js +35 -45
  228. package/src/renderers/webgl/WebGLShadowMap.js +188 -25
  229. package/src/renderers/webgl/WebGLState.js +20 -20
  230. package/src/renderers/webgl/WebGLTextures.js +89 -28
  231. package/src/renderers/webgl/WebGLUniforms.js +40 -3
  232. package/src/renderers/webgl/WebGLUtils.js +6 -2
  233. package/src/renderers/webgl-fallback/WebGLBackend.js +79 -13
  234. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +59 -7
  235. package/src/renderers/webgl-fallback/utils/WebGLState.js +18 -3
  236. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +5 -3
  237. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +9 -9
  238. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +6 -2
  239. package/src/renderers/webgpu/WebGPUBackend.js +61 -4
  240. package/src/renderers/webgpu/WebGPURenderer.js +1 -1
  241. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +65 -23
  242. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +4 -17
  243. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +354 -186
  244. package/src/renderers/webgpu/utils/WebGPUConstants.js +2 -0
  245. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +20 -7
  246. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +40 -17
  247. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +7 -7
  248. package/src/renderers/webgpu/utils/WebGPUUtils.js +7 -5
  249. package/src/textures/CubeDepthTexture.js +76 -0
  250. package/src/textures/Source.js +1 -1
  251. package/src/textures/Texture.js +1 -1
  252. package/src/utils.js +13 -1
  253. package/src/nodes/functions/BSDF/DFGApprox.js +0 -71
@@ -3,7 +3,7 @@
3
3
  * Copyright 2010-2025 Three.js Authors
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- const REVISION = '181';
6
+ const REVISION = '182';
7
7
 
8
8
  /**
9
9
  * Represents mouse buttons and interaction types in context of controls.
@@ -915,6 +915,38 @@ const RGB_ETC2_Format = 37492;
915
915
  */
916
916
  const RGBA_ETC2_EAC_Format = 37496;
917
917
 
918
+ /**
919
+ * EAC R11 UNORM format.
920
+ *
921
+ * @type {number}
922
+ * @constant
923
+ */
924
+ const R11_EAC_Format = 37488; // 0x9270
925
+
926
+ /**
927
+ * EAC R11 SNORM format.
928
+ *
929
+ * @type {number}
930
+ * @constant
931
+ */
932
+ const SIGNED_R11_EAC_Format = 37489; // 0x9271
933
+
934
+ /**
935
+ * EAC RG11 UNORM format.
936
+ *
937
+ * @type {number}
938
+ * @constant
939
+ */
940
+ const RG11_EAC_Format = 37490; // 0x9272
941
+
942
+ /**
943
+ * EAC RG11 SNORM format.
944
+ *
945
+ * @type {number}
946
+ * @constant
947
+ */
948
+ const SIGNED_RG11_EAC_Format = 37491; // 0x9273
949
+
918
950
  /**
919
951
  * ASTC RGBA 4x4 format.
920
952
  *
@@ -1199,7 +1231,7 @@ const TriangleStripDrawMode = 1;
1199
1231
  const TriangleFanDrawMode = 2;
1200
1232
 
1201
1233
  /**
1202
- * Basic depth packing.
1234
+ * The depth value is inverted (1.0 - z) for visualization purposes.
1203
1235
  *
1204
1236
  * @type {number}
1205
1237
  * @constant
@@ -1207,7 +1239,7 @@ const TriangleFanDrawMode = 2;
1207
1239
  const BasicDepthPacking = 3200;
1208
1240
 
1209
1241
  /**
1210
- * A depth value is packed into 32 bit RGBA.
1242
+ * The depth value is packed into 32 bit RGBA.
1211
1243
  *
1212
1244
  * @type {number}
1213
1245
  * @constant
@@ -1215,7 +1247,7 @@ const BasicDepthPacking = 3200;
1215
1247
  const RGBADepthPacking = 3201;
1216
1248
 
1217
1249
  /**
1218
- * A depth value is packed into 24 bit RGB.
1250
+ * The depth value is packed into 24 bit RGB.
1219
1251
  *
1220
1252
  * @type {number}
1221
1253
  * @constant
@@ -1223,7 +1255,7 @@ const RGBADepthPacking = 3201;
1223
1255
  const RGBDepthPacking = 3202;
1224
1256
 
1225
1257
  /**
1226
- * A depth value is packed into 16 bit RG.
1258
+ * The depth value is packed into 16 bit RG.
1227
1259
  *
1228
1260
  * @type {number}
1229
1261
  * @constant
@@ -1288,6 +1320,30 @@ const LinearTransfer = 'linear';
1288
1320
  */
1289
1321
  const SRGBTransfer = 'srgb';
1290
1322
 
1323
+ /**
1324
+ * No normal map packing.
1325
+ *
1326
+ * @type {string}
1327
+ * @constant
1328
+ */
1329
+ const NoNormalPacking = '';
1330
+
1331
+ /**
1332
+ * Normal RG packing.
1333
+ *
1334
+ * @type {string}
1335
+ * @constant
1336
+ */
1337
+ const NormalRGPacking = 'rg';
1338
+
1339
+ /**
1340
+ * Normal GA packing.
1341
+ *
1342
+ * @type {string}
1343
+ * @constant
1344
+ */
1345
+ const NormalGAPacking = 'ga';
1346
+
1291
1347
  /**
1292
1348
  * Sets the stencil buffer value to `0`.
1293
1349
  *
@@ -1714,6 +1770,18 @@ function getTypedArray( type, buffer ) {
1714
1770
 
1715
1771
  }
1716
1772
 
1773
+ /**
1774
+ * Returns `true` if the given object is a typed array.
1775
+ *
1776
+ * @param {any} array - The object to check.
1777
+ * @return {boolean} Whether the given object is a typed array.
1778
+ */
1779
+ function isTypedArray( array ) {
1780
+
1781
+ return ArrayBuffer.isView( array ) && ! ( array instanceof DataView );
1782
+
1783
+ }
1784
+
1717
1785
  function createElementNS( name ) {
1718
1786
 
1719
1787
  return document.createElementNS( 'http://www.w3.org/1999/xhtml', name );
@@ -5230,8 +5298,6 @@ class Vector3 {
5230
5298
 
5231
5299
  }
5232
5300
 
5233
- // TODO lengthSquared?
5234
-
5235
5301
  /**
5236
5302
  * Computes the square of the Euclidean length (straight-line length) from
5237
5303
  * (0, 0, 0) to (x, y, z). If you are comparing the lengths of vectors, you should
@@ -6787,7 +6853,7 @@ class Source {
6787
6853
 
6788
6854
  target.set( data.videoWidth, data.videoHeight, 0 );
6789
6855
 
6790
- } else if ( data instanceof VideoFrame ) {
6856
+ } else if ( ( typeof VideoFrame !== 'undefined' ) && ( data instanceof VideoFrame ) ) {
6791
6857
 
6792
6858
  target.set( data.displayHeight, data.displayWidth, 0 );
6793
6859
 
@@ -7067,7 +7133,7 @@ class Texture extends EventDispatcher {
7067
7133
  * texture samples being used.
7068
7134
  *
7069
7135
  * @type {number}
7070
- * @default 0
7136
+ * @default Texture.DEFAULT_ANISOTROPY
7071
7137
  */
7072
7138
  this.anisotropy = anisotropy;
7073
7139
 
@@ -10715,7 +10781,7 @@ class Sphere {
10715
10781
  * Returns a serialized structure of the bounding sphere.
10716
10782
  *
10717
10783
  * @param {Object} json - The serialized json to set the sphere from.
10718
- * @return {Box3} A reference to this bounding sphere.
10784
+ * @return {Sphere} A reference to this bounding sphere.
10719
10785
  */
10720
10786
  fromJSON( json ) {
10721
10787
 
@@ -11612,6 +11678,16 @@ class Matrix4 {
11612
11678
  */
11613
11679
  extractBasis( xAxis, yAxis, zAxis ) {
11614
11680
 
11681
+ if ( this.determinant() === 0 ) {
11682
+
11683
+ xAxis.set( 1, 0, 0 );
11684
+ yAxis.set( 0, 1, 0 );
11685
+ zAxis.set( 0, 0, 1 );
11686
+
11687
+ return this;
11688
+
11689
+ }
11690
+
11615
11691
  xAxis.setFromMatrixColumn( this, 0 );
11616
11692
  yAxis.setFromMatrixColumn( this, 1 );
11617
11693
  zAxis.setFromMatrixColumn( this, 2 );
@@ -11652,6 +11728,12 @@ class Matrix4 {
11652
11728
  */
11653
11729
  extractRotation( m ) {
11654
11730
 
11731
+ if ( m.determinant() === 0 ) {
11732
+
11733
+ return this.identity();
11734
+
11735
+ }
11736
+
11655
11737
  const te = this.elements;
11656
11738
  const me = m.elements;
11657
11739
 
@@ -11992,43 +12074,18 @@ class Matrix4 {
11992
12074
  const n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];
11993
12075
  const n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];
11994
12076
 
11995
- //TODO: make this more efficient
11996
-
11997
- return (
11998
- n41 * (
11999
- + n14 * n23 * n32
12000
- - n13 * n24 * n32
12001
- - n14 * n22 * n33
12002
- + n12 * n24 * n33
12003
- + n13 * n22 * n34
12004
- - n12 * n23 * n34
12005
- ) +
12006
- n42 * (
12007
- + n11 * n23 * n34
12008
- - n11 * n24 * n33
12009
- + n14 * n21 * n33
12010
- - n13 * n21 * n34
12011
- + n13 * n24 * n31
12012
- - n14 * n23 * n31
12013
- ) +
12014
- n43 * (
12015
- + n11 * n24 * n32
12016
- - n11 * n22 * n34
12017
- - n14 * n21 * n32
12018
- + n12 * n21 * n34
12019
- + n14 * n22 * n31
12020
- - n12 * n24 * n31
12021
- ) +
12022
- n44 * (
12023
- - n13 * n22 * n31
12024
- - n11 * n23 * n32
12025
- + n11 * n22 * n33
12026
- + n13 * n21 * n32
12027
- - n12 * n21 * n33
12028
- + n12 * n23 * n31
12029
- )
12077
+ const t11 = n23 * n34 - n24 * n33;
12078
+ const t12 = n22 * n34 - n24 * n32;
12079
+ const t13 = n22 * n33 - n23 * n32;
12030
12080
 
12031
- );
12081
+ const t21 = n21 * n34 - n24 * n31;
12082
+ const t22 = n21 * n33 - n23 * n31;
12083
+ const t23 = n21 * n32 - n22 * n31;
12084
+
12085
+ return n11 * ( n42 * t11 - n43 * t12 + n44 * t13 ) -
12086
+ n12 * ( n41 * t11 - n43 * t21 + n44 * t22 ) +
12087
+ n13 * ( n41 * t12 - n42 * t21 + n44 * t23 ) -
12088
+ n14 * ( n41 * t13 - n42 * t22 + n43 * t23 );
12032
12089
 
12033
12090
  }
12034
12091
 
@@ -12429,6 +12486,19 @@ class Matrix4 {
12429
12486
 
12430
12487
  const te = this.elements;
12431
12488
 
12489
+ position.x = te[ 12 ];
12490
+ position.y = te[ 13 ];
12491
+ position.z = te[ 14 ];
12492
+
12493
+ if ( this.determinant() === 0 ) {
12494
+
12495
+ scale.set( 1, 1, 1 );
12496
+ quaternion.identity();
12497
+
12498
+ return this;
12499
+
12500
+ }
12501
+
12432
12502
  let sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();
12433
12503
  const sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();
12434
12504
  const sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();
@@ -12437,10 +12507,6 @@ class Matrix4 {
12437
12507
  const det = this.determinant();
12438
12508
  if ( det < 0 ) sx = - sx;
12439
12509
 
12440
- position.x = te[ 12 ];
12441
- position.y = te[ 13 ];
12442
- position.z = te[ 14 ];
12443
-
12444
12510
  // scale the rotation part
12445
12511
  _m1$2.copy( this );
12446
12512
 
@@ -17170,6 +17236,7 @@ class Material extends EventDispatcher {
17170
17236
  if ( this.alphaToCoverage === true ) data.alphaToCoverage = true;
17171
17237
  if ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;
17172
17238
  if ( this.forceSinglePass === true ) data.forceSinglePass = true;
17239
+ if ( this.allowOverride === false ) data.allowOverride = false;
17173
17240
 
17174
17241
  if ( this.wireframe === true ) data.wireframe = true;
17175
17242
  if ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;
@@ -17305,6 +17372,7 @@ class Material extends EventDispatcher {
17305
17372
  this.alphaToCoverage = source.alphaToCoverage;
17306
17373
  this.premultipliedAlpha = source.premultipliedAlpha;
17307
17374
  this.forceSinglePass = source.forceSinglePass;
17375
+ this.allowOverride = source.allowOverride;
17308
17376
 
17309
17377
  this.visible = source.visible;
17310
17378
 
@@ -18928,6 +18996,16 @@ class BufferGeometry extends EventDispatcher {
18928
18996
  */
18929
18997
  this.indirect = null;
18930
18998
 
18999
+ /**
19000
+ * The offset, in bytes, into the indirect drawing buffer where the value data begins. If an array is provided, multiple indirect draw calls will be made for each offset.
19001
+ *
19002
+ * Can only be used with {@link WebGPURenderer} and a WebGPU backend.
19003
+ *
19004
+ * @type {number|Array<number>}
19005
+ * @default 0
19006
+ */
19007
+ this.indirectOffset = 0;
19008
+
18931
19009
  /**
18932
19010
  * This dictionary has as id the name of the attribute to be set and as value
18933
19011
  * the buffer attribute to set it to. Rather than accessing this property directly,
@@ -18941,7 +19019,7 @@ class BufferGeometry extends EventDispatcher {
18941
19019
  * This dictionary holds the morph targets of the geometry.
18942
19020
  *
18943
19021
  * Note: Once the geometry has been rendered, the morph attribute data cannot
18944
- * be changed. You will have to call `dispose()?, and create a new geometry instance.
19022
+ * be changed. You will have to call `dispose()`, and create a new geometry instance.
18945
19023
  *
18946
19024
  * @type {Object}
18947
19025
  */
@@ -19041,11 +19119,13 @@ class BufferGeometry extends EventDispatcher {
19041
19119
  * Sets the given indirect attribute to this geometry.
19042
19120
  *
19043
19121
  * @param {BufferAttribute} indirect - The attribute holding indirect draw calls.
19122
+ * @param {number|Array<number>} [indirectOffset=0] - The offset, in bytes, into the indirect drawing buffer where the value data begins. If an array is provided, multiple indirect draw calls will be made for each offset.
19044
19123
  * @return {BufferGeometry} A reference to this instance.
19045
19124
  */
19046
- setIndirect( indirect ) {
19125
+ setIndirect( indirect, indirectOffset = 0 ) {
19047
19126
 
19048
19127
  this.indirect = indirect;
19128
+ this.indirectOffset = indirectOffset;
19049
19129
 
19050
19130
  return this;
19051
19131
 
@@ -20330,7 +20410,7 @@ class Mesh extends Object3D {
20330
20410
  * morph targets name, the value its attribute index. This member is `undefined`
20331
20411
  * by default and only set when morph targets are detected in the geometry.
20332
20412
  *
20333
- * @type {Object<String,number>|undefined}
20413
+ * @type {Object<string,number>|undefined}
20334
20414
  * @default undefined
20335
20415
  */
20336
20416
  this.morphTargetDictionary = undefined;
@@ -21244,9 +21324,22 @@ class ShaderMaterial extends Material {
21244
21324
  this.wireframeLinewidth = 1;
21245
21325
 
21246
21326
  /**
21247
- * Define whether the material color is affected by global fog settings; `true`
21327
+ * Defines whether the material color is affected by global fog settings; `true`
21248
21328
  * to pass fog uniforms to the shader.
21249
21329
  *
21330
+ * Setting this property to `true` requires the definition of fog uniforms. It is
21331
+ * recommended to use `UniformsUtils.merge()` to combine the custom shader uniforms
21332
+ * with predefined fog uniforms.
21333
+ *
21334
+ * ```js
21335
+ * const material = new ShaderMaterial( {
21336
+ * uniforms: UniformsUtils.merge( [ UniformsLib[ 'fog' ], shaderUniforms ] );
21337
+ * vertexShader: vertexShader,
21338
+ * fragmentShader: fragmentShader,
21339
+ * fog: true
21340
+ * } );
21341
+ * ```
21342
+ *
21250
21343
  * @type {boolean}
21251
21344
  * @default false
21252
21345
  */
@@ -21365,6 +21458,12 @@ class ShaderMaterial extends Material {
21365
21458
 
21366
21459
  this.glslVersion = source.glslVersion;
21367
21460
 
21461
+ this.defaultAttributeValues = Object.assign( {}, source.defaultAttributeValues );
21462
+
21463
+ this.index0AttributeName = source.index0AttributeName;
21464
+
21465
+ this.uniformsNeedUpdate = source.uniformsNeedUpdate;
21466
+
21368
21467
  return this;
21369
21468
 
21370
21469
  }
@@ -25318,6 +25417,15 @@ class Skeleton {
25318
25417
  */
25319
25418
  this.boneMatrices = null;
25320
25419
 
25420
+ /**
25421
+ * An array buffer holding the bone data of the previous frame.
25422
+ * Required for computing velocity. Maintained in {@link SkinningNode}.
25423
+ *
25424
+ * @type {?Float32Array}
25425
+ * @default null
25426
+ */
25427
+ this.previousBoneMatrices = null;
25428
+
25321
25429
  /**
25322
25430
  * A texture holding the bone data for use
25323
25431
  * in the vertex shader.
@@ -26719,7 +26827,7 @@ class Frustum {
26719
26827
 
26720
26828
  }
26721
26829
 
26722
- const _projScreenMatrix$2 = /*@__PURE__*/ new Matrix4();
26830
+ const _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();
26723
26831
  const _frustum$1 = /*@__PURE__*/ new Frustum();
26724
26832
 
26725
26833
  /**
@@ -26764,13 +26872,13 @@ class FrustumArray {
26764
26872
 
26765
26873
  const camera = cameraArray.cameras[ i ];
26766
26874
 
26767
- _projScreenMatrix$2.multiplyMatrices(
26875
+ _projScreenMatrix$1.multiplyMatrices(
26768
26876
  camera.projectionMatrix,
26769
26877
  camera.matrixWorldInverse
26770
26878
  );
26771
26879
 
26772
26880
  _frustum$1.setFromProjectionMatrix(
26773
- _projScreenMatrix$2,
26881
+ _projScreenMatrix$1,
26774
26882
  camera.coordinateSystem,
26775
26883
  camera.reversedDepth
26776
26884
  );
@@ -26807,13 +26915,13 @@ class FrustumArray {
26807
26915
 
26808
26916
  const camera = cameraArray.cameras[ i ];
26809
26917
 
26810
- _projScreenMatrix$2.multiplyMatrices(
26918
+ _projScreenMatrix$1.multiplyMatrices(
26811
26919
  camera.projectionMatrix,
26812
26920
  camera.matrixWorldInverse
26813
26921
  );
26814
26922
 
26815
26923
  _frustum$1.setFromProjectionMatrix(
26816
- _projScreenMatrix$2,
26924
+ _projScreenMatrix$1,
26817
26925
  camera.coordinateSystem,
26818
26926
  camera.reversedDepth
26819
26927
  );
@@ -26850,13 +26958,13 @@ class FrustumArray {
26850
26958
 
26851
26959
  const camera = cameraArray.cameras[ i ];
26852
26960
 
26853
- _projScreenMatrix$2.multiplyMatrices(
26961
+ _projScreenMatrix$1.multiplyMatrices(
26854
26962
  camera.projectionMatrix,
26855
26963
  camera.matrixWorldInverse
26856
26964
  );
26857
26965
 
26858
26966
  _frustum$1.setFromProjectionMatrix(
26859
- _projScreenMatrix$2,
26967
+ _projScreenMatrix$1,
26860
26968
  camera.coordinateSystem,
26861
26969
  camera.reversedDepth
26862
26970
  );
@@ -26893,13 +27001,13 @@ class FrustumArray {
26893
27001
 
26894
27002
  const camera = cameraArray.cameras[ i ];
26895
27003
 
26896
- _projScreenMatrix$2.multiplyMatrices(
27004
+ _projScreenMatrix$1.multiplyMatrices(
26897
27005
  camera.projectionMatrix,
26898
27006
  camera.matrixWorldInverse
26899
27007
  );
26900
27008
 
26901
27009
  _frustum$1.setFromProjectionMatrix(
26902
- _projScreenMatrix$2,
27010
+ _projScreenMatrix$1,
26903
27011
  camera.coordinateSystem,
26904
27012
  camera.reversedDepth
26905
27013
  );
@@ -26936,13 +27044,13 @@ class FrustumArray {
26936
27044
 
26937
27045
  const camera = cameraArray.cameras[ i ];
26938
27046
 
26939
- _projScreenMatrix$2.multiplyMatrices(
27047
+ _projScreenMatrix$1.multiplyMatrices(
26940
27048
  camera.projectionMatrix,
26941
27049
  camera.matrixWorldInverse
26942
27050
  );
26943
27051
 
26944
27052
  _frustum$1.setFromProjectionMatrix(
26945
- _projScreenMatrix$2,
27053
+ _projScreenMatrix$1,
26946
27054
  camera.coordinateSystem,
26947
27055
  camera.reversedDepth
26948
27056
  );
@@ -27831,10 +27939,9 @@ class BatchedMesh extends Mesh {
27831
27939
  }
27832
27940
 
27833
27941
  /**
27834
- * Repacks the sub geometries in [name] to remove any unused space remaining from
27942
+ * Repacks the sub geometries in BatchedMesh to remove any unused space remaining from
27835
27943
  * previously deleted geometry, freeing up space to add new geometry.
27836
27944
  *
27837
- * @param {number} instanceId - The ID of the instance to remove from the batch.
27838
27945
  * @return {BatchedMesh} A reference to this batched mesh.
27839
27946
  */
27840
27947
  optimize() {
@@ -27886,6 +27993,7 @@ class BatchedMesh extends Mesh {
27886
27993
 
27887
27994
  index.array.copyWithin( nextIndexStart, indexStart, indexStart + reservedIndexCount );
27888
27995
  index.addUpdateRange( nextIndexStart, reservedIndexCount );
27996
+ index.needsUpdate = true;
27889
27997
 
27890
27998
  geometryInfo.indexStart = nextIndexStart;
27891
27999
 
@@ -27906,6 +28014,7 @@ class BatchedMesh extends Mesh {
27906
28014
  const { array, itemSize } = attribute;
27907
28015
  array.copyWithin( nextVertexStart * itemSize, vertexStart * itemSize, ( vertexStart + reservedVertexCount ) * itemSize );
27908
28016
  attribute.addUpdateRange( nextVertexStart * itemSize, reservedVertexCount * itemSize );
28017
+ attribute.needsUpdate = true;
27909
28018
 
27910
28019
  }
27911
28020
 
@@ -27922,6 +28031,8 @@ class BatchedMesh extends Mesh {
27922
28031
 
27923
28032
  }
27924
28033
 
28034
+ this._visibilityChanged = true;
28035
+
27925
28036
  return this;
27926
28037
 
27927
28038
  }
@@ -28802,7 +28913,7 @@ class Line extends Object3D {
28802
28913
  * morph targets name, the value its attribute index. This member is `undefined`
28803
28914
  * by default and only set when morph targets are detected in the geometry.
28804
28915
  *
28805
- * @type {Object<String,number>|undefined}
28916
+ * @type {Object<string,number>|undefined}
28806
28917
  * @default undefined
28807
28918
  */
28808
28919
  this.morphTargetDictionary = undefined;
@@ -29337,7 +29448,7 @@ class Points extends Object3D {
29337
29448
  * morph targets name, the value its attribute index. This member is `undefined`
29338
29449
  * by default and only set when morph targets are detected in the geometry.
29339
29450
  *
29340
- * @type {Object<String,number>|undefined}
29451
+ * @type {Object<string,number>|undefined}
29341
29452
  * @default undefined
29342
29453
  */
29343
29454
  this.morphTargetDictionary = undefined;
@@ -30129,6 +30240,78 @@ class DepthTexture extends Texture {
30129
30240
 
30130
30241
  }
30131
30242
 
30243
+ /**
30244
+ * This class can be used to automatically save the depth information of a
30245
+ * cube rendering into a cube texture with depth format. Used for PointLight shadows.
30246
+ *
30247
+ * @augments DepthTexture
30248
+ */
30249
+ class CubeDepthTexture extends DepthTexture {
30250
+
30251
+ /**
30252
+ * Constructs a new cube depth texture.
30253
+ *
30254
+ * @param {number} size - The size (width and height) of each cube face.
30255
+ * @param {number} [type=UnsignedIntType] - The texture type.
30256
+ * @param {number} [mapping=CubeReflectionMapping] - The texture mapping.
30257
+ * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.
30258
+ * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.
30259
+ * @param {number} [magFilter=NearestFilter] - The mag filter value.
30260
+ * @param {number} [minFilter=NearestFilter] - The min filter value.
30261
+ * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.
30262
+ * @param {number} [format=DepthFormat] - The texture format.
30263
+ */
30264
+ constructor( size, type = UnsignedIntType, mapping = CubeReflectionMapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, format = DepthFormat ) {
30265
+
30266
+ // Create 6 identical image descriptors for the cube faces
30267
+ const image = { width: size, height: size, depth: 1 };
30268
+ const images = [ image, image, image, image, image, image ];
30269
+
30270
+ // Call DepthTexture constructor with width, height
30271
+ super( size, size, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format );
30272
+
30273
+ // Replace the single image with the array of 6 images
30274
+ this.image = images;
30275
+
30276
+ /**
30277
+ * This flag can be used for type testing.
30278
+ *
30279
+ * @type {boolean}
30280
+ * @readonly
30281
+ * @default true
30282
+ */
30283
+ this.isCubeDepthTexture = true;
30284
+
30285
+ /**
30286
+ * Set to true for cube texture handling in WebGLTextures.
30287
+ *
30288
+ * @type {boolean}
30289
+ * @readonly
30290
+ * @default true
30291
+ */
30292
+ this.isCubeTexture = true;
30293
+
30294
+ }
30295
+
30296
+ /**
30297
+ * Alias for {@link CubeDepthTexture#image}.
30298
+ *
30299
+ * @type {Array<Image>}
30300
+ */
30301
+ get images() {
30302
+
30303
+ return this.image;
30304
+
30305
+ }
30306
+
30307
+ set images( value ) {
30308
+
30309
+ this.image = value;
30310
+
30311
+ }
30312
+
30313
+ }
30314
+
30132
30315
  /**
30133
30316
  * Represents a texture created externally with the same renderer context.
30134
30317
  *
@@ -31259,7 +31442,7 @@ class PolyhedronGeometry extends BufferGeometry {
31259
31442
  */
31260
31443
  static fromJSON( data ) {
31261
31444
 
31262
- return new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.details );
31445
+ return new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.detail );
31263
31446
 
31264
31447
  }
31265
31448
 
@@ -35318,9 +35501,9 @@ class ExtrudeGeometry extends BufferGeometry {
35318
35501
 
35319
35502
  // SETUP TNB variables
35320
35503
 
35321
- // TODO1 - have a .isClosed in spline?
35504
+ const isClosed = extrudePath.isCatmullRomCurve3 ? extrudePath.closed : false;
35322
35505
 
35323
- splineTube = extrudePath.computeFrenetFrames( steps, false );
35506
+ splineTube = extrudePath.computeFrenetFrames( steps, isClosed );
35324
35507
 
35325
35508
  // log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);
35326
35509
 
@@ -40952,18 +41135,6 @@ function convertArray( array, type ) {
40952
41135
 
40953
41136
  }
40954
41137
 
40955
- /**
40956
- * Returns `true` if the given object is a typed array.
40957
- *
40958
- * @param {any} object - The object to check.
40959
- * @return {boolean} Whether the given object is a typed array.
40960
- */
40961
- function isTypedArray( object ) {
40962
-
40963
- return ArrayBuffer.isView( object ) && ! ( object instanceof DataView );
40964
-
40965
- }
40966
-
40967
41138
  /**
40968
41139
  * Returns an array by which times and values can be sorted.
40969
41140
  *
@@ -42531,7 +42702,7 @@ class KeyframeTrack {
42531
42702
  /**
42532
42703
  * The value type name.
42533
42704
  *
42534
- * @type {String}
42705
+ * @type {string}
42535
42706
  * @default ''
42536
42707
  */
42537
42708
  KeyframeTrack.prototype.ValueTypeName = '';
@@ -42588,7 +42759,7 @@ class BooleanKeyframeTrack extends KeyframeTrack {
42588
42759
  /**
42589
42760
  * The value type name.
42590
42761
  *
42591
- * @type {String}
42762
+ * @type {string}
42592
42763
  * @default 'bool'
42593
42764
  */
42594
42765
  BooleanKeyframeTrack.prototype.ValueTypeName = 'bool';
@@ -42637,7 +42808,7 @@ class ColorKeyframeTrack extends KeyframeTrack {
42637
42808
  /**
42638
42809
  * The value type name.
42639
42810
  *
42640
- * @type {String}
42811
+ * @type {string}
42641
42812
  * @default 'color'
42642
42813
  */
42643
42814
  ColorKeyframeTrack.prototype.ValueTypeName = 'color';
@@ -42668,7 +42839,7 @@ class NumberKeyframeTrack extends KeyframeTrack {
42668
42839
  /**
42669
42840
  * The value type name.
42670
42841
  *
42671
- * @type {String}
42842
+ * @type {string}
42672
42843
  * @default 'number'
42673
42844
  */
42674
42845
  NumberKeyframeTrack.prototype.ValueTypeName = 'number';
@@ -42755,7 +42926,7 @@ class QuaternionKeyframeTrack extends KeyframeTrack {
42755
42926
  /**
42756
42927
  * The value type name.
42757
42928
  *
42758
- * @type {String}
42929
+ * @type {string}
42759
42930
  * @default 'quaternion'
42760
42931
  */
42761
42932
  QuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';
@@ -42791,7 +42962,7 @@ class StringKeyframeTrack extends KeyframeTrack {
42791
42962
  /**
42792
42963
  * The value type name.
42793
42964
  *
42794
- * @type {String}
42965
+ * @type {string}
42795
42966
  * @default 'string'
42796
42967
  */
42797
42968
  StringKeyframeTrack.prototype.ValueTypeName = 'string';
@@ -42840,7 +43011,7 @@ class VectorKeyframeTrack extends KeyframeTrack {
42840
43011
  /**
42841
43012
  * The value type name.
42842
43013
  *
42843
- * @type {String}
43014
+ * @type {string}
42844
43015
  * @default 'vector'
42845
43016
  */
42846
43017
  VectorKeyframeTrack.prototype.ValueTypeName = 'vector';
@@ -45211,7 +45382,7 @@ class Light extends Object3D {
45211
45382
  */
45212
45383
  dispose() {
45213
45384
 
45214
- // Empty here in base class; some subclasses override.
45385
+ this.dispatchEvent( { type: 'dispose' } );
45215
45386
 
45216
45387
  }
45217
45388
 
@@ -45233,16 +45404,6 @@ class Light extends Object3D {
45233
45404
  data.object.color = this.color.getHex();
45234
45405
  data.object.intensity = this.intensity;
45235
45406
 
45236
- if ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();
45237
-
45238
- if ( this.distance !== undefined ) data.object.distance = this.distance;
45239
- if ( this.angle !== undefined ) data.object.angle = this.angle;
45240
- if ( this.decay !== undefined ) data.object.decay = this.decay;
45241
- if ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;
45242
-
45243
- if ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();
45244
- if ( this.target !== undefined ) data.object.target = this.target.uuid;
45245
-
45246
45407
  return data;
45247
45408
 
45248
45409
  }
@@ -45308,11 +45469,21 @@ class HemisphereLight extends Light {
45308
45469
 
45309
45470
  }
45310
45471
 
45472
+ toJSON( meta ) {
45473
+
45474
+ const data = super.toJSON( meta );
45475
+
45476
+ data.object.groundColor = this.groundColor.getHex();
45477
+
45478
+ return data;
45479
+
45480
+ }
45481
+
45311
45482
  }
45312
45483
 
45313
- const _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();
45314
- const _lightPositionWorld$1 = /*@__PURE__*/ new Vector3();
45315
- const _lookTarget$1 = /*@__PURE__*/ new Vector3();
45484
+ const _projScreenMatrix = /*@__PURE__*/ new Matrix4();
45485
+ const _lightPositionWorld = /*@__PURE__*/ new Vector3();
45486
+ const _lookTarget = /*@__PURE__*/ new Vector3();
45316
45487
 
45317
45488
  /**
45318
45489
  * Abstract base class for light shadow classes. These classes
@@ -45374,9 +45545,6 @@ class LightShadow {
45374
45545
  * map size will allow for a higher value to be used here before these effects
45375
45546
  * become visible.
45376
45547
  *
45377
- * The property has no effect when the shadow map type is `PCFSoftShadowMap` and
45378
- * and it is recommended to increase softness by decreasing the shadow map size instead.
45379
- *
45380
45548
  * The property has no effect when the shadow map type is `BasicShadowMap`.
45381
45549
  *
45382
45550
  * @type {number}
@@ -45501,15 +45669,15 @@ class LightShadow {
45501
45669
  const shadowCamera = this.camera;
45502
45670
  const shadowMatrix = this.matrix;
45503
45671
 
45504
- _lightPositionWorld$1.setFromMatrixPosition( light.matrixWorld );
45505
- shadowCamera.position.copy( _lightPositionWorld$1 );
45672
+ _lightPositionWorld.setFromMatrixPosition( light.matrixWorld );
45673
+ shadowCamera.position.copy( _lightPositionWorld );
45506
45674
 
45507
- _lookTarget$1.setFromMatrixPosition( light.target.matrixWorld );
45508
- shadowCamera.lookAt( _lookTarget$1 );
45675
+ _lookTarget.setFromMatrixPosition( light.target.matrixWorld );
45676
+ shadowCamera.lookAt( _lookTarget );
45509
45677
  shadowCamera.updateMatrixWorld();
45510
45678
 
45511
- _projScreenMatrix$1.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );
45512
- this._frustum.setFromProjectionMatrix( _projScreenMatrix$1, shadowCamera.coordinateSystem, shadowCamera.reversedDepth );
45679
+ _projScreenMatrix.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );
45680
+ this._frustum.setFromProjectionMatrix( _projScreenMatrix, shadowCamera.coordinateSystem, shadowCamera.reversedDepth );
45513
45681
 
45514
45682
  if ( shadowCamera.reversedDepth ) {
45515
45683
 
@@ -45531,7 +45699,7 @@ class LightShadow {
45531
45699
 
45532
45700
  }
45533
45701
 
45534
- shadowMatrix.multiply( _projScreenMatrix$1 );
45702
+ shadowMatrix.multiply( _projScreenMatrix );
45535
45703
 
45536
45704
  }
45537
45705
 
@@ -45860,6 +46028,8 @@ class SpotLight extends Light {
45860
46028
 
45861
46029
  dispose() {
45862
46030
 
46031
+ super.dispose();
46032
+
45863
46033
  this.shadow.dispose();
45864
46034
 
45865
46035
  }
@@ -45874,18 +46044,33 @@ class SpotLight extends Light {
45874
46044
  this.decay = source.decay;
45875
46045
 
45876
46046
  this.target = source.target.clone();
45877
-
46047
+ this.map = source.map;
45878
46048
  this.shadow = source.shadow.clone();
45879
46049
 
45880
46050
  return this;
45881
46051
 
45882
46052
  }
45883
46053
 
45884
- }
46054
+ toJSON( meta ) {
45885
46055
 
45886
- const _projScreenMatrix = /*@__PURE__*/ new Matrix4();
45887
- const _lightPositionWorld = /*@__PURE__*/ new Vector3();
45888
- const _lookTarget = /*@__PURE__*/ new Vector3();
46056
+ const data = super.toJSON( meta );
46057
+
46058
+ data.object.distance = this.distance;
46059
+ data.object.angle = this.angle;
46060
+ data.object.decay = this.decay;
46061
+ data.object.penumbra = this.penumbra;
46062
+
46063
+ data.object.target = this.target.uuid;
46064
+
46065
+ if ( this.map && this.map.isTexture ) data.object.map = this.map.toJSON( meta ).uuid;
46066
+
46067
+ data.object.shadow = this.shadow.toJSON();
46068
+
46069
+ return data;
46070
+
46071
+ }
46072
+
46073
+ }
45889
46074
 
45890
46075
  /**
45891
46076
  * Represents the shadow configuration of point lights.
@@ -45910,84 +46095,6 @@ class PointLightShadow extends LightShadow {
45910
46095
  */
45911
46096
  this.isPointLightShadow = true;
45912
46097
 
45913
- this._frameExtents = new Vector2( 4, 2 );
45914
-
45915
- this._viewportCount = 6;
45916
-
45917
- this._viewports = [
45918
- // These viewports map a cube-map onto a 2D texture with the
45919
- // following orientation:
45920
- //
45921
- // xzXZ
45922
- // y Y
45923
- //
45924
- // X - Positive x direction
45925
- // x - Negative x direction
45926
- // Y - Positive y direction
45927
- // y - Negative y direction
45928
- // Z - Positive z direction
45929
- // z - Negative z direction
45930
-
45931
- // positive X
45932
- new Vector4( 2, 1, 1, 1 ),
45933
- // negative X
45934
- new Vector4( 0, 1, 1, 1 ),
45935
- // positive Z
45936
- new Vector4( 3, 1, 1, 1 ),
45937
- // negative Z
45938
- new Vector4( 1, 1, 1, 1 ),
45939
- // positive Y
45940
- new Vector4( 3, 0, 1, 1 ),
45941
- // negative Y
45942
- new Vector4( 1, 0, 1, 1 )
45943
- ];
45944
-
45945
- this._cubeDirections = [
45946
- new Vector3( 1, 0, 0 ), new Vector3( -1, 0, 0 ), new Vector3( 0, 0, 1 ),
45947
- new Vector3( 0, 0, -1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, -1, 0 )
45948
- ];
45949
-
45950
- this._cubeUps = [
45951
- new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),
45952
- new Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ), new Vector3( 0, 0, -1 )
45953
- ];
45954
-
45955
- }
45956
-
45957
- /**
45958
- * Update the matrices for the camera and shadow, used internally by the renderer.
45959
- *
45960
- * @param {Light} light - The light for which the shadow is being rendered.
45961
- * @param {number} [viewportIndex=0] - The viewport index.
45962
- */
45963
- updateMatrices( light, viewportIndex = 0 ) {
45964
-
45965
- const camera = this.camera;
45966
- const shadowMatrix = this.matrix;
45967
-
45968
- const far = light.distance || camera.far;
45969
-
45970
- if ( far !== camera.far ) {
45971
-
45972
- camera.far = far;
45973
- camera.updateProjectionMatrix();
45974
-
45975
- }
45976
-
45977
- _lightPositionWorld.setFromMatrixPosition( light.matrixWorld );
45978
- camera.position.copy( _lightPositionWorld );
45979
-
45980
- _lookTarget.copy( camera.position );
45981
- _lookTarget.add( this._cubeDirections[ viewportIndex ] );
45982
- camera.up.copy( this._cubeUps[ viewportIndex ] );
45983
- camera.lookAt( _lookTarget );
45984
- camera.updateMatrixWorld();
45985
-
45986
- shadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );
45987
-
45988
- _projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
45989
- this._frustum.setFromProjectionMatrix( _projScreenMatrix, camera.coordinateSystem, camera.reversedDepth );
45990
-
45991
46098
  }
45992
46099
 
45993
46100
  }
@@ -46085,6 +46192,8 @@ class PointLight extends Light {
46085
46192
 
46086
46193
  dispose() {
46087
46194
 
46195
+ super.dispose();
46196
+
46088
46197
  this.shadow.dispose();
46089
46198
 
46090
46199
  }
@@ -46102,6 +46211,19 @@ class PointLight extends Light {
46102
46211
 
46103
46212
  }
46104
46213
 
46214
+ toJSON( meta ) {
46215
+
46216
+ const data = super.toJSON( meta );
46217
+
46218
+ data.object.distance = this.distance;
46219
+ data.object.decay = this.decay;
46220
+
46221
+ data.object.shadow = this.shadow.toJSON();
46222
+
46223
+ return data;
46224
+
46225
+ }
46226
+
46105
46227
  }
46106
46228
 
46107
46229
  /**
@@ -46451,6 +46573,8 @@ class DirectionalLight extends Light {
46451
46573
 
46452
46574
  dispose() {
46453
46575
 
46576
+ super.dispose();
46577
+
46454
46578
  this.shadow.dispose();
46455
46579
 
46456
46580
  }
@@ -46466,6 +46590,17 @@ class DirectionalLight extends Light {
46466
46590
 
46467
46591
  }
46468
46592
 
46593
+ toJSON( meta ) {
46594
+
46595
+ const data = super.toJSON( meta );
46596
+
46597
+ data.object.shadow = this.shadow.toJSON();
46598
+ data.object.target = this.target.uuid;
46599
+
46600
+ return data;
46601
+
46602
+ }
46603
+
46469
46604
  }
46470
46605
 
46471
46606
  /**
@@ -47016,21 +47151,6 @@ class LightProbe extends Light {
47016
47151
 
47017
47152
  }
47018
47153
 
47019
- /**
47020
- * Deserializes the light prove from the given JSON.
47021
- *
47022
- * @param {Object} json - The JSON holding the serialized light probe.
47023
- * @return {LightProbe} A reference to this light probe.
47024
- */
47025
- fromJSON( json ) {
47026
-
47027
- this.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();
47028
- this.sh.fromArray( json.sh );
47029
-
47030
- return this;
47031
-
47032
- }
47033
-
47034
47154
  toJSON( meta ) {
47035
47155
 
47036
47156
  const data = super.toJSON( meta );
@@ -47044,7 +47164,7 @@ class LightProbe extends Light {
47044
47164
  }
47045
47165
 
47046
47166
  /**
47047
- * Class for loading geometries. The files are internally
47167
+ * Class for loading materials. The files are internally
47048
47168
  * loaded via {@link FileLoader}.
47049
47169
  *
47050
47170
  * ```js
@@ -47218,6 +47338,7 @@ class MaterialLoader extends Loader {
47218
47338
  if ( json.alphaToCoverage !== undefined ) material.alphaToCoverage = json.alphaToCoverage;
47219
47339
  if ( json.premultipliedAlpha !== undefined ) material.premultipliedAlpha = json.premultipliedAlpha;
47220
47340
  if ( json.forceSinglePass !== undefined ) material.forceSinglePass = json.forceSinglePass;
47341
+ if ( json.allowOverride !== undefined ) material.allowOverride = json.allowOverride;
47221
47342
 
47222
47343
  if ( json.visible !== undefined ) material.visible = json.visible;
47223
47344
 
@@ -48652,7 +48773,8 @@ class ObjectLoader extends Loader {
48652
48773
 
48653
48774
  case 'LightProbe':
48654
48775
 
48655
- object = new LightProbe().fromJSON( data );
48776
+ const sh = new SphericalHarmonics3().fromArray( data.sh );
48777
+ object = new LightProbe( sh, data.intensity );
48656
48778
 
48657
48779
  break;
48658
48780
 
@@ -54878,7 +55000,7 @@ class Raycaster {
54878
55000
  this.near = near;
54879
55001
 
54880
55002
  /**
54881
- * All results returned are further away than near. Near can't be negative.
55003
+ * All results returned are closer than far. Far can't be lower than near.
54882
55004
  *
54883
55005
  * @type {number}
54884
55006
  * @default Infinity
@@ -55007,7 +55129,7 @@ class Raycaster {
55007
55129
  * @property {Object3D} object - The 3D object that has been intersected.
55008
55130
  * @property {Vector2} uv - U,V coordinates at point of intersection.
55009
55131
  * @property {Vector2} uv1 - Second set of U,V coordinates at point of intersection.
55010
- * @property {Vector3} uv1 - Interpolated normal vector at point of intersection.
55132
+ * @property {Vector3} normal - Interpolated normal vector at point of intersection.
55011
55133
  * @property {number} instanceId - The index number of the instance where the ray
55012
55134
  * intersects the {@link InstancedMesh}.
55013
55135
  */
@@ -56742,7 +56864,7 @@ class PointLightHelper extends Mesh {
56742
56864
  /**
56743
56865
  * The light being visualized.
56744
56866
  *
56745
- * @type {HemisphereLight}
56867
+ * @type {PointLight}
56746
56868
  */
56747
56869
  this.light = light;
56748
56870
 
@@ -58782,8 +58904,12 @@ function getByteLength( width, height, format, type ) {
58782
58904
  // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc/
58783
58905
  case RGB_ETC1_Format:
58784
58906
  case RGB_ETC2_Format:
58907
+ case R11_EAC_Format:
58908
+ case SIGNED_R11_EAC_Format:
58785
58909
  return Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;
58786
58910
  case RGBA_ETC2_EAC_Format:
58911
+ case RG11_EAC_Format:
58912
+ case SIGNED_RG11_EAC_Format:
58787
58913
  return Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;
58788
58914
 
58789
58915
  // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc/
@@ -58954,4 +59080,4 @@ if ( typeof window !== 'undefined' ) {
58954
59080
 
58955
59081
  }
58956
59082
 
58957
- export { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, CylindricalMapping, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExternalTexture, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, FrustumArray, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InterpolationSamplingMode, InterpolationSamplingType, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RenderTarget3D, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, Timer, TimestampQuery, TorusGeometry, TorusKnotGeometry, TriPlanarMapping, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt101111Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGPUCoordinateSystem, WebXRController, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, error, getByteLength, getConsoleFunction, getUnlitUniformColorSpace, log, mergeUniforms, probeAsync, setConsoleFunction, warn, warnOnce };
59083
+ export { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeDepthTexture, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, CylindricalMapping, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExternalTexture, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, FrustumArray, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InterpolationSamplingMode, InterpolationSamplingType, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoNormalPacking, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NormalGAPacking, NormalRGPacking, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, R11_EAC_Format, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RG11_EAC_Format, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RenderTarget3D, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_R11_EAC_Format, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SIGNED_RG11_EAC_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, Timer, TimestampQuery, TorusGeometry, TorusKnotGeometry, TriPlanarMapping, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt101111Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGPUCoordinateSystem, WebXRController, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, error, getByteLength, getConsoleFunction, getUnlitUniformColorSpace, isTypedArray, log, mergeUniforms, probeAsync, setConsoleFunction, warn, warnOnce };