super-three 0.171.0 → 0.173.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 (455) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/build/three.cjs +594 -427
  4. package/build/three.core.js +515 -81
  5. package/build/three.core.min.js +2 -2
  6. package/build/three.module.js +79 -350
  7. package/build/three.module.min.js +2 -2
  8. package/build/three.tsl.js +20 -7
  9. package/build/three.tsl.min.js +2 -2
  10. package/build/three.webgpu.js +29362 -3427
  11. package/build/three.webgpu.min.js +2 -2
  12. package/build/three.webgpu.nodes.js +29361 -3427
  13. package/build/three.webgpu.nodes.min.js +2 -2
  14. package/examples/jsm/Addons.js +0 -5
  15. package/examples/jsm/animation/CCDIKSolver.js +9 -7
  16. package/examples/jsm/capabilities/WebGPU.js +1 -1
  17. package/examples/jsm/controls/ArcballControls.js +48 -37
  18. package/examples/jsm/controls/OrbitControls.js +5 -4
  19. package/examples/jsm/csm/CSMShadowNode.js +16 -11
  20. package/examples/jsm/curves/NURBSCurve.js +1 -1
  21. package/examples/jsm/curves/NURBSUtils.js +3 -0
  22. package/examples/jsm/effects/OutlineEffect.js +1 -1
  23. package/examples/jsm/exporters/GLTFExporter.js +34 -29
  24. package/examples/jsm/exporters/KTX2Exporter.js +1 -1
  25. package/examples/jsm/exporters/PLYExporter.js +2 -2
  26. package/examples/jsm/geometries/TextGeometry.js +1 -12
  27. package/examples/jsm/helpers/TextureHelperGPU.js +15 -5
  28. package/examples/jsm/helpers/VertexNormalsHelper.js +2 -0
  29. package/examples/jsm/interactive/InteractiveGroup.js +108 -51
  30. package/examples/jsm/libs/demuxer_mp4.js +109 -0
  31. package/examples/jsm/lights/LightProbeGenerator.js +3 -3
  32. package/examples/jsm/lines/webgpu/LineSegments2.js +15 -6
  33. package/examples/jsm/loaders/3MFLoader.js +6 -3
  34. package/examples/jsm/loaders/BVHLoader.js +1 -1
  35. package/examples/jsm/loaders/ColladaLoader.js +5 -5
  36. package/examples/jsm/loaders/DDSLoader.js +42 -0
  37. package/examples/jsm/loaders/GCodeLoader.js +4 -2
  38. package/examples/jsm/loaders/GLTFLoader.js +22 -4
  39. package/examples/jsm/loaders/KTX2Loader.js +6 -1
  40. package/examples/jsm/loaders/KTXLoader.js +4 -4
  41. package/examples/jsm/loaders/LDrawLoader.js +1 -1
  42. package/examples/jsm/loaders/LottieLoader.js +1 -1
  43. package/examples/jsm/loaders/MTLLoader.js +1 -0
  44. package/examples/jsm/loaders/NRRDLoader.js +1 -1
  45. package/examples/jsm/loaders/PLYLoader.js +7 -7
  46. package/examples/jsm/loaders/PVRLoader.js +1 -1
  47. package/examples/jsm/loaders/SVGLoader.js +2 -2
  48. package/examples/jsm/loaders/TDSLoader.js +1 -2
  49. package/examples/jsm/loaders/VRMLLoader.js +7 -7
  50. package/examples/jsm/loaders/lwo/IFFParser.js +4 -4
  51. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -1
  52. package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
  53. package/examples/jsm/math/ConvexHull.js +1 -1
  54. package/examples/jsm/math/OBB.js +17 -0
  55. package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
  56. package/examples/jsm/misc/ProgressiveLightMap.js +4 -3
  57. package/examples/jsm/misc/ProgressiveLightMapGPU.js +14 -13
  58. package/examples/jsm/misc/Volume.js +27 -17
  59. package/examples/jsm/misc/VolumeSlice.js +7 -5
  60. package/examples/jsm/modifiers/CurveModifier.js +10 -8
  61. package/examples/jsm/modifiers/CurveModifierGPU.js +9 -7
  62. package/examples/jsm/modifiers/SimplifyModifier.js +2 -2
  63. package/examples/jsm/objects/GroundedSkybox.js +4 -4
  64. package/examples/jsm/objects/Sky.js +2 -2
  65. package/examples/jsm/objects/SkyMesh.js +3 -3
  66. package/examples/jsm/objects/Water2.js +1 -1
  67. package/examples/jsm/objects/Water2Mesh.js +2 -2
  68. package/examples/jsm/objects/WaterMesh.js +29 -24
  69. package/examples/jsm/physics/JoltPhysics.js +7 -7
  70. package/examples/jsm/physics/RapierPhysics.js +4 -4
  71. package/examples/jsm/postprocessing/BloomPass.js +2 -2
  72. package/examples/jsm/postprocessing/EffectComposer.js +1 -2
  73. package/examples/jsm/postprocessing/OutlinePass.js +4 -4
  74. package/examples/jsm/postprocessing/OutputPass.js +2 -0
  75. package/examples/jsm/postprocessing/SAOPass.js +1 -2
  76. package/examples/jsm/postprocessing/SMAAPass.js +1 -3
  77. package/examples/jsm/postprocessing/SSAOPass.js +2 -4
  78. package/examples/jsm/postprocessing/SSRPass.js +2 -4
  79. package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -2
  80. package/examples/jsm/renderers/SVGRenderer.js +6 -4
  81. package/examples/jsm/shaders/BokehShader2.js +1 -1
  82. package/examples/jsm/shaders/GodRaysShader.js +3 -3
  83. package/examples/jsm/shaders/OutputShader.js +5 -1
  84. package/examples/jsm/shaders/SobelOperatorShader.js +1 -1
  85. package/examples/jsm/transpiler/GLSLDecoder.js +2 -2
  86. package/examples/jsm/transpiler/TSLEncoder.js +2 -0
  87. package/examples/jsm/tsl/display/AfterImageNode.js +93 -4
  88. package/examples/jsm/tsl/display/AnaglyphPassNode.js +46 -2
  89. package/examples/jsm/tsl/display/AnamorphicNode.js +118 -5
  90. package/examples/jsm/tsl/display/BleachBypass.js +10 -0
  91. package/examples/jsm/tsl/display/BloomNode.js +233 -26
  92. package/examples/jsm/tsl/display/DenoiseNode.js +141 -25
  93. package/examples/jsm/tsl/display/DepthOfFieldNode.js +80 -1
  94. package/examples/jsm/tsl/display/DotScreenNode.js +50 -5
  95. package/examples/jsm/tsl/display/FXAANode.js +52 -3
  96. package/examples/jsm/tsl/display/FilmNode.js +47 -1
  97. package/examples/jsm/tsl/display/GTAONode.js +210 -14
  98. package/examples/jsm/tsl/display/GaussianBlurNode.js +152 -8
  99. package/examples/jsm/tsl/display/LensflareNode.js +131 -13
  100. package/examples/jsm/tsl/display/Lut3DNode.js +55 -1
  101. package/examples/jsm/tsl/display/MotionBlur.js +12 -2
  102. package/examples/jsm/tsl/display/OutlineNode.js +343 -26
  103. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +36 -2
  104. package/examples/jsm/tsl/display/PixelationPassNode.js +142 -9
  105. package/examples/jsm/tsl/display/RGBShiftNode.js +49 -2
  106. package/examples/jsm/tsl/display/SMAANode.js +187 -46
  107. package/examples/jsm/tsl/display/SSAAPassNode.js +110 -25
  108. package/examples/jsm/tsl/display/SSRNode.js +194 -21
  109. package/examples/jsm/tsl/display/Sepia.js +9 -0
  110. package/examples/jsm/tsl/display/SobelOperatorNode.js +54 -4
  111. package/examples/jsm/tsl/display/StereoCompositePassNode.js +79 -3
  112. package/examples/jsm/tsl/display/StereoPassNode.js +41 -3
  113. package/examples/jsm/tsl/display/TRAAPassNode.js +116 -21
  114. package/examples/jsm/tsl/display/TransitionNode.js +71 -6
  115. package/examples/jsm/tsl/display/hashBlur.js +14 -3
  116. package/examples/jsm/tsl/lighting/TiledLightsNode.js +40 -34
  117. package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
  118. package/examples/jsm/utils/CameraUtils.js +4 -1
  119. package/examples/jsm/utils/GeometryUtils.js +22 -19
  120. package/examples/jsm/utils/SceneUtils.js +2 -2
  121. package/examples/jsm/webxr/XRControllerModelFactory.js +6 -1
  122. package/examples/jsm/webxr/XREstimatedLight.js +1 -1
  123. package/package.json +8 -3
  124. package/src/Three.Core.js +4 -0
  125. package/src/Three.Legacy.js +0 -21
  126. package/src/Three.TSL.js +18 -5
  127. package/src/Three.WebGPU.Nodes.js +2 -2
  128. package/src/Three.WebGPU.js +2 -2
  129. package/src/animation/PropertyBinding.js +2 -2
  130. package/src/cameras/ArrayCamera.js +1 -0
  131. package/src/cameras/PerspectiveCamera.js +18 -2
  132. package/src/constants.js +6 -1
  133. package/src/core/BufferAttribute.js +4 -0
  134. package/src/core/EventDispatcher.js +8 -6
  135. package/src/core/RenderTarget.js +18 -0
  136. package/src/core/RenderTarget3D.js +22 -0
  137. package/src/core/RenderTargetArray.js +22 -0
  138. package/src/extras/Earcut.js +1 -1
  139. package/src/extras/ImageUtils.js +1 -11
  140. package/src/extras/PMREMGenerator.js +20 -0
  141. package/src/extras/TextureUtils.js +6 -0
  142. package/src/helpers/CameraHelper.js +16 -13
  143. package/src/loaders/nodes/NodeLoader.js +59 -0
  144. package/src/loaders/nodes/NodeMaterialLoader.js +45 -0
  145. package/src/loaders/nodes/NodeObjectLoader.js +61 -0
  146. package/src/materials/nodes/Line2NodeMaterial.js +128 -34
  147. package/src/materials/nodes/LineBasicNodeMaterial.js +17 -2
  148. package/src/materials/nodes/LineDashedNodeMaterial.js +78 -5
  149. package/src/materials/nodes/MeshBasicNodeMaterial.js +56 -0
  150. package/src/materials/nodes/MeshLambertNodeMaterial.js +35 -0
  151. package/src/materials/nodes/MeshMatcapNodeMaterial.js +22 -2
  152. package/src/materials/nodes/MeshNormalNodeMaterial.js +21 -2
  153. package/src/materials/nodes/MeshPhongNodeMaterial.js +64 -1
  154. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +269 -0
  155. package/src/materials/nodes/MeshSSSNodeMaterial.js +97 -6
  156. package/src/materials/nodes/MeshStandardNodeMaterial.js +78 -0
  157. package/src/materials/nodes/MeshToonNodeMaterial.js +28 -0
  158. package/src/materials/nodes/NodeMaterial.js +476 -23
  159. package/src/materials/nodes/NodeMaterials.js +0 -1
  160. package/src/materials/nodes/PointsNodeMaterial.js +121 -10
  161. package/src/materials/nodes/ShadowNodeMaterial.js +29 -0
  162. package/src/materials/nodes/SpriteNodeMaterial.js +78 -20
  163. package/src/materials/nodes/VolumeNodeMaterial.js +80 -4
  164. package/src/materials/nodes/manager/NodeMaterialObserver.js +95 -0
  165. package/src/nodes/Nodes.js +5 -6
  166. package/src/nodes/TSL.js +6 -3
  167. package/src/nodes/accessors/AccessorsUtils.js +27 -0
  168. package/src/nodes/accessors/Arrays.js +47 -6
  169. package/src/nodes/accessors/BatchNode.js +42 -6
  170. package/src/nodes/accessors/Bitangent.js +37 -0
  171. package/src/nodes/accessors/BufferAttributeNode.js +178 -5
  172. package/src/nodes/accessors/BufferNode.js +63 -0
  173. package/src/nodes/accessors/BuiltinNode.js +38 -0
  174. package/src/nodes/accessors/Camera.js +113 -3
  175. package/src/nodes/accessors/ClippingNode.js +71 -2
  176. package/src/nodes/accessors/CubeTextureNode.js +64 -0
  177. package/src/nodes/accessors/InstanceNode.js +85 -2
  178. package/src/nodes/accessors/InstancedMeshNode.js +28 -3
  179. package/src/nodes/accessors/Lights.js +50 -1
  180. package/src/nodes/accessors/MaterialNode.js +306 -12
  181. package/src/nodes/accessors/MaterialProperties.js +7 -0
  182. package/src/nodes/accessors/MaterialReferenceNode.js +53 -13
  183. package/src/nodes/accessors/ModelNode.js +100 -5
  184. package/src/nodes/accessors/ModelViewProjectionNode.js +10 -38
  185. package/src/nodes/accessors/MorphNode.js +48 -4
  186. package/src/nodes/accessors/Normal.js +65 -5
  187. package/src/nodes/accessors/Object3DNode.js +101 -1
  188. package/src/nodes/accessors/PointUVNode.js +26 -0
  189. package/src/nodes/accessors/Position.js +56 -7
  190. package/src/nodes/accessors/ReferenceBaseNode.js +186 -0
  191. package/src/nodes/accessors/ReferenceNode.js +201 -2
  192. package/src/nodes/accessors/ReflectVector.js +24 -0
  193. package/src/nodes/accessors/RendererReferenceNode.js +46 -1
  194. package/src/nodes/accessors/SceneNode.js +54 -0
  195. package/src/nodes/accessors/SkinningNode.js +127 -1
  196. package/src/nodes/accessors/StorageBufferNode.js +209 -8
  197. package/src/nodes/accessors/StorageTextureNode.js +118 -0
  198. package/src/nodes/accessors/Tangent.js +38 -2
  199. package/src/nodes/accessors/Texture3DNode.js +91 -7
  200. package/src/nodes/accessors/TextureBicubic.js +12 -2
  201. package/src/nodes/accessors/TextureNode.js +316 -10
  202. package/src/nodes/accessors/TextureSizeNode.js +42 -0
  203. package/src/nodes/accessors/UV.js +10 -1
  204. package/src/nodes/accessors/UniformArrayNode.js +231 -25
  205. package/src/nodes/accessors/UserDataNode.js +46 -0
  206. package/src/nodes/accessors/VelocityNode.js +80 -0
  207. package/src/nodes/accessors/VertexColorNode.js +39 -2
  208. package/src/nodes/code/CodeNode.js +95 -1
  209. package/src/nodes/code/ExpressionNode.js +28 -0
  210. package/src/nodes/code/FunctionCallNode.js +37 -0
  211. package/src/nodes/code/FunctionNode.js +45 -0
  212. package/src/nodes/code/ScriptableNode.js +223 -1
  213. package/src/nodes/code/ScriptableValueNode.js +85 -1
  214. package/src/nodes/core/ArrayNode.js +125 -0
  215. package/src/nodes/core/AssignNode.js +48 -2
  216. package/src/nodes/core/AttributeNode.js +43 -0
  217. package/src/nodes/core/BypassNode.js +47 -2
  218. package/src/nodes/core/CacheNode.js +53 -2
  219. package/src/nodes/core/ConstNode.js +32 -0
  220. package/src/nodes/core/ContextNode.js +65 -0
  221. package/src/nodes/core/IndexNode.js +68 -7
  222. package/src/nodes/core/InputNode.js +48 -0
  223. package/src/nodes/core/LightingModel.js +60 -0
  224. package/src/nodes/core/MRTNode.js +66 -0
  225. package/src/nodes/core/Node.js +350 -12
  226. package/src/nodes/core/NodeAttribute.js +38 -0
  227. package/src/nodes/core/NodeBuilder.js +1166 -26
  228. package/src/nodes/core/NodeCache.js +41 -2
  229. package/src/nodes/core/NodeCode.js +31 -0
  230. package/src/nodes/core/NodeFrame.js +123 -2
  231. package/src/nodes/core/NodeFunction.js +46 -0
  232. package/src/nodes/core/NodeFunctionInput.js +44 -0
  233. package/src/nodes/core/NodeParser.js +11 -0
  234. package/src/nodes/core/NodeUniform.js +52 -0
  235. package/src/nodes/core/NodeUtils.js +152 -1
  236. package/src/nodes/core/NodeVar.js +47 -1
  237. package/src/nodes/core/NodeVarying.js +28 -0
  238. package/src/nodes/core/OutputStructNode.js +51 -10
  239. package/src/nodes/core/ParameterNode.js +28 -0
  240. package/src/nodes/core/PropertyNode.js +232 -0
  241. package/src/nodes/core/StackNode.js +98 -1
  242. package/src/nodes/core/StructNode.js +121 -0
  243. package/src/nodes/core/StructType.js +13 -0
  244. package/src/nodes/core/StructTypeNode.js +105 -6
  245. package/src/nodes/core/TempNode.js +31 -5
  246. package/src/nodes/core/UniformGroupNode.js +82 -7
  247. package/src/nodes/core/UniformNode.js +66 -0
  248. package/src/nodes/core/VarNode.js +146 -7
  249. package/src/nodes/core/VaryingNode.js +100 -3
  250. package/src/nodes/core/constants.js +36 -0
  251. package/src/nodes/display/BlendModes.js +88 -1
  252. package/src/nodes/display/BumpMapNode.js +37 -0
  253. package/src/nodes/display/ColorAdjustment.js +53 -11
  254. package/src/nodes/display/ColorSpaceFunctions.js +16 -0
  255. package/src/nodes/display/ColorSpaceNode.js +82 -0
  256. package/src/nodes/display/FrontFacingNode.js +29 -0
  257. package/src/nodes/display/NormalMapNode.js +43 -0
  258. package/src/nodes/display/PassNode.js +300 -7
  259. package/src/nodes/display/PosterizeNode.js +33 -0
  260. package/src/nodes/display/RenderOutputNode.js +66 -1
  261. package/src/nodes/display/ScreenNode.js +96 -0
  262. package/src/nodes/display/ToneMappingFunctions.js +58 -10
  263. package/src/nodes/display/ToneMappingNode.js +55 -2
  264. package/src/nodes/display/ToonOutlinePassNode.js +73 -0
  265. package/src/nodes/display/ViewportDepthNode.js +122 -8
  266. package/src/nodes/display/ViewportDepthTextureNode.js +23 -0
  267. package/src/nodes/display/ViewportSharedTextureNode.js +23 -0
  268. package/src/nodes/display/ViewportTextureNode.js +57 -0
  269. package/src/nodes/fog/Fog.js +110 -0
  270. package/src/nodes/functions/BasicLightingModel.js +24 -0
  271. package/src/nodes/functions/PhongLightingModel.js +34 -2
  272. package/src/nodes/functions/PhysicalLightingModel.js +167 -8
  273. package/src/nodes/functions/ShadowMaskModel.js +23 -0
  274. package/src/nodes/functions/ToonLightingModel.js +20 -0
  275. package/src/nodes/functions/material/getAlphaHashThreshold.js +1 -3
  276. package/src/nodes/functions/material/getParallaxCorrectNormal.js +16 -1
  277. package/src/nodes/geometry/RangeNode.js +54 -2
  278. package/src/nodes/gpgpu/AtomicFunctionNode.js +174 -2
  279. package/src/nodes/gpgpu/BarrierNode.js +47 -0
  280. package/src/nodes/gpgpu/ComputeBuiltinNode.js +134 -0
  281. package/src/nodes/gpgpu/ComputeNode.js +106 -2
  282. package/src/nodes/gpgpu/WorkgroupInfoNode.js +115 -6
  283. package/src/nodes/lighting/AONode.js +18 -0
  284. package/src/nodes/lighting/AmbientLightNode.js +10 -0
  285. package/src/nodes/lighting/AnalyticLightNode.js +97 -2
  286. package/src/nodes/lighting/BasicEnvironmentNode.js +19 -0
  287. package/src/nodes/lighting/BasicLightMapNode.js +17 -0
  288. package/src/nodes/lighting/DirectionalLightNode.js +10 -0
  289. package/src/nodes/lighting/EnvironmentNode.js +18 -0
  290. package/src/nodes/lighting/HemisphereLightNode.js +31 -0
  291. package/src/nodes/lighting/IESSpotLightNode.js +11 -0
  292. package/src/nodes/lighting/IrradianceNode.js +17 -0
  293. package/src/nodes/lighting/LightProbeNode.js +20 -0
  294. package/src/nodes/lighting/LightUtils.js +12 -0
  295. package/src/nodes/lighting/LightingContextNode.js +48 -0
  296. package/src/nodes/lighting/LightingNode.js +15 -6
  297. package/src/nodes/lighting/LightsNode.js +132 -1
  298. package/src/nodes/lighting/PointLightNode.js +32 -1
  299. package/src/nodes/lighting/PointShadowNode.js +54 -1
  300. package/src/nodes/lighting/RectAreaLightNode.js +44 -6
  301. package/src/nodes/lighting/ShadowBaseNode.js +93 -0
  302. package/src/nodes/lighting/ShadowNode.js +241 -35
  303. package/src/nodes/lighting/SpotLightNode.js +43 -0
  304. package/src/nodes/math/ConditionalNode.js +78 -4
  305. package/src/nodes/math/Hash.js +9 -0
  306. package/src/nodes/math/MathNode.js +627 -11
  307. package/src/nodes/math/MathUtils.js +45 -1
  308. package/src/nodes/math/OperatorNode.js +329 -18
  309. package/src/nodes/math/TriNoise3D.js +18 -7
  310. package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
  311. package/src/nodes/parsers/GLSLNodeParser.js +11 -0
  312. package/src/nodes/pmrem/PMREMNode.js +133 -0
  313. package/src/nodes/pmrem/PMREMUtils.js +2 -2
  314. package/src/nodes/procedural/Checker.js +9 -0
  315. package/src/nodes/shapes/Shapes.js +33 -0
  316. package/src/nodes/tsl/TSLBase.js +3 -2
  317. package/src/nodes/tsl/TSLCore.js +22 -2
  318. package/src/nodes/utils/ArrayElementNode.js +39 -3
  319. package/src/nodes/utils/ConvertNode.js +31 -0
  320. package/src/nodes/utils/CubeMapNode.js +78 -0
  321. package/src/nodes/utils/Discard.js +16 -0
  322. package/src/nodes/utils/EquirectUVNode.js +31 -1
  323. package/src/nodes/utils/FlipNode.js +38 -0
  324. package/src/nodes/utils/FunctionOverloadingNode.js +53 -1
  325. package/src/nodes/utils/JoinNode.js +25 -0
  326. package/src/nodes/utils/LoopNode.js +82 -2
  327. package/src/nodes/utils/MatcapUVNode.js +17 -0
  328. package/src/nodes/utils/MaxMipLevelNode.js +49 -0
  329. package/src/nodes/utils/MemberNode.js +68 -0
  330. package/src/nodes/utils/Oscillators.js +33 -0
  331. package/src/nodes/utils/Packing.js +17 -0
  332. package/src/nodes/utils/PostProcessingUtils.js +28 -23
  333. package/src/nodes/utils/RTTNode.js +123 -2
  334. package/src/nodes/utils/ReflectorNode.js +174 -4
  335. package/src/nodes/utils/RemapNode.js +79 -0
  336. package/src/nodes/utils/RotateNode.js +41 -0
  337. package/src/nodes/utils/SetNode.js +44 -1
  338. package/src/nodes/utils/SplitNode.js +55 -3
  339. package/src/nodes/utils/SpriteSheetUVNode.js +46 -0
  340. package/src/nodes/utils/SpriteUtils.js +17 -0
  341. package/src/nodes/utils/StorageArrayElementNode.js +54 -0
  342. package/src/nodes/utils/Timer.js +40 -0
  343. package/src/nodes/utils/TriplanarTexturesNode.js +84 -0
  344. package/src/nodes/utils/UVUtils.js +20 -0
  345. package/src/nodes/utils/ViewportUtils.js +13 -0
  346. package/src/objects/BatchedMesh.js +2 -3
  347. package/src/objects/ClippingGroup.js +49 -0
  348. package/src/objects/Line.js +6 -6
  349. package/src/renderers/WebGLRenderer.js +30 -4
  350. package/src/renderers/common/Animation.js +85 -0
  351. package/src/renderers/common/Attributes.js +36 -0
  352. package/src/renderers/common/Backend.js +502 -44
  353. package/src/renderers/common/Background.js +48 -1
  354. package/src/renderers/common/BindGroup.js +43 -0
  355. package/src/renderers/common/Binding.js +35 -0
  356. package/src/renderers/common/Bindings.js +93 -1
  357. package/src/renderers/common/Buffer.js +49 -0
  358. package/src/renderers/common/BufferUtils.js +27 -0
  359. package/src/renderers/common/BundleGroup.js +57 -0
  360. package/src/renderers/common/ChainMap.js +45 -6
  361. package/src/renderers/common/ClippingContext.js +108 -15
  362. package/src/renderers/common/Color4.js +40 -0
  363. package/src/renderers/common/ComputePipeline.js +24 -0
  364. package/src/renderers/common/CubeRenderTarget.js +13 -0
  365. package/src/renderers/common/DataMap.js +37 -1
  366. package/src/renderers/common/Geometries.js +91 -14
  367. package/src/renderers/common/IndirectStorageBufferAttribute.js +25 -2
  368. package/src/renderers/common/Info.js +78 -35
  369. package/src/renderers/common/Lighting.js +34 -6
  370. package/src/renderers/common/Pipeline.js +22 -0
  371. package/src/renderers/common/Pipelines.js +148 -5
  372. package/src/renderers/common/PostProcessing.js +99 -11
  373. package/src/renderers/common/ProgrammableStage.js +60 -2
  374. package/src/renderers/common/QuadMesh.js +54 -5
  375. package/src/renderers/common/RenderBundle.js +14 -8
  376. package/src/renderers/common/RenderBundles.js +39 -10
  377. package/src/renderers/common/RenderContext.js +201 -2
  378. package/src/renderers/common/RenderContexts.js +59 -6
  379. package/src/renderers/common/RenderList.js +178 -0
  380. package/src/renderers/common/RenderLists.js +40 -3
  381. package/src/renderers/common/RenderObject.js +400 -17
  382. package/src/renderers/common/RenderObjects.js +103 -7
  383. package/src/renderers/common/RenderPipeline.js +24 -0
  384. package/src/renderers/common/Renderer.js +1170 -86
  385. package/src/renderers/common/RendererUtils.js +193 -0
  386. package/src/renderers/common/SampledTexture.js +120 -0
  387. package/src/renderers/common/Sampler.js +30 -0
  388. package/src/renderers/common/StorageBuffer.js +24 -0
  389. package/src/renderers/common/StorageBufferAttribute.js +31 -2
  390. package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
  391. package/src/renderers/common/StorageTexture.js +38 -0
  392. package/src/renderers/common/Textures.js +97 -7
  393. package/src/renderers/common/TimestampQueryPool.js +39 -0
  394. package/src/renderers/common/Uniform.js +225 -3
  395. package/src/renderers/common/UniformBuffer.js +19 -0
  396. package/src/renderers/common/UniformsGroup.js +141 -2
  397. package/src/renderers/common/XRManager.js +1193 -0
  398. package/src/renderers/common/XRRenderTarget.js +74 -0
  399. package/src/renderers/common/extras/PMREMGenerator.js +76 -10
  400. package/src/renderers/common/nodes/NodeBuilderState.js +99 -5
  401. package/src/renderers/common/nodes/NodeLibrary.js +89 -0
  402. package/src/renderers/common/nodes/NodeSampledTexture.js +90 -2
  403. package/src/renderers/common/nodes/NodeSampler.js +28 -0
  404. package/src/renderers/common/nodes/NodeStorageBuffer.js +35 -0
  405. package/src/renderers/common/nodes/NodeUniform.js +243 -2
  406. package/src/renderers/common/nodes/NodeUniformBuffer.js +29 -0
  407. package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
  408. package/src/renderers/common/nodes/Nodes.js +352 -78
  409. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
  410. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
  411. package/src/renderers/webgl/WebGLBackground.js +4 -0
  412. package/src/renderers/webgl-fallback/WebGLBackend.js +819 -116
  413. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +347 -18
  414. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +58 -1
  415. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
  416. package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
  417. package/src/renderers/webgl-fallback/utils/WebGLState.js +323 -11
  418. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +168 -22
  419. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +359 -0
  420. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
  421. package/src/renderers/webgpu/WebGPUBackend.js +578 -164
  422. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +36 -0
  423. package/src/renderers/webgpu/WebGPURenderer.js +36 -0
  424. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +20 -8
  425. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +21 -8
  426. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +674 -52
  427. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +17 -0
  428. package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
  429. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +95 -14
  430. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +94 -1
  431. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +102 -3
  432. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +98 -1
  433. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +262 -18
  434. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +274 -0
  435. package/src/renderers/webgpu/utils/WebGPUUtils.js +116 -4
  436. package/src/renderers/webxr/WebXRDepthSensing.js +1 -1
  437. package/src/renderers/webxr/WebXRManager.js +19 -2
  438. package/src/textures/Data3DTexture.js +2 -2
  439. package/src/textures/Texture.js +4 -0
  440. package/src/textures/VideoFrameTexture.js +35 -0
  441. package/examples/jsm/animation/MMDAnimationHelper.js +0 -1209
  442. package/examples/jsm/animation/MMDPhysics.js +0 -1408
  443. package/examples/jsm/exporters/MMDExporter.js +0 -223
  444. package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -176
  445. package/examples/jsm/libs/mmdparser.module.js +0 -11530
  446. package/examples/jsm/loaders/MMDLoader.js +0 -2298
  447. package/examples/jsm/objects/InstancedPoints.js +0 -19
  448. package/examples/jsm/shaders/MMDToonShader.js +0 -134
  449. package/src/materials/nodes/InstancedPointsNodeMaterial.js +0 -156
  450. package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -24
  451. package/src/nodes/core/UniformGroup.js +0 -13
  452. package/src/nodes/fog/FogExp2Node.js +0 -35
  453. package/src/nodes/fog/FogNode.js +0 -50
  454. package/src/nodes/fog/FogRangeNode.js +0 -36
  455. package/src/renderers/common/PostProcessingUtils.js +0 -86
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2010-2024 Three.js Authors
3
+ * Copyright 2010-2025 Three.js Authors
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- const REVISION = '171';
6
+ const REVISION = '173';
7
7
 
8
8
  const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
9
9
  const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
@@ -215,6 +215,11 @@ const GLSL3 = '300 es';
215
215
  const WebGLCoordinateSystem = 2000;
216
216
  const WebGPUCoordinateSystem = 2001;
217
217
 
218
+ const TimestampQuery = {
219
+ COMPUTE: 'compute',
220
+ RENDER: 'render'
221
+ };
222
+
218
223
  /**
219
224
  * https://github.com/mrdoob/eventdispatcher.js/
220
225
  */
@@ -243,19 +248,20 @@ class EventDispatcher {
243
248
 
244
249
  hasEventListener( type, listener ) {
245
250
 
246
- if ( this._listeners === undefined ) return false;
247
-
248
251
  const listeners = this._listeners;
249
252
 
253
+ if ( listeners === undefined ) return false;
254
+
250
255
  return listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;
251
256
 
252
257
  }
253
258
 
254
259
  removeEventListener( type, listener ) {
255
260
 
256
- if ( this._listeners === undefined ) return;
257
-
258
261
  const listeners = this._listeners;
262
+
263
+ if ( listeners === undefined ) return;
264
+
259
265
  const listenerArray = listeners[ type ];
260
266
 
261
267
  if ( listenerArray !== undefined ) {
@@ -274,9 +280,10 @@ class EventDispatcher {
274
280
 
275
281
  dispatchEvent( event ) {
276
282
 
277
- if ( this._listeners === undefined ) return;
278
-
279
283
  const listeners = this._listeners;
284
+
285
+ if ( listeners === undefined ) return;
286
+
280
287
  const listenerArray = listeners[ event.type ];
281
288
 
282
289
  if ( listenerArray !== undefined ) {
@@ -1854,17 +1861,7 @@ class ImageUtils {
1854
1861
 
1855
1862
  }
1856
1863
 
1857
- if ( canvas.width > 2048 || canvas.height > 2048 ) {
1858
-
1859
- console.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );
1860
-
1861
- return canvas.toDataURL( 'image/jpeg', 0.6 );
1862
-
1863
- } else {
1864
-
1865
- return canvas.toDataURL( 'image/png' );
1866
-
1867
- }
1864
+ return canvas.toDataURL( 'image/png' );
1868
1865
 
1869
1866
  }
1870
1867
 
@@ -2110,6 +2107,7 @@ class Texture extends EventDispatcher {
2110
2107
  this.version = 0;
2111
2108
  this.onUpdate = null;
2112
2109
 
2110
+ this.renderTarget = null; // assign texture to a render target
2113
2111
  this.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not
2114
2112
  this.pmremVersion = 0; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)
2115
2113
 
@@ -2175,6 +2173,9 @@ class Texture extends EventDispatcher {
2175
2173
  this.unpackAlignment = source.unpackAlignment;
2176
2174
  this.colorSpace = source.colorSpace;
2177
2175
 
2176
+ this.renderTarget = source.renderTarget;
2177
+ this.isRenderTargetTexture = source.isRenderTargetTexture;
2178
+
2178
2179
  this.userData = JSON.parse( JSON.stringify( source.userData ) );
2179
2180
 
2180
2181
  this.needsUpdate = true;
@@ -3075,6 +3076,7 @@ class RenderTarget extends EventDispatcher {
3075
3076
 
3076
3077
  this.textures[ i ] = texture.clone();
3077
3078
  this.textures[ i ].isRenderTargetTexture = true;
3079
+ this.textures[ i ].renderTarget = this;
3078
3080
 
3079
3081
  }
3080
3082
 
@@ -3084,6 +3086,7 @@ class RenderTarget extends EventDispatcher {
3084
3086
  this.resolveDepthBuffer = options.resolveDepthBuffer;
3085
3087
  this.resolveStencilBuffer = options.resolveStencilBuffer;
3086
3088
 
3089
+ this._depthTexture = null;
3087
3090
  this.depthTexture = options.depthTexture;
3088
3091
 
3089
3092
  this.samples = options.samples;
@@ -3102,6 +3105,21 @@ class RenderTarget extends EventDispatcher {
3102
3105
 
3103
3106
  }
3104
3107
 
3108
+ set depthTexture( current ) {
3109
+
3110
+ if ( this._depthTexture !== null ) this._depthTexture.renderTarget = null;
3111
+ if ( current !== null ) current.renderTarget = this;
3112
+
3113
+ this._depthTexture = current;
3114
+
3115
+ }
3116
+
3117
+ get depthTexture() {
3118
+
3119
+ return this._depthTexture;
3120
+
3121
+ }
3122
+
3105
3123
  setSize( width, height, depth = 1 ) {
3106
3124
 
3107
3125
  if ( this.width !== width || this.height !== height || this.depth !== depth ) {
@@ -3150,6 +3168,7 @@ class RenderTarget extends EventDispatcher {
3150
3168
 
3151
3169
  this.textures[ i ] = source.textures[ i ].clone();
3152
3170
  this.textures[ i ].isRenderTargetTexture = true;
3171
+ this.textures[ i ].renderTarget = this;
3153
3172
 
3154
3173
  }
3155
3174
 
@@ -3252,9 +3271,9 @@ class Data3DTexture extends Texture {
3252
3271
  constructor( data = null, width = 1, height = 1, depth = 1 ) {
3253
3272
 
3254
3273
  // We're going to add .setXXX() methods for setting properties later.
3255
- // Users can still set in DataTexture3D directly.
3274
+ // Users can still set in Data3DTexture directly.
3256
3275
  //
3257
- // const texture = new THREE.DataTexture3D( data, width, height, depth );
3276
+ // const texture = new THREE.Data3DTexture( data, width, height, depth );
3258
3277
  // texture.anisotropy = 16;
3259
3278
  //
3260
3279
  // See #14839
@@ -9978,6 +9997,8 @@ const DataUtils = {
9978
9997
  const _vector$9 = /*@__PURE__*/ new Vector3();
9979
9998
  const _vector2$1 = /*@__PURE__*/ new Vector2();
9980
9999
 
10000
+ let _id$2 = 0;
10001
+
9981
10002
  class BufferAttribute {
9982
10003
 
9983
10004
  constructor( array, itemSize, normalized = false ) {
@@ -9990,6 +10011,8 @@ class BufferAttribute {
9990
10011
 
9991
10012
  this.isBufferAttribute = true;
9992
10013
 
10014
+ Object.defineProperty( this, 'id', { value: _id$2 ++ } );
10015
+
9993
10016
  this.name = '';
9994
10017
 
9995
10018
  this.array = array;
@@ -12675,7 +12698,7 @@ class PerspectiveCamera extends Camera {
12675
12698
  * The default film gauge is 35, so that the focal length can be specified for
12676
12699
  * a 35mm (full frame) camera.
12677
12700
  *
12678
- * Values for focal length and film gauge must have the same unit.
12701
+ * @param {number} focalLength - Values for focal length and film gauge must have the same unit.
12679
12702
  */
12680
12703
  setFocalLength( focalLength ) {
12681
12704
 
@@ -12689,6 +12712,8 @@ class PerspectiveCamera extends Camera {
12689
12712
 
12690
12713
  /**
12691
12714
  * Calculates the focal length from the current .fov and .filmGauge.
12715
+ *
12716
+ * @returns {number}
12692
12717
  */
12693
12718
  getFocalLength() {
12694
12719
 
@@ -12722,6 +12747,10 @@ class PerspectiveCamera extends Camera {
12722
12747
  /**
12723
12748
  * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.
12724
12749
  * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.
12750
+ *
12751
+ * @param {number} distance
12752
+ * @param {Vector2} minTarget
12753
+ * @param {Vector2} maxTarget
12725
12754
  */
12726
12755
  getViewBounds( distance, minTarget, maxTarget ) {
12727
12756
 
@@ -12737,7 +12766,10 @@ class PerspectiveCamera extends Camera {
12737
12766
 
12738
12767
  /**
12739
12768
  * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.
12740
- * Copies the result into the target Vector2, where x is width and y is height.
12769
+ *
12770
+ * @param {number} distance
12771
+ * @param {Vector2} target - Vector2 target used to store result where x is width and y is height.
12772
+ * @returns {Vector2}
12741
12773
  */
12742
12774
  getViewSize( distance, target ) {
12743
12775
 
@@ -12781,6 +12813,13 @@ class PerspectiveCamera extends Camera {
12781
12813
  * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
12782
12814
  *
12783
12815
  * Note there is no reason monitors have to be the same size or in a grid.
12816
+ *
12817
+ * @param {number} fullWidth
12818
+ * @param {number} fullHeight
12819
+ * @param {number} x
12820
+ * @param {number} y
12821
+ * @param {number} width
12822
+ * @param {number} height
12784
12823
  */
12785
12824
  setViewOffset( fullWidth, fullHeight, x, y, width, height ) {
12786
12825
 
@@ -13211,6 +13250,358 @@ class WebGLCubeRenderTarget extends WebGLRenderTarget {
13211
13250
 
13212
13251
  }
13213
13252
 
13253
+ class Group extends Object3D {
13254
+
13255
+ constructor() {
13256
+
13257
+ super();
13258
+
13259
+ this.isGroup = true;
13260
+
13261
+ this.type = 'Group';
13262
+
13263
+ }
13264
+
13265
+ }
13266
+
13267
+ const _moveEvent = { type: 'move' };
13268
+
13269
+ class WebXRController {
13270
+
13271
+ constructor() {
13272
+
13273
+ this._targetRay = null;
13274
+ this._grip = null;
13275
+ this._hand = null;
13276
+
13277
+ }
13278
+
13279
+ getHandSpace() {
13280
+
13281
+ if ( this._hand === null ) {
13282
+
13283
+ this._hand = new Group();
13284
+ this._hand.matrixAutoUpdate = false;
13285
+ this._hand.visible = false;
13286
+
13287
+ this._hand.joints = {};
13288
+ this._hand.inputState = { pinching: false };
13289
+
13290
+ }
13291
+
13292
+ return this._hand;
13293
+
13294
+ }
13295
+
13296
+ getTargetRaySpace() {
13297
+
13298
+ if ( this._targetRay === null ) {
13299
+
13300
+ this._targetRay = new Group();
13301
+ this._targetRay.matrixAutoUpdate = false;
13302
+ this._targetRay.visible = false;
13303
+ this._targetRay.hasLinearVelocity = false;
13304
+ this._targetRay.linearVelocity = new Vector3();
13305
+ this._targetRay.hasAngularVelocity = false;
13306
+ this._targetRay.angularVelocity = new Vector3();
13307
+
13308
+ }
13309
+
13310
+ return this._targetRay;
13311
+
13312
+ }
13313
+
13314
+ getGripSpace() {
13315
+
13316
+ if ( this._grip === null ) {
13317
+
13318
+ this._grip = new Group();
13319
+ this._grip.matrixAutoUpdate = false;
13320
+ this._grip.visible = false;
13321
+ this._grip.hasLinearVelocity = false;
13322
+ this._grip.linearVelocity = new Vector3();
13323
+ this._grip.hasAngularVelocity = false;
13324
+ this._grip.angularVelocity = new Vector3();
13325
+
13326
+ }
13327
+
13328
+ return this._grip;
13329
+
13330
+ }
13331
+
13332
+ dispatchEvent( event ) {
13333
+
13334
+ if ( this._targetRay !== null ) {
13335
+
13336
+ this._targetRay.dispatchEvent( event );
13337
+
13338
+ }
13339
+
13340
+ if ( this._grip !== null ) {
13341
+
13342
+ this._grip.dispatchEvent( event );
13343
+
13344
+ }
13345
+
13346
+ if ( this._hand !== null ) {
13347
+
13348
+ this._hand.dispatchEvent( event );
13349
+
13350
+ }
13351
+
13352
+ return this;
13353
+
13354
+ }
13355
+
13356
+ connect( inputSource ) {
13357
+
13358
+ if ( inputSource && inputSource.hand ) {
13359
+
13360
+ const hand = this._hand;
13361
+
13362
+ if ( hand ) {
13363
+
13364
+ for ( const inputjoint of inputSource.hand.values() ) {
13365
+
13366
+ // Initialize hand with joints when connected
13367
+ this._getHandJoint( hand, inputjoint );
13368
+
13369
+ }
13370
+
13371
+ }
13372
+
13373
+ }
13374
+
13375
+ this.dispatchEvent( { type: 'connected', data: inputSource } );
13376
+
13377
+ return this;
13378
+
13379
+ }
13380
+
13381
+ disconnect( inputSource ) {
13382
+
13383
+ this.dispatchEvent( { type: 'disconnected', data: inputSource } );
13384
+
13385
+ if ( this._targetRay !== null ) {
13386
+
13387
+ this._targetRay.visible = false;
13388
+
13389
+ }
13390
+
13391
+ if ( this._grip !== null ) {
13392
+
13393
+ this._grip.visible = false;
13394
+
13395
+ }
13396
+
13397
+ if ( this._hand !== null ) {
13398
+
13399
+ this._hand.visible = false;
13400
+
13401
+ }
13402
+
13403
+ return this;
13404
+
13405
+ }
13406
+
13407
+ update( inputSource, frame, referenceSpace ) {
13408
+
13409
+ let inputPose = null;
13410
+ let gripPose = null;
13411
+ let handPose = null;
13412
+
13413
+ const targetRay = this._targetRay;
13414
+ const grip = this._grip;
13415
+ const hand = this._hand;
13416
+
13417
+ if ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {
13418
+
13419
+ if ( hand && inputSource.hand ) {
13420
+
13421
+ handPose = true;
13422
+
13423
+ for ( const inputjoint of inputSource.hand.values() ) {
13424
+
13425
+ // Update the joints groups with the XRJoint poses
13426
+ const jointPose = frame.getJointPose( inputjoint, referenceSpace );
13427
+
13428
+ // The transform of this joint will be updated with the joint pose on each frame
13429
+ const joint = this._getHandJoint( hand, inputjoint );
13430
+
13431
+ if ( jointPose !== null ) {
13432
+
13433
+ joint.matrix.fromArray( jointPose.transform.matrix );
13434
+ joint.matrix.decompose( joint.position, joint.rotation, joint.scale );
13435
+ joint.matrixWorldNeedsUpdate = true;
13436
+ joint.jointRadius = jointPose.radius;
13437
+
13438
+ }
13439
+
13440
+ joint.visible = jointPose !== null;
13441
+
13442
+ }
13443
+
13444
+ // Custom events
13445
+
13446
+ // Check pinchz
13447
+ const indexTip = hand.joints[ 'index-finger-tip' ];
13448
+ const thumbTip = hand.joints[ 'thumb-tip' ];
13449
+ const distance = indexTip.position.distanceTo( thumbTip.position );
13450
+
13451
+ const distanceToPinch = 0.02;
13452
+ const threshold = 0.005;
13453
+
13454
+ if ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {
13455
+
13456
+ hand.inputState.pinching = false;
13457
+ this.dispatchEvent( {
13458
+ type: 'pinchend',
13459
+ handedness: inputSource.handedness,
13460
+ target: this
13461
+ } );
13462
+
13463
+ } else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {
13464
+
13465
+ hand.inputState.pinching = true;
13466
+ this.dispatchEvent( {
13467
+ type: 'pinchstart',
13468
+ handedness: inputSource.handedness,
13469
+ target: this
13470
+ } );
13471
+
13472
+ }
13473
+
13474
+ } else {
13475
+
13476
+ if ( grip !== null && inputSource.gripSpace ) {
13477
+
13478
+ gripPose = frame.getPose( inputSource.gripSpace, referenceSpace );
13479
+
13480
+ if ( gripPose !== null ) {
13481
+
13482
+ grip.matrix.fromArray( gripPose.transform.matrix );
13483
+ grip.matrix.decompose( grip.position, grip.rotation, grip.scale );
13484
+ grip.matrixWorldNeedsUpdate = true;
13485
+
13486
+ if ( gripPose.linearVelocity ) {
13487
+
13488
+ grip.hasLinearVelocity = true;
13489
+ grip.linearVelocity.copy( gripPose.linearVelocity );
13490
+
13491
+ } else {
13492
+
13493
+ grip.hasLinearVelocity = false;
13494
+
13495
+ }
13496
+
13497
+ if ( gripPose.angularVelocity ) {
13498
+
13499
+ grip.hasAngularVelocity = true;
13500
+ grip.angularVelocity.copy( gripPose.angularVelocity );
13501
+
13502
+ } else {
13503
+
13504
+ grip.hasAngularVelocity = false;
13505
+
13506
+ }
13507
+
13508
+ }
13509
+
13510
+ }
13511
+
13512
+ }
13513
+
13514
+ if ( targetRay !== null ) {
13515
+
13516
+ inputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );
13517
+
13518
+ // Some runtimes (namely Vive Cosmos with Vive OpenXR Runtime) have only grip space and ray space is equal to it
13519
+ if ( inputPose === null && gripPose !== null ) {
13520
+
13521
+ inputPose = gripPose;
13522
+
13523
+ }
13524
+
13525
+ if ( inputPose !== null ) {
13526
+
13527
+ targetRay.matrix.fromArray( inputPose.transform.matrix );
13528
+ targetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );
13529
+ targetRay.matrixWorldNeedsUpdate = true;
13530
+
13531
+ if ( inputPose.linearVelocity ) {
13532
+
13533
+ targetRay.hasLinearVelocity = true;
13534
+ targetRay.linearVelocity.copy( inputPose.linearVelocity );
13535
+
13536
+ } else {
13537
+
13538
+ targetRay.hasLinearVelocity = false;
13539
+
13540
+ }
13541
+
13542
+ if ( inputPose.angularVelocity ) {
13543
+
13544
+ targetRay.hasAngularVelocity = true;
13545
+ targetRay.angularVelocity.copy( inputPose.angularVelocity );
13546
+
13547
+ } else {
13548
+
13549
+ targetRay.hasAngularVelocity = false;
13550
+
13551
+ }
13552
+
13553
+ this.dispatchEvent( _moveEvent );
13554
+
13555
+ }
13556
+
13557
+ }
13558
+
13559
+
13560
+ }
13561
+
13562
+ if ( targetRay !== null ) {
13563
+
13564
+ targetRay.visible = ( inputPose !== null );
13565
+
13566
+ }
13567
+
13568
+ if ( grip !== null ) {
13569
+
13570
+ grip.visible = ( gripPose !== null );
13571
+
13572
+ }
13573
+
13574
+ if ( hand !== null ) {
13575
+
13576
+ hand.visible = ( handPose !== null );
13577
+
13578
+ }
13579
+
13580
+ return this;
13581
+
13582
+ }
13583
+
13584
+ // private method
13585
+
13586
+ _getHandJoint( hand, inputjoint ) {
13587
+
13588
+ if ( hand.joints[ inputjoint.jointName ] === undefined ) {
13589
+
13590
+ const joint = new Group();
13591
+ joint.matrixAutoUpdate = false;
13592
+ joint.visible = false;
13593
+ hand.joints[ inputjoint.jointName ] = joint;
13594
+
13595
+ hand.add( joint );
13596
+
13597
+ }
13598
+
13599
+ return hand.joints[ inputjoint.jointName ];
13600
+
13601
+ }
13602
+
13603
+ }
13604
+
13214
13605
  class FogExp2 {
13215
13606
 
13216
13607
  constructor( color, density = 0.00025 ) {
@@ -16174,7 +16565,7 @@ class BatchedMesh extends Mesh {
16174
16565
  const instanceInfo = this._instanceInfo;
16175
16566
  for ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {
16176
16567
 
16177
- if ( instanceInfo[ i ].geometryIndex === geometryId ) {
16568
+ if ( instanceInfo[ i ].active && instanceInfo[ i ].geometryIndex === geometryId ) {
16178
16569
 
16179
16570
  this.deleteInstance( i );
16180
16571
 
@@ -17025,7 +17416,7 @@ class Line extends Object3D {
17025
17416
  const a = index.getX( i );
17026
17417
  const b = index.getX( i + 1 );
17027
17418
 
17028
- const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );
17419
+ const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b, i );
17029
17420
 
17030
17421
  if ( intersect ) {
17031
17422
 
@@ -17040,7 +17431,7 @@ class Line extends Object3D {
17040
17431
  const a = index.getX( end - 1 );
17041
17432
  const b = index.getX( start );
17042
17433
 
17043
- const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );
17434
+ const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b, end - 1 );
17044
17435
 
17045
17436
  if ( intersect ) {
17046
17437
 
@@ -17057,7 +17448,7 @@ class Line extends Object3D {
17057
17448
 
17058
17449
  for ( let i = start, l = end - 1; i < l; i += step ) {
17059
17450
 
17060
- const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1 );
17451
+ const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1, i );
17061
17452
 
17062
17453
  if ( intersect ) {
17063
17454
 
@@ -17069,7 +17460,7 @@ class Line extends Object3D {
17069
17460
 
17070
17461
  if ( this.isLineLoop ) {
17071
17462
 
17072
- const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start );
17463
+ const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start, end - 1 );
17073
17464
 
17074
17465
  if ( intersect ) {
17075
17466
 
@@ -17116,7 +17507,7 @@ class Line extends Object3D {
17116
17507
 
17117
17508
  }
17118
17509
 
17119
- function checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {
17510
+ function checkIntersection( object, raycaster, ray, thresholdSq, a, b, i ) {
17120
17511
 
17121
17512
  const positionAttribute = object.geometry.attributes.position;
17122
17513
 
@@ -17139,7 +17530,7 @@ function checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {
17139
17530
  // What do we want? intersection point on the ray or on the segment??
17140
17531
  // point: raycaster.ray.at( distance ),
17141
17532
  point: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),
17142
- index: a,
17533
+ index: i,
17143
17534
  face: null,
17144
17535
  faceIndex: null,
17145
17536
  barycoord: null,
@@ -17418,20 +17809,6 @@ function testPoint( point, index, localThresholdSq, matrixWorld, raycaster, inte
17418
17809
 
17419
17810
  }
17420
17811
 
17421
- class Group extends Object3D {
17422
-
17423
- constructor() {
17424
-
17425
- super();
17426
-
17427
- this.isGroup = true;
17428
-
17429
- this.type = 'Group';
17430
-
17431
- }
17432
-
17433
- }
17434
-
17435
17812
  class VideoTexture extends Texture {
17436
17813
 
17437
17814
  constructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
@@ -17483,6 +17860,38 @@ class VideoTexture extends Texture {
17483
17860
 
17484
17861
  }
17485
17862
 
17863
+ class VideoFrameTexture extends VideoTexture {
17864
+
17865
+ constructor( mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
17866
+
17867
+ super( {}, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );
17868
+
17869
+ this.isVideoFrameTexture = true;
17870
+
17871
+ }
17872
+
17873
+ update() {
17874
+
17875
+ // overwrites `VideoTexture.update()` with an empty method since
17876
+ // this type of texture is updated via `setFrame()`.
17877
+
17878
+ }
17879
+
17880
+ clone() {
17881
+
17882
+ return new this.constructor().copy( this ); // restoring Texture.clone()
17883
+
17884
+ }
17885
+
17886
+ setFrame( frame ) {
17887
+
17888
+ this.image = frame;
17889
+ this.needsUpdate = true;
17890
+
17891
+ }
17892
+
17893
+ }
17894
+
17486
17895
  class FramebufferTexture extends Texture {
17487
17896
 
17488
17897
  constructor( width, height ) {
@@ -21372,7 +21781,7 @@ function pointInTriangle( ax, ay, bx, by, cx, cy, px, py ) {
21372
21781
  // check if a diagonal between two polygon nodes is valid (lies in polygon interior)
21373
21782
  function isValidDiagonal( a, b ) {
21374
21783
 
21375
- return a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // dones't intersect other edges
21784
+ return a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // doesn't intersect other edges
21376
21785
  ( locallyInside( a, b ) && locallyInside( b, a ) && middleInside( a, b ) && // locally visible
21377
21786
  ( area( a.prev, a, b.prev ) || area( a, b.prev, b ) ) || // does not create opposite-facing sectors
21378
21787
  equals( a, b ) && area( a.prev, a, a.next ) > 0 && area( b.prev, b, b.next ) > 0 ); // special zero-length case
@@ -30664,6 +31073,7 @@ class ArrayCamera extends PerspectiveCamera {
30664
31073
  this.isArrayCamera = true;
30665
31074
 
30666
31075
  this.cameras = array;
31076
+ this.index = 0;
30667
31077
 
30668
31078
  }
30669
31079
 
@@ -32372,11 +32782,11 @@ class PropertyBinding {
32372
32782
 
32373
32783
  this.targetObject = targetObject;
32374
32784
 
32375
- if ( targetObject.needsUpdate !== undefined ) { // material
32785
+ if ( targetObject.isMaterial === true ) {
32376
32786
 
32377
32787
  versioning = this.Versioning.NeedsUpdate;
32378
32788
 
32379
- } else if ( targetObject.matrixWorldNeedsUpdate !== undefined ) { // node transform
32789
+ } else if ( targetObject.isObject3D === true ) {
32380
32790
 
32381
32791
  versioning = this.Versioning.MatrixWorldNeedsUpdate;
32382
32792
 
@@ -34356,6 +34766,42 @@ class AnimationMixer extends EventDispatcher {
34356
34766
 
34357
34767
  }
34358
34768
 
34769
+ class RenderTarget3D extends RenderTarget {
34770
+
34771
+ constructor( width = 1, height = 1, depth = 1, options = {} ) {
34772
+
34773
+ super( width, height, options );
34774
+
34775
+ this.isRenderTarget3D = true;
34776
+
34777
+ this.depth = depth;
34778
+
34779
+ this.texture = new Data3DTexture( null, width, height, depth );
34780
+
34781
+ this.texture.isRenderTargetTexture = true;
34782
+
34783
+ }
34784
+
34785
+ }
34786
+
34787
+ class RenderTargetArray extends RenderTarget {
34788
+
34789
+ constructor( width = 1, height = 1, depth = 1, options = {} ) {
34790
+
34791
+ super( width, height, options );
34792
+
34793
+ this.isRenderTargetArray = true;
34794
+
34795
+ this.depth = depth;
34796
+
34797
+ this.texture = new DataArrayTexture( null, width, height, depth );
34798
+
34799
+ this.texture.isRenderTargetTexture = true;
34800
+
34801
+ }
34802
+
34803
+ }
34804
+
34359
34805
  class Uniform {
34360
34806
 
34361
34807
  constructor( value ) {
@@ -35995,17 +36441,19 @@ class CameraHelper extends LineSegments {
35995
36441
 
35996
36442
  _camera.projectionMatrixInverse.copy( this.camera.projectionMatrixInverse );
35997
36443
 
35998
- // center / target
36444
+ // Adjust z values based on coordinate system
36445
+ const nearZ = this.camera.coordinateSystem === WebGLCoordinateSystem ? - 1 : 0;
35999
36446
 
36000
- setPoint( 'c', pointMap, geometry, _camera, 0, 0, - 1 );
36447
+ // center / target
36448
+ setPoint( 'c', pointMap, geometry, _camera, 0, 0, nearZ );
36001
36449
  setPoint( 't', pointMap, geometry, _camera, 0, 0, 1 );
36002
36450
 
36003
36451
  // near
36004
36452
 
36005
- setPoint( 'n1', pointMap, geometry, _camera, - w, - h, - 1 );
36006
- setPoint( 'n2', pointMap, geometry, _camera, w, - h, - 1 );
36007
- setPoint( 'n3', pointMap, geometry, _camera, - w, h, - 1 );
36008
- setPoint( 'n4', pointMap, geometry, _camera, w, h, - 1 );
36453
+ setPoint( 'n1', pointMap, geometry, _camera, - w, - h, nearZ );
36454
+ setPoint( 'n2', pointMap, geometry, _camera, w, - h, nearZ );
36455
+ setPoint( 'n3', pointMap, geometry, _camera, - w, h, nearZ );
36456
+ setPoint( 'n4', pointMap, geometry, _camera, w, h, nearZ );
36009
36457
 
36010
36458
  // far
36011
36459
 
@@ -36016,9 +36464,9 @@ class CameraHelper extends LineSegments {
36016
36464
 
36017
36465
  // up
36018
36466
 
36019
- setPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, - 1 );
36020
- setPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, - 1 );
36021
- setPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, - 1 );
36467
+ setPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, nearZ );
36468
+ setPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, nearZ );
36469
+ setPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, nearZ );
36022
36470
 
36023
36471
  // cross
36024
36472
 
@@ -36027,10 +36475,10 @@ class CameraHelper extends LineSegments {
36027
36475
  setPoint( 'cf3', pointMap, geometry, _camera, 0, - h, 1 );
36028
36476
  setPoint( 'cf4', pointMap, geometry, _camera, 0, h, 1 );
36029
36477
 
36030
- setPoint( 'cn1', pointMap, geometry, _camera, - w, 0, - 1 );
36031
- setPoint( 'cn2', pointMap, geometry, _camera, w, 0, - 1 );
36032
- setPoint( 'cn3', pointMap, geometry, _camera, 0, - h, - 1 );
36033
- setPoint( 'cn4', pointMap, geometry, _camera, 0, h, - 1 );
36478
+ setPoint( 'cn1', pointMap, geometry, _camera, - w, 0, nearZ );
36479
+ setPoint( 'cn2', pointMap, geometry, _camera, w, 0, nearZ );
36480
+ setPoint( 'cn3', pointMap, geometry, _camera, 0, - h, nearZ );
36481
+ setPoint( 'cn4', pointMap, geometry, _camera, 0, h, nearZ );
36034
36482
 
36035
36483
  geometry.getAttribute( 'position' ).needsUpdate = true;
36036
36484
 
@@ -36819,6 +37267,12 @@ function fill( texture ) {
36819
37267
  /**
36820
37268
  * Given the width, height, format, and type of a texture. Determines how many
36821
37269
  * bytes must be used to represent the texture.
37270
+ *
37271
+ * @param {Number} width
37272
+ * @param {Number} height
37273
+ * @param {Number} format
37274
+ * @param {Number} type
37275
+ * @return {Number} The number of bytes required to represent the texture.
36822
37276
  */
36823
37277
  function getByteLength( width, height, format, type ) {
36824
37278
 
@@ -36957,26 +37411,6 @@ const TextureUtils = {
36957
37411
  getByteLength
36958
37412
  };
36959
37413
 
36960
- class WebGLMultipleRenderTargets extends WebGLRenderTarget { // @deprecated, r162
36961
-
36962
- constructor( width = 1, height = 1, count = 1, options = {} ) {
36963
-
36964
- console.warn( 'THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the "count" parameter to enable MRT.' );
36965
-
36966
- super( width, height, { ...options, count } );
36967
-
36968
- this.isWebGLMultipleRenderTargets = true;
36969
-
36970
- }
36971
-
36972
- get texture() {
36973
-
36974
- return this.textures;
36975
-
36976
- }
36977
-
36978
- }
36979
-
36980
37414
  if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
36981
37415
 
36982
37416
  __THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {
@@ -36999,4 +37433,4 @@ if ( typeof window !== 'undefined' ) {
36999
37433
 
37000
37434
  }
37001
37435
 
37002
- 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, 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, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, 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, 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, LuminanceAlphaFormat, LuminanceFormat, 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, 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, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLRenderTarget, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, getByteLength, getUnlitUniformColorSpace, mergeUniforms, probeAsync, toNormalizedProjectionMatrix, toReversedProjectionMatrix, warnOnce };
37436
+ 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, 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, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, 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, 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, LuminanceAlphaFormat, LuminanceFormat, 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, RenderTargetArray, 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, TimestampQuery, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, 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, getByteLength, getUnlitUniformColorSpace, mergeUniforms, probeAsync, toNormalizedProjectionMatrix, toReversedProjectionMatrix, warnOnce };