super-three 0.173.5 → 0.175.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 (832) hide show
  1. package/build/three.cjs +21993 -1359
  2. package/build/three.core.js +21129 -1188
  3. package/build/three.core.min.js +1 -1
  4. package/build/three.module.js +835 -142
  5. package/build/three.module.min.js +1 -1
  6. package/build/three.tsl.js +8 -2
  7. package/build/three.tsl.min.js +1 -1
  8. package/build/three.webgpu.js +19493 -17617
  9. package/build/three.webgpu.min.js +1 -1
  10. package/build/three.webgpu.nodes.js +19477 -17617
  11. package/build/three.webgpu.nodes.min.js +1 -1
  12. package/examples/jsm/Addons.js +1 -1
  13. package/examples/jsm/animation/AnimationClipCreator.js +57 -6
  14. package/examples/jsm/animation/CCDIKSolver.js +144 -42
  15. package/examples/jsm/capabilities/WebGL.js +28 -3
  16. package/examples/jsm/capabilities/WebGPU.js +16 -6
  17. package/examples/jsm/controls/ArcballControls.js +424 -154
  18. package/examples/jsm/controls/DragControls.js +93 -2
  19. package/examples/jsm/controls/FirstPersonControls.js +113 -4
  20. package/examples/jsm/controls/FlyControls.js +49 -2
  21. package/examples/jsm/controls/MapControls.js +42 -9
  22. package/examples/jsm/controls/OrbitControls.js +345 -42
  23. package/examples/jsm/controls/PointerLockControls.js +111 -9
  24. package/examples/jsm/controls/TrackballControls.js +159 -8
  25. package/examples/jsm/controls/TransformControls.js +252 -6
  26. package/examples/jsm/csm/CSM.js +226 -15
  27. package/examples/jsm/csm/CSMFrustum.js +52 -0
  28. package/examples/jsm/csm/CSMHelper.js +47 -0
  29. package/examples/jsm/csm/CSMShader.js +10 -1
  30. package/examples/jsm/csm/CSMShadowNode.js +156 -13
  31. package/examples/jsm/curves/CurveExtras.js +289 -31
  32. package/examples/jsm/curves/NURBSCurve.js +57 -14
  33. package/examples/jsm/curves/NURBSSurface.js +50 -6
  34. package/examples/jsm/curves/NURBSUtils.js +96 -112
  35. package/examples/jsm/curves/NURBSVolume.js +22 -4
  36. package/examples/jsm/effects/AnaglyphEffect.js +30 -0
  37. package/examples/jsm/effects/AsciiEffect.js +60 -15
  38. package/examples/jsm/effects/OutlineEffect.js +59 -111
  39. package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
  40. package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
  41. package/examples/jsm/effects/StereoEffect.js +29 -0
  42. package/examples/jsm/environments/DebugEnvironment.js +49 -0
  43. package/examples/jsm/environments/RoomEnvironment.js +23 -4
  44. package/examples/jsm/exporters/DRACOExporter.js +53 -13
  45. package/examples/jsm/exporters/EXRExporter.js +37 -8
  46. package/examples/jsm/exporters/GLTFExporter.js +194 -71
  47. package/examples/jsm/exporters/KTX2Exporter.js +20 -0
  48. package/examples/jsm/exporters/OBJExporter.js +18 -0
  49. package/examples/jsm/exporters/PLYExporter.js +39 -9
  50. package/examples/jsm/exporters/STLExporter.js +25 -5
  51. package/examples/jsm/exporters/USDZExporter.js +70 -3
  52. package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
  53. package/examples/jsm/geometries/ConvexGeometry.js +18 -0
  54. package/examples/jsm/geometries/DecalGeometry.js +20 -9
  55. package/examples/jsm/geometries/ParametricFunctions.js +97 -0
  56. package/examples/jsm/geometries/ParametricGeometry.js +37 -5
  57. package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
  58. package/examples/jsm/geometries/TeapotGeometry.js +22 -38
  59. package/examples/jsm/geometries/TextGeometry.js +44 -16
  60. package/examples/jsm/helpers/LightProbeHelper.js +35 -0
  61. package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
  62. package/examples/jsm/helpers/OctreeHelper.js +35 -0
  63. package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
  64. package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
  65. package/examples/jsm/helpers/TextureHelper.js +27 -0
  66. package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
  67. package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
  68. package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
  69. package/examples/jsm/helpers/ViewHelper.js +75 -1
  70. package/examples/jsm/interactive/HTMLMesh.js +25 -0
  71. package/examples/jsm/interactive/InteractiveGroup.js +65 -5
  72. package/examples/jsm/interactive/SelectionBox.js +74 -9
  73. package/examples/jsm/interactive/SelectionHelper.js +74 -30
  74. package/examples/jsm/libs/motion-controllers.module.js +1 -1
  75. package/examples/jsm/lighting/TiledLighting.js +23 -0
  76. package/examples/jsm/lights/LightProbeGenerator.js +26 -1
  77. package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
  78. package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
  79. package/examples/jsm/lines/Line2.js +36 -0
  80. package/examples/jsm/lines/LineGeometry.js +52 -0
  81. package/examples/jsm/lines/LineMaterial.js +95 -0
  82. package/examples/jsm/lines/LineSegments2.js +51 -2
  83. package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
  84. package/examples/jsm/lines/Wireframe.js +38 -2
  85. package/examples/jsm/lines/WireframeGeometry2.js +24 -0
  86. package/examples/jsm/lines/webgpu/Line2.js +25 -1
  87. package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
  88. package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
  89. package/examples/jsm/loaders/3DMLoader.js +71 -2
  90. package/examples/jsm/loaders/3MFLoader.js +51 -5
  91. package/examples/jsm/loaders/AMFLoader.js +31 -12
  92. package/examples/jsm/loaders/BVHLoader.js +57 -11
  93. package/examples/jsm/loaders/ColladaLoader.js +36 -1
  94. package/examples/jsm/loaders/DDSLoader.js +25 -1
  95. package/examples/jsm/loaders/DRACOLoader.js +73 -1
  96. package/examples/jsm/loaders/EXRLoader.js +40 -8
  97. package/examples/jsm/loaders/FBXLoader.js +71 -14
  98. package/examples/jsm/loaders/FontLoader.js +60 -2
  99. package/examples/jsm/loaders/GCodeLoader.js +33 -5
  100. package/examples/jsm/loaders/GLTFLoader.js +222 -9
  101. package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
  102. package/examples/jsm/loaders/IESLoader.js +41 -0
  103. package/examples/jsm/loaders/KMZLoader.js +32 -0
  104. package/examples/jsm/loaders/KTX2Loader.js +87 -19
  105. package/examples/jsm/loaders/KTXLoader.js +26 -6
  106. package/examples/jsm/loaders/LDrawLoader.js +115 -5
  107. package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
  108. package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
  109. package/examples/jsm/loaders/LUTImageLoader.js +78 -38
  110. package/examples/jsm/loaders/LWOLoader.js +46 -7
  111. package/examples/jsm/loaders/LottieLoader.js +37 -0
  112. package/examples/jsm/loaders/MD2Loader.js +36 -1
  113. package/examples/jsm/loaders/MDDLoader.js +56 -12
  114. package/examples/jsm/loaders/MTLLoader.js +56 -33
  115. package/examples/jsm/loaders/MaterialXLoader.js +33 -0
  116. package/examples/jsm/loaders/NRRDLoader.js +36 -5
  117. package/examples/jsm/loaders/OBJLoader.js +48 -1
  118. package/examples/jsm/loaders/PCDLoader.js +47 -0
  119. package/examples/jsm/loaders/PDBLoader.js +40 -2
  120. package/examples/jsm/loaders/PLYLoader.js +62 -32
  121. package/examples/jsm/loaders/PVRLoader.js +23 -5
  122. package/examples/jsm/loaders/RGBELoader.js +38 -5
  123. package/examples/jsm/loaders/RGBMLoader.js +67 -1
  124. package/examples/jsm/loaders/STLLoader.js +47 -38
  125. package/examples/jsm/loaders/SVGLoader.js +113 -20
  126. package/examples/jsm/loaders/TDSLoader.js +90 -70
  127. package/examples/jsm/loaders/TGALoader.js +22 -0
  128. package/examples/jsm/loaders/TIFFLoader.js +22 -0
  129. package/examples/jsm/loaders/TTFLoader.js +36 -2
  130. package/examples/jsm/loaders/USDZLoader.js +34 -1
  131. package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
  132. package/examples/jsm/loaders/VOXLoader.js +57 -0
  133. package/examples/jsm/loaders/VRMLLoader.js +32 -1
  134. package/examples/jsm/loaders/VTKLoader.js +38 -0
  135. package/examples/jsm/loaders/XYZLoader.js +35 -0
  136. package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
  137. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
  138. package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
  139. package/examples/jsm/math/Capsule.js +89 -14
  140. package/examples/jsm/math/ColorConverter.js +21 -0
  141. package/examples/jsm/math/ColorSpaces.js +53 -0
  142. package/examples/jsm/math/ConvexHull.js +514 -92
  143. package/examples/jsm/math/ImprovedNoise.js +14 -2
  144. package/examples/jsm/math/Lut.js +111 -0
  145. package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
  146. package/examples/jsm/math/OBB.js +139 -46
  147. package/examples/jsm/math/Octree.js +132 -5
  148. package/examples/jsm/math/SimplexNoise.js +66 -42
  149. package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
  150. package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
  151. package/examples/jsm/misc/Gyroscope.js +11 -0
  152. package/examples/jsm/misc/MD2Character.js +115 -2
  153. package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
  154. package/examples/jsm/misc/MorphAnimMesh.js +43 -0
  155. package/examples/jsm/misc/MorphBlendMesh.js +102 -0
  156. package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
  157. package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
  158. package/examples/jsm/misc/RollerCoaster.js +52 -0
  159. package/examples/jsm/misc/Timer.js +105 -13
  160. package/examples/jsm/misc/TubePainter.js +53 -0
  161. package/examples/jsm/misc/Volume.js +109 -73
  162. package/examples/jsm/misc/VolumeSlice.js +91 -48
  163. package/examples/jsm/modifiers/CurveModifier.js +57 -34
  164. package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
  165. package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
  166. package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
  167. package/examples/jsm/modifiers/TessellateModifier.js +33 -2
  168. package/examples/jsm/objects/GroundedSkybox.js +23 -5
  169. package/examples/jsm/objects/Lensflare.js +91 -2
  170. package/examples/jsm/objects/LensflareMesh.js +53 -2
  171. package/examples/jsm/objects/MarchingCubes.js +88 -5
  172. package/examples/jsm/objects/Reflector.js +75 -2
  173. package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
  174. package/examples/jsm/objects/Refractor.js +61 -0
  175. package/examples/jsm/objects/ShadowMesh.js +53 -4
  176. package/examples/jsm/objects/Sky.js +26 -9
  177. package/examples/jsm/objects/SkyMesh.js +60 -9
  178. package/examples/jsm/objects/Water.js +44 -5
  179. package/examples/jsm/objects/Water2.js +42 -3
  180. package/examples/jsm/objects/Water2Mesh.js +38 -3
  181. package/examples/jsm/objects/WaterMesh.js +94 -7
  182. package/examples/jsm/physics/AmmoPhysics.js +47 -0
  183. package/examples/jsm/physics/JoltPhysics.js +48 -0
  184. package/examples/jsm/physics/RapierPhysics.js +56 -0
  185. package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
  186. package/examples/jsm/postprocessing/BloomPass.js +125 -24
  187. package/examples/jsm/postprocessing/BokehPass.js +98 -22
  188. package/examples/jsm/postprocessing/ClearPass.js +53 -3
  189. package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
  190. package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
  191. package/examples/jsm/postprocessing/EffectComposer.js +134 -0
  192. package/examples/jsm/postprocessing/FilmPass.js +53 -5
  193. package/examples/jsm/postprocessing/GTAOPass.js +191 -48
  194. package/examples/jsm/postprocessing/GlitchPass.js +84 -33
  195. package/examples/jsm/postprocessing/HalftonePass.js +64 -10
  196. package/examples/jsm/postprocessing/LUTPass.js +37 -8
  197. package/examples/jsm/postprocessing/MaskPass.js +90 -0
  198. package/examples/jsm/postprocessing/OutlinePass.js +268 -134
  199. package/examples/jsm/postprocessing/OutputPass.js +53 -14
  200. package/examples/jsm/postprocessing/Pass.js +98 -4
  201. package/examples/jsm/postprocessing/RenderPass.js +83 -0
  202. package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
  203. package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
  204. package/examples/jsm/postprocessing/SAOPass.js +126 -53
  205. package/examples/jsm/postprocessing/SMAAPass.js +103 -71
  206. package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
  207. package/examples/jsm/postprocessing/SSAOPass.js +160 -47
  208. package/examples/jsm/postprocessing/SSRPass.js +230 -49
  209. package/examples/jsm/postprocessing/SavePass.js +68 -16
  210. package/examples/jsm/postprocessing/ShaderPass.js +64 -7
  211. package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
  212. package/examples/jsm/postprocessing/TexturePass.js +71 -8
  213. package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
  214. package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
  215. package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
  216. package/examples/jsm/renderers/Projector.js +18 -2
  217. package/examples/jsm/renderers/SVGRenderer.js +124 -0
  218. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
  219. package/examples/jsm/shaders/AfterimageShader.js +6 -4
  220. package/examples/jsm/shaders/BasicShader.js +6 -2
  221. package/examples/jsm/shaders/BleachBypassShader.js +8 -4
  222. package/examples/jsm/shaders/BlendShader.js +6 -2
  223. package/examples/jsm/shaders/BokehShader.js +7 -4
  224. package/examples/jsm/shaders/BokehShader2.js +7 -3
  225. package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
  226. package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
  227. package/examples/jsm/shaders/ColorifyShader.js +6 -2
  228. package/examples/jsm/shaders/ConvolutionShader.js +7 -39
  229. package/examples/jsm/shaders/CopyShader.js +6 -2
  230. package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
  231. package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
  232. package/examples/jsm/shaders/DigitalGlitch.js +7 -7
  233. package/examples/jsm/shaders/DotScreenShader.js +6 -4
  234. package/examples/jsm/shaders/ExposureShader.js +6 -2
  235. package/examples/jsm/shaders/FXAAShader.js +15 -7
  236. package/examples/jsm/shaders/FilmShader.js +10 -0
  237. package/examples/jsm/shaders/FocusShader.js +6 -4
  238. package/examples/jsm/shaders/FreiChenShader.js +7 -3
  239. package/examples/jsm/shaders/GTAOShader.js +33 -39
  240. package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
  241. package/examples/jsm/shaders/GodRaysShader.js +14 -5
  242. package/examples/jsm/shaders/HalftoneShader.js +11 -5
  243. package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
  244. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
  245. package/examples/jsm/shaders/HueSaturationShader.js +7 -3
  246. package/examples/jsm/shaders/KaleidoShader.js +8 -4
  247. package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
  248. package/examples/jsm/shaders/LuminosityShader.js +6 -3
  249. package/examples/jsm/shaders/MirrorShader.js +7 -4
  250. package/examples/jsm/shaders/NormalMapShader.js +5 -3
  251. package/examples/jsm/shaders/OutputShader.js +11 -0
  252. package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
  253. package/examples/jsm/shaders/RGBShiftShader.js +5 -1
  254. package/examples/jsm/shaders/SAOShader.js +8 -2
  255. package/examples/jsm/shaders/SMAAShader.js +23 -1
  256. package/examples/jsm/shaders/SSAOShader.js +23 -5
  257. package/examples/jsm/shaders/SSRShader.js +25 -1
  258. package/examples/jsm/shaders/SepiaShader.js +6 -4
  259. package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
  260. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
  261. package/examples/jsm/shaders/TechnicolorShader.js +7 -4
  262. package/examples/jsm/shaders/ToonShader.js +29 -7
  263. package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
  264. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
  265. package/examples/jsm/shaders/VelocityShader.js +6 -2
  266. package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
  267. package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
  268. package/examples/jsm/shaders/VignetteShader.js +6 -4
  269. package/examples/jsm/shaders/VolumeShader.js +7 -1
  270. package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
  271. package/examples/jsm/textures/FlakesTexture.js +12 -0
  272. package/examples/jsm/transpiler/AST.js +10 -0
  273. package/examples/jsm/transpiler/GLSLDecoder.js +17 -3
  274. package/examples/jsm/transpiler/TSLEncoder.js +83 -15
  275. package/examples/jsm/transpiler/Transpiler.js +31 -0
  276. package/examples/jsm/tsl/display/AfterImageNode.js +24 -25
  277. package/examples/jsm/tsl/display/AnaglyphPassNode.js +2 -3
  278. package/examples/jsm/tsl/display/AnamorphicNode.js +8 -9
  279. package/examples/jsm/tsl/display/BleachBypass.js +1 -2
  280. package/examples/jsm/tsl/display/BloomNode.js +15 -16
  281. package/examples/jsm/tsl/display/DenoiseNode.js +9 -10
  282. package/examples/jsm/tsl/display/DepthOfFieldNode.js +5 -6
  283. package/examples/jsm/tsl/display/DotScreenNode.js +5 -6
  284. package/examples/jsm/tsl/display/FXAANode.js +2 -3
  285. package/examples/jsm/tsl/display/FilmNode.js +9 -8
  286. package/examples/jsm/tsl/display/GTAONode.js +11 -12
  287. package/examples/jsm/tsl/display/GaussianBlurNode.js +14 -14
  288. package/examples/jsm/tsl/display/LensflareNode.js +15 -16
  289. package/examples/jsm/tsl/display/Lut3DNode.js +4 -5
  290. package/examples/jsm/tsl/display/MotionBlur.js +1 -2
  291. package/examples/jsm/tsl/display/OutlineNode.js +7 -8
  292. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -3
  293. package/examples/jsm/tsl/display/PixelationPassNode.js +14 -15
  294. package/examples/jsm/tsl/display/RGBShiftNode.js +5 -6
  295. package/examples/jsm/tsl/display/SMAANode.js +13 -7
  296. package/examples/jsm/tsl/display/SSAAPassNode.js +7 -7
  297. package/examples/jsm/tsl/display/SSRNode.js +6 -7
  298. package/examples/jsm/tsl/display/Sepia.js +1 -2
  299. package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -3
  300. package/examples/jsm/tsl/display/StereoCompositePassNode.js +4 -4
  301. package/examples/jsm/tsl/display/StereoPassNode.js +2 -3
  302. package/examples/jsm/tsl/display/TRAAPassNode.js +11 -10
  303. package/examples/jsm/tsl/display/TransitionNode.js +4 -5
  304. package/examples/jsm/tsl/display/hashBlur.js +1 -2
  305. package/examples/jsm/tsl/lighting/TiledLightsNode.js +33 -7
  306. package/examples/jsm/tsl/math/Bayer.js +31 -0
  307. package/examples/jsm/tsl/utils/Raymarching.js +67 -0
  308. package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
  309. package/examples/jsm/utils/CameraUtils.js +10 -7
  310. package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
  311. package/examples/jsm/utils/GeometryUtils.js +12 -13
  312. package/examples/jsm/utils/LDrawUtils.js +11 -4
  313. package/examples/jsm/utils/SceneOptimizer.js +66 -20
  314. package/examples/jsm/utils/SceneUtils.js +50 -3
  315. package/examples/jsm/utils/ShadowMapViewer.js +47 -24
  316. package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
  317. package/examples/jsm/utils/SkeletonUtils.js +45 -0
  318. package/examples/jsm/utils/SortUtils.js +14 -5
  319. package/examples/jsm/utils/UVsDebug.js +9 -4
  320. package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
  321. package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
  322. package/examples/jsm/utils/WorkerPool.js +65 -2
  323. package/examples/jsm/webxr/ARButton.js +18 -0
  324. package/examples/jsm/webxr/OculusHandModel.js +83 -0
  325. package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
  326. package/examples/jsm/webxr/Text2D.js +11 -0
  327. package/examples/jsm/webxr/VRButton.js +30 -0
  328. package/examples/jsm/webxr/XRButton.js +22 -0
  329. package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
  330. package/examples/jsm/webxr/XREstimatedLight.js +33 -3
  331. package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
  332. package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
  333. package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
  334. package/examples/jsm/webxr/XRPlanes.js +17 -0
  335. package/package.json +3 -4
  336. package/src/Three.TSL.js +7 -1
  337. package/src/animation/AnimationAction.js +262 -30
  338. package/src/animation/AnimationClip.js +141 -2
  339. package/src/animation/AnimationMixer.js +99 -15
  340. package/src/animation/AnimationObjectGroup.js +41 -18
  341. package/src/animation/AnimationUtils.js +169 -19
  342. package/src/animation/KeyframeTrack.js +144 -10
  343. package/src/animation/PropertyBinding.js +77 -3
  344. package/src/animation/PropertyMixer.js +72 -5
  345. package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
  346. package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
  347. package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
  348. package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
  349. package/src/animation/tracks/StringKeyframeTrack.js +33 -2
  350. package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
  351. package/src/audio/Audio.js +339 -0
  352. package/src/audio/AudioAnalyser.js +58 -1
  353. package/src/audio/AudioContext.js +15 -0
  354. package/src/audio/AudioListener.js +76 -0
  355. package/src/audio/PositionalAudio.js +107 -0
  356. package/src/cameras/ArrayCamera.js +28 -0
  357. package/src/cameras/Camera.js +47 -0
  358. package/src/cameras/CubeCamera.js +66 -0
  359. package/src/cameras/OrthographicCamera.js +109 -0
  360. package/src/cameras/PerspectiveCamera.js +163 -40
  361. package/src/cameras/StereoCamera.js +46 -0
  362. package/src/constants.js +1429 -5
  363. package/src/core/BufferAttribute.js +413 -3
  364. package/src/core/BufferGeometry.js +337 -1
  365. package/src/core/Clock.js +60 -0
  366. package/src/core/EventDispatcher.js +44 -2
  367. package/src/core/GLBufferAttribute.js +99 -0
  368. package/src/core/InstancedBufferAttribute.js +29 -0
  369. package/src/core/InstancedBufferGeometry.js +20 -0
  370. package/src/core/InstancedInterleavedBuffer.js +26 -0
  371. package/src/core/InterleavedBuffer.js +137 -3
  372. package/src/core/InterleavedBufferAttribute.js +197 -0
  373. package/src/core/Layers.js +71 -10
  374. package/src/core/Object3D.js +593 -0
  375. package/src/core/Raycaster.js +134 -1
  376. package/src/core/RenderTarget.js +170 -11
  377. package/src/core/RenderTarget3D.js +25 -0
  378. package/src/core/RenderTargetArray.js +18 -0
  379. package/src/core/Uniform.js +29 -0
  380. package/src/core/UniformsGroup.js +84 -2
  381. package/src/extras/Controls.js +88 -1
  382. package/src/extras/DataUtils.js +48 -8
  383. package/src/extras/Earcut.js +13 -780
  384. package/src/extras/ImageUtils.js +20 -2
  385. package/src/extras/PMREMGenerator.js +41 -25
  386. package/src/extras/ShapeUtils.js +24 -2
  387. package/src/extras/TextureUtils.js +95 -15
  388. package/src/extras/core/Curve.js +150 -50
  389. package/src/extras/core/CurvePath.js +63 -22
  390. package/src/extras/core/Interpolations.js +29 -3
  391. package/src/extras/core/Path.js +134 -1
  392. package/src/extras/core/Shape.js +63 -0
  393. package/src/extras/core/ShapePath.js +76 -0
  394. package/src/extras/curves/ArcCurve.js +22 -0
  395. package/src/extras/curves/CatmullRomCurve3.js +89 -18
  396. package/src/extras/curves/CubicBezierCurve.js +67 -0
  397. package/src/extras/curves/CubicBezierCurve3.js +50 -0
  398. package/src/extras/curves/EllipseCurve.js +102 -0
  399. package/src/extras/curves/LineCurve.js +36 -0
  400. package/src/extras/curves/LineCurve3.js +36 -0
  401. package/src/extras/curves/QuadraticBezierCurve.js +59 -0
  402. package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
  403. package/src/extras/curves/SplineCurve.js +48 -0
  404. package/src/extras/lib/earcut.js +685 -0
  405. package/src/geometries/BoxGeometry.js +38 -0
  406. package/src/geometries/CapsuleGeometry.js +34 -0
  407. package/src/geometries/CircleGeometry.js +40 -0
  408. package/src/geometries/ConeGeometry.js +38 -0
  409. package/src/geometries/CylinderGeometry.js +39 -0
  410. package/src/geometries/DodecahedronGeometry.js +32 -0
  411. package/src/geometries/EdgesGeometry.js +28 -0
  412. package/src/geometries/ExtrudeGeometry.js +112 -28
  413. package/src/geometries/IcosahedronGeometry.js +32 -0
  414. package/src/geometries/LatheGeometry.js +40 -0
  415. package/src/geometries/OctahedronGeometry.js +32 -0
  416. package/src/geometries/PlaneGeometry.js +34 -0
  417. package/src/geometries/PolyhedronGeometry.js +29 -0
  418. package/src/geometries/RingGeometry.js +36 -0
  419. package/src/geometries/ShapeGeometry.js +37 -0
  420. package/src/geometries/SphereGeometry.js +37 -0
  421. package/src/geometries/TetrahedronGeometry.js +32 -0
  422. package/src/geometries/TorusGeometry.js +35 -0
  423. package/src/geometries/TorusKnotGeometry.js +38 -0
  424. package/src/geometries/TubeGeometry.js +49 -0
  425. package/src/geometries/WireframeGeometry.js +32 -0
  426. package/src/helpers/ArrowHelper.js +60 -3
  427. package/src/helpers/AxesHelper.js +28 -0
  428. package/src/helpers/Box3Helper.js +28 -0
  429. package/src/helpers/BoxHelper.js +43 -7
  430. package/src/helpers/CameraHelper.js +45 -5
  431. package/src/helpers/DirectionalLightHelper.js +52 -0
  432. package/src/helpers/GridHelper.js +26 -0
  433. package/src/helpers/HemisphereLightHelper.js +39 -0
  434. package/src/helpers/PlaneHelper.js +33 -0
  435. package/src/helpers/PointLightHelper.js +43 -0
  436. package/src/helpers/PolarGridHelper.js +30 -0
  437. package/src/helpers/SkeletonHelper.js +39 -2
  438. package/src/helpers/SpotLightHelper.js +40 -0
  439. package/src/lights/AmbientLight.js +25 -0
  440. package/src/lights/DirectionalLight.js +57 -0
  441. package/src/lights/DirectionalLightShadow.js +15 -0
  442. package/src/lights/HemisphereLight.js +32 -0
  443. package/src/lights/Light.js +36 -0
  444. package/src/lights/LightProbe.js +43 -0
  445. package/src/lights/LightShadow.js +159 -0
  446. package/src/lights/PointLight.js +59 -0
  447. package/src/lights/PointLightShadow.js +21 -0
  448. package/src/lights/RectAreaLight.js +59 -0
  449. package/src/lights/SpotLight.js +102 -0
  450. package/src/lights/SpotLightShadow.js +22 -0
  451. package/src/lights/webgpu/IESSpotLight.js +21 -0
  452. package/src/loaders/AnimationLoader.js +31 -0
  453. package/src/loaders/AudioLoader.js +31 -0
  454. package/src/loaders/BufferGeometryLoader.js +34 -0
  455. package/src/loaders/Cache.js +45 -0
  456. package/src/loaders/CompressedTextureLoader.js +36 -3
  457. package/src/loaders/CubeTextureLoader.js +45 -0
  458. package/src/loaders/DataTextureLoader.js +44 -3
  459. package/src/loaders/FileLoader.js +57 -1
  460. package/src/loaders/ImageBitmapLoader.js +57 -0
  461. package/src/loaders/ImageLoader.js +30 -0
  462. package/src/loaders/Loader.js +130 -0
  463. package/src/loaders/LoaderUtils.js +18 -36
  464. package/src/loaders/LoadingManager.js +142 -0
  465. package/src/loaders/MaterialLoader.js +57 -0
  466. package/src/loaders/ObjectLoader.js +53 -0
  467. package/src/loaders/TextureLoader.js +33 -0
  468. package/src/loaders/nodes/NodeLoader.js +13 -9
  469. package/src/loaders/nodes/NodeMaterialLoader.js +6 -6
  470. package/src/loaders/nodes/NodeObjectLoader.js +12 -12
  471. package/src/materials/LineBasicMaterial.js +74 -1
  472. package/src/materials/LineDashedMaterial.js +52 -0
  473. package/src/materials/Material.js +481 -4
  474. package/src/materials/MeshBasicMaterial.js +165 -0
  475. package/src/materials/MeshDepthMaterial.js +93 -0
  476. package/src/materials/MeshDistanceMaterial.js +76 -0
  477. package/src/materials/MeshLambertMaterial.js +273 -0
  478. package/src/materials/MeshMatcapMaterial.js +142 -0
  479. package/src/materials/MeshNormalMaterial.js +113 -0
  480. package/src/materials/MeshPhongMaterial.js +288 -0
  481. package/src/materials/MeshPhysicalMaterial.js +292 -1
  482. package/src/materials/MeshStandardMaterial.js +297 -0
  483. package/src/materials/MeshToonMaterial.js +218 -0
  484. package/src/materials/PointsMaterial.js +89 -0
  485. package/src/materials/RawShaderMaterial.js +25 -0
  486. package/src/materials/ShaderMaterial.js +215 -6
  487. package/src/materials/ShadowMaterial.js +54 -0
  488. package/src/materials/SpriteMaterial.js +82 -0
  489. package/src/materials/nodes/Line2NodeMaterial.js +14 -14
  490. package/src/materials/nodes/LineBasicNodeMaterial.js +3 -3
  491. package/src/materials/nodes/LineDashedNodeMaterial.js +12 -12
  492. package/src/materials/nodes/MeshBasicNodeMaterial.js +7 -7
  493. package/src/materials/nodes/MeshLambertNodeMaterial.js +5 -5
  494. package/src/materials/nodes/MeshMatcapNodeMaterial.js +3 -3
  495. package/src/materials/nodes/MeshNormalNodeMaterial.js +8 -4
  496. package/src/materials/nodes/MeshPhongNodeMaterial.js +9 -9
  497. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +43 -43
  498. package/src/materials/nodes/MeshSSSNodeMaterial.js +18 -21
  499. package/src/materials/nodes/MeshStandardNodeMaterial.js +11 -11
  500. package/src/materials/nodes/MeshToonNodeMaterial.js +4 -4
  501. package/src/materials/nodes/NodeMaterial.js +66 -47
  502. package/src/materials/nodes/PointsNodeMaterial.js +6 -6
  503. package/src/materials/nodes/ShadowNodeMaterial.js +13 -4
  504. package/src/materials/nodes/SpriteNodeMaterial.js +17 -9
  505. package/src/materials/nodes/VolumeNodeMaterial.js +25 -128
  506. package/src/materials/nodes/manager/NodeMaterialObserver.js +8 -8
  507. package/src/math/Box2.js +177 -0
  508. package/src/math/Box3.js +243 -0
  509. package/src/math/Color.js +343 -0
  510. package/src/math/Cylindrical.js +65 -6
  511. package/src/math/Euler.js +137 -4
  512. package/src/math/Frustum.js +83 -0
  513. package/src/math/Interpolant.js +87 -8
  514. package/src/math/Line3.js +94 -0
  515. package/src/math/MathUtils.js +405 -19
  516. package/src/math/Matrix2.js +70 -0
  517. package/src/math/Matrix3.js +229 -4
  518. package/src/math/Matrix4.js +368 -3
  519. package/src/math/Plane.js +164 -2
  520. package/src/math/Quaternion.js +262 -6
  521. package/src/math/Ray.js +160 -0
  522. package/src/math/Sphere.js +147 -0
  523. package/src/math/Spherical.js +70 -8
  524. package/src/math/SphericalHarmonics3.js +112 -14
  525. package/src/math/Triangle.js +206 -2
  526. package/src/math/Vector2.js +388 -2
  527. package/src/math/Vector3.js +541 -4
  528. package/src/math/Vector4.js +393 -0
  529. package/src/math/interpolants/CubicInterpolant.js +10 -1
  530. package/src/math/interpolants/DiscreteInterpolant.js +10 -2
  531. package/src/math/interpolants/LinearInterpolant.js +13 -0
  532. package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
  533. package/src/nodes/Nodes.js +1 -0
  534. package/src/nodes/TSL.js +1 -0
  535. package/src/nodes/accessors/AccessorsUtils.js +4 -2
  536. package/src/nodes/accessors/Arrays.js +6 -6
  537. package/src/nodes/accessors/BatchNode.js +10 -11
  538. package/src/nodes/accessors/Bitangent.js +6 -2
  539. package/src/nodes/accessors/BufferAttributeNode.js +33 -31
  540. package/src/nodes/accessors/BufferNode.js +12 -13
  541. package/src/nodes/accessors/BuiltinNode.js +7 -8
  542. package/src/nodes/accessors/Camera.js +9 -2
  543. package/src/nodes/accessors/ClippingNode.js +4 -4
  544. package/src/nodes/accessors/CubeTextureNode.js +17 -19
  545. package/src/nodes/accessors/InstanceNode.js +10 -11
  546. package/src/nodes/accessors/InstancedMeshNode.js +3 -4
  547. package/src/nodes/accessors/Lights.js +12 -15
  548. package/src/nodes/accessors/MaterialNode.js +45 -9
  549. package/src/nodes/accessors/MaterialProperties.js +51 -2
  550. package/src/nodes/accessors/MaterialReferenceNode.js +11 -12
  551. package/src/nodes/accessors/ModelNode.js +20 -3
  552. package/src/nodes/accessors/ModelViewProjectionNode.js +1 -2
  553. package/src/nodes/accessors/MorphNode.js +29 -26
  554. package/src/nodes/accessors/Normal.js +11 -3
  555. package/src/nodes/accessors/Object3DNode.js +51 -16
  556. package/src/nodes/accessors/PointUVNode.js +2 -3
  557. package/src/nodes/accessors/Position.js +8 -3
  558. package/src/nodes/accessors/ReferenceBaseNode.js +29 -29
  559. package/src/nodes/accessors/ReferenceNode.js +31 -31
  560. package/src/nodes/accessors/ReflectVector.js +4 -2
  561. package/src/nodes/accessors/RendererReferenceNode.js +9 -10
  562. package/src/nodes/accessors/SceneNode.js +5 -4
  563. package/src/nodes/accessors/SkinningNode.js +53 -44
  564. package/src/nodes/accessors/StorageBufferNode.js +24 -24
  565. package/src/nodes/accessors/StorageTextureNode.js +17 -17
  566. package/src/nodes/accessors/Tangent.js +6 -2
  567. package/src/nodes/accessors/Texture3DNode.js +11 -12
  568. package/src/nodes/accessors/TextureBicubic.js +2 -3
  569. package/src/nodes/accessors/TextureNode.js +68 -47
  570. package/src/nodes/accessors/TextureSizeNode.js +5 -6
  571. package/src/nodes/accessors/UV.js +2 -3
  572. package/src/nodes/accessors/UniformArrayNode.js +24 -24
  573. package/src/nodes/accessors/UserDataNode.js +11 -12
  574. package/src/nodes/accessors/VelocityNode.js +4 -5
  575. package/src/nodes/accessors/VertexColorNode.js +7 -8
  576. package/src/nodes/code/CodeNode.js +15 -13
  577. package/src/nodes/code/ExpressionNode.js +8 -9
  578. package/src/nodes/code/FunctionCallNode.js +29 -9
  579. package/src/nodes/code/FunctionNode.js +1 -1
  580. package/src/nodes/code/ScriptableNode.js +27 -28
  581. package/src/nodes/code/ScriptableValueNode.js +11 -12
  582. package/src/nodes/core/ArrayNode.js +29 -12
  583. package/src/nodes/core/AssignNode.js +4 -5
  584. package/src/nodes/core/AttributeNode.js +8 -9
  585. package/src/nodes/core/BypassNode.js +3 -4
  586. package/src/nodes/core/CacheNode.js +5 -6
  587. package/src/nodes/core/ConstNode.js +4 -4
  588. package/src/nodes/core/ContextNode.js +9 -9
  589. package/src/nodes/core/IndexNode.js +8 -4
  590. package/src/nodes/core/InputNode.js +7 -7
  591. package/src/nodes/core/LightingModel.js +17 -17
  592. package/src/nodes/core/MRTNode.js +9 -10
  593. package/src/nodes/core/Node.js +49 -37
  594. package/src/nodes/core/NodeAttribute.js +7 -7
  595. package/src/nodes/core/NodeBuilder.js +248 -175
  596. package/src/nodes/core/NodeCache.js +4 -4
  597. package/src/nodes/core/NodeCode.js +6 -6
  598. package/src/nodes/core/NodeFrame.js +10 -10
  599. package/src/nodes/core/NodeFunction.js +8 -8
  600. package/src/nodes/core/NodeFunctionInput.js +8 -8
  601. package/src/nodes/core/NodeParser.js +1 -1
  602. package/src/nodes/core/NodeUniform.js +7 -7
  603. package/src/nodes/core/NodeUtils.js +22 -24
  604. package/src/nodes/core/NodeVar.js +9 -9
  605. package/src/nodes/core/NodeVarying.js +4 -4
  606. package/src/nodes/core/OutputStructNode.js +2 -3
  607. package/src/nodes/core/ParameterNode.js +6 -7
  608. package/src/nodes/core/PropertyNode.js +41 -13
  609. package/src/nodes/core/StackNode.js +11 -12
  610. package/src/nodes/core/StructNode.js +2 -3
  611. package/src/nodes/core/StructTypeNode.js +10 -6
  612. package/src/nodes/core/TempNode.js +3 -3
  613. package/src/nodes/core/UniformGroupNode.js +15 -12
  614. package/src/nodes/core/UniformNode.js +9 -10
  615. package/src/nodes/core/VarNode.js +14 -18
  616. package/src/nodes/core/VaryingNode.js +10 -10
  617. package/src/nodes/core/constants.js +0 -2
  618. package/src/nodes/display/BlendModes.js +21 -14
  619. package/src/nodes/display/BumpMapNode.js +5 -6
  620. package/src/nodes/display/ColorAdjustment.js +13 -9
  621. package/src/nodes/display/ColorSpaceFunctions.js +4 -4
  622. package/src/nodes/display/ColorSpaceNode.js +15 -12
  623. package/src/nodes/display/FrontFacingNode.js +3 -3
  624. package/src/nodes/display/NormalMapNode.js +5 -6
  625. package/src/nodes/display/PassNode.js +122 -35
  626. package/src/nodes/display/PosterizeNode.js +2 -3
  627. package/src/nodes/display/RenderOutputNode.js +8 -9
  628. package/src/nodes/display/ScreenNode.js +16 -7
  629. package/src/nodes/display/ToneMappingFunctions.js +12 -8
  630. package/src/nodes/display/ToneMappingNode.js +8 -8
  631. package/src/nodes/display/ToonOutlinePassNode.js +3 -4
  632. package/src/nodes/display/ViewportDepthNode.js +15 -7
  633. package/src/nodes/display/ViewportDepthTextureNode.js +6 -7
  634. package/src/nodes/display/ViewportSharedTextureNode.js +6 -7
  635. package/src/nodes/display/ViewportTextureNode.js +16 -16
  636. package/src/nodes/fog/Fog.js +5 -2
  637. package/src/nodes/functions/BSDF/LTC.js +45 -1
  638. package/src/nodes/functions/BasicLightingModel.js +5 -8
  639. package/src/nodes/functions/PhongLightingModel.js +6 -8
  640. package/src/nodes/functions/PhysicalLightingModel.js +40 -42
  641. package/src/nodes/functions/ShadowMaskModel.js +4 -4
  642. package/src/nodes/functions/ToonLightingModel.js +5 -6
  643. package/src/nodes/functions/VolumetricLightingModel.js +183 -0
  644. package/src/nodes/functions/material/getParallaxCorrectNormal.js +8 -8
  645. package/src/nodes/geometry/RangeNode.js +4 -5
  646. package/src/nodes/gpgpu/AtomicFunctionNode.js +33 -48
  647. package/src/nodes/gpgpu/BarrierNode.js +6 -4
  648. package/src/nodes/gpgpu/ComputeBuiltinNode.js +26 -31
  649. package/src/nodes/gpgpu/ComputeNode.js +43 -16
  650. package/src/nodes/gpgpu/WorkgroupInfoNode.js +16 -17
  651. package/src/nodes/lighting/AONode.js +2 -2
  652. package/src/nodes/lighting/AmbientLightNode.js +1 -1
  653. package/src/nodes/lighting/AnalyticLightNode.js +50 -9
  654. package/src/nodes/lighting/BasicLightMapNode.js +2 -2
  655. package/src/nodes/lighting/DirectionalLightNode.js +3 -12
  656. package/src/nodes/lighting/EnvironmentNode.js +5 -8
  657. package/src/nodes/lighting/HemisphereLightNode.js +1 -1
  658. package/src/nodes/lighting/LightProbeNode.js +1 -1
  659. package/src/nodes/lighting/LightUtils.js +1 -5
  660. package/src/nodes/lighting/LightingContextNode.js +10 -10
  661. package/src/nodes/lighting/LightingNode.js +1 -1
  662. package/src/nodes/lighting/LightsNode.js +68 -25
  663. package/src/nodes/lighting/PointLightNode.js +12 -27
  664. package/src/nodes/lighting/PointShadowNode.js +5 -6
  665. package/src/nodes/lighting/RectAreaLightNode.js +5 -10
  666. package/src/nodes/lighting/ShadowBaseNode.js +8 -9
  667. package/src/nodes/lighting/ShadowNode.js +28 -15
  668. package/src/nodes/lighting/SpotLightNode.js +8 -19
  669. package/src/nodes/math/ConditionalNode.js +26 -9
  670. package/src/nodes/math/Hash.js +2 -3
  671. package/src/nodes/math/MathNode.js +217 -150
  672. package/src/nodes/math/MathUtils.js +8 -6
  673. package/src/nodes/math/OperatorNode.js +198 -89
  674. package/src/nodes/math/TriNoise3D.js +2 -3
  675. package/src/nodes/parsers/GLSLNodeFunction.js +3 -3
  676. package/src/nodes/parsers/GLSLNodeParser.js +1 -1
  677. package/src/nodes/pmrem/PMREMNode.js +61 -37
  678. package/src/nodes/pmrem/PMREMUtils.js +2 -2
  679. package/src/nodes/procedural/Checker.js +2 -3
  680. package/src/nodes/shapes/Shapes.js +2 -3
  681. package/src/nodes/tsl/TSLBase.js +2 -1
  682. package/src/nodes/tsl/TSLCore.js +117 -19
  683. package/src/nodes/utils/ArrayElementNode.js +5 -3
  684. package/src/nodes/utils/ConvertNode.js +3 -3
  685. package/src/nodes/utils/CubeMapNode.js +7 -8
  686. package/src/nodes/utils/DebugNode.js +70 -0
  687. package/src/nodes/utils/Discard.js +5 -5
  688. package/src/nodes/utils/EquirectUVNode.js +3 -4
  689. package/src/nodes/utils/FlipNode.js +3 -3
  690. package/src/nodes/utils/FunctionOverloadingNode.js +3 -4
  691. package/src/nodes/utils/JoinNode.js +29 -4
  692. package/src/nodes/utils/LoopNode.js +67 -35
  693. package/src/nodes/utils/MatcapUVNode.js +1 -2
  694. package/src/nodes/utils/MaxMipLevelNode.js +4 -5
  695. package/src/nodes/utils/MemberNode.js +2 -2
  696. package/src/nodes/utils/Oscillators.js +8 -6
  697. package/src/nodes/utils/Packing.js +4 -4
  698. package/src/nodes/utils/PostProcessingUtils.js +6 -5
  699. package/src/nodes/utils/RTTNode.js +19 -19
  700. package/src/nodes/utils/ReflectorNode.js +35 -25
  701. package/src/nodes/utils/RemapNode.js +9 -9
  702. package/src/nodes/utils/RotateNode.js +3 -4
  703. package/src/nodes/utils/SetNode.js +3 -3
  704. package/src/nodes/utils/SplitNode.js +5 -5
  705. package/src/nodes/utils/SpriteSheetUVNode.js +4 -5
  706. package/src/nodes/utils/SpriteUtils.js +5 -6
  707. package/src/nodes/utils/StorageArrayElementNode.js +3 -4
  708. package/src/nodes/utils/Timer.js +9 -5
  709. package/src/nodes/utils/TriplanarTexturesNode.js +20 -20
  710. package/src/nodes/utils/UVUtils.js +4 -4
  711. package/src/nodes/utils/ViewportUtils.js +3 -4
  712. package/src/objects/BatchedMesh.js +319 -32
  713. package/src/objects/Bone.js +24 -0
  714. package/src/objects/ClippingGroup.js +4 -4
  715. package/src/objects/Group.js +24 -0
  716. package/src/objects/InstancedMesh.js +120 -2
  717. package/src/objects/LOD.js +99 -5
  718. package/src/objects/Line.js +82 -0
  719. package/src/objects/LineLoop.js +20 -0
  720. package/src/objects/LineSegments.js +18 -0
  721. package/src/objects/Mesh.js +75 -0
  722. package/src/objects/Points.js +60 -0
  723. package/src/objects/Skeleton.js +105 -0
  724. package/src/objects/SkinnedMesh.js +99 -5
  725. package/src/objects/Sprite.js +54 -0
  726. package/src/renderers/WebGL3DRenderTarget.js +25 -0
  727. package/src/renderers/WebGLArrayRenderTarget.js +25 -0
  728. package/src/renderers/WebGLCubeRenderTarget.js +39 -1
  729. package/src/renderers/WebGLRenderTarget.js +19 -0
  730. package/src/renderers/WebGLRenderer.js +622 -83
  731. package/src/renderers/common/Animation.js +6 -6
  732. package/src/renderers/common/Attributes.js +3 -3
  733. package/src/renderers/common/Backend.js +40 -31
  734. package/src/renderers/common/Background.js +4 -3
  735. package/src/renderers/common/BindGroup.js +5 -5
  736. package/src/renderers/common/Binding.js +4 -4
  737. package/src/renderers/common/Bindings.js +10 -0
  738. package/src/renderers/common/Buffer.js +5 -5
  739. package/src/renderers/common/BufferUtils.js +7 -9
  740. package/src/renderers/common/BundleGroup.js +6 -6
  741. package/src/renderers/common/ChainMap.js +3 -3
  742. package/src/renderers/common/ClippingContext.js +8 -8
  743. package/src/renderers/common/Color4.js +8 -8
  744. package/src/renderers/common/ComputePipeline.js +2 -2
  745. package/src/renderers/common/CubeRenderTarget.js +13 -0
  746. package/src/renderers/common/DataMap.js +2 -2
  747. package/src/renderers/common/Geometries.js +6 -6
  748. package/src/renderers/common/IndirectStorageBufferAttribute.js +3 -3
  749. package/src/renderers/common/Info.js +17 -17
  750. package/src/renderers/common/Pipeline.js +3 -3
  751. package/src/renderers/common/Pipelines.js +12 -12
  752. package/src/renderers/common/PostProcessing.js +13 -1
  753. package/src/renderers/common/ProgrammableStage.js +11 -11
  754. package/src/renderers/common/QuadMesh.js +5 -3
  755. package/src/renderers/common/RenderContext.js +24 -24
  756. package/src/renderers/common/RenderContexts.js +4 -4
  757. package/src/renderers/common/RenderList.js +16 -16
  758. package/src/renderers/common/RenderObject.js +27 -27
  759. package/src/renderers/common/RenderObjects.js +4 -4
  760. package/src/renderers/common/RenderPipeline.js +1 -1
  761. package/src/renderers/common/Renderer.js +272 -200
  762. package/src/renderers/common/RendererUtils.js +0 -2
  763. package/src/renderers/common/SampledTexture.js +20 -20
  764. package/src/renderers/common/Sampler.js +5 -5
  765. package/src/renderers/common/StorageBuffer.js +2 -2
  766. package/src/renderers/common/StorageBufferAttribute.js +4 -4
  767. package/src/renderers/common/StorageInstancedBufferAttribute.js +4 -4
  768. package/src/renderers/common/StorageTexture.js +6 -6
  769. package/src/renderers/common/Textures.js +6 -6
  770. package/src/renderers/common/TimestampQueryPool.js +66 -7
  771. package/src/renderers/common/Uniform.js +26 -26
  772. package/src/renderers/common/UniformBuffer.js +2 -2
  773. package/src/renderers/common/UniformsGroup.js +18 -18
  774. package/src/renderers/common/XRManager.js +369 -54
  775. package/src/renderers/common/XRRenderTarget.js +5 -5
  776. package/src/renderers/common/extras/PMREMGenerator.js +62 -37
  777. package/src/renderers/common/nodes/NodeBuilderState.js +7 -7
  778. package/src/renderers/common/nodes/NodeLibrary.js +13 -13
  779. package/src/renderers/common/nodes/NodeSampledTexture.js +12 -12
  780. package/src/renderers/common/nodes/NodeSampler.js +1 -1
  781. package/src/renderers/common/nodes/NodeStorageBuffer.js +1 -1
  782. package/src/renderers/common/nodes/NodeUniform.js +9 -9
  783. package/src/renderers/common/nodes/NodeUniformsGroup.js +3 -3
  784. package/src/renderers/common/nodes/Nodes.js +13 -13
  785. package/src/renderers/shaders/UniformsLib.js +1 -4
  786. package/src/renderers/shaders/UniformsUtils.js +1 -3
  787. package/src/renderers/webgl/WebGLBackground.js +4 -2
  788. package/src/renderers/webgl/WebGLState.js +19 -19
  789. package/src/renderers/webgl-fallback/WebGLBackend.js +163 -146
  790. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +4 -4
  791. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +89 -99
  792. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +2 -2
  793. package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +5 -5
  794. package/src/renderers/webgl-fallback/utils/WebGLState.js +97 -47
  795. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +79 -31
  796. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +37 -29
  797. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -3
  798. package/src/renderers/webgpu/WebGPUBackend.js +200 -119
  799. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +3 -13
  800. package/src/renderers/webgpu/WebGPURenderer.js +19 -13
  801. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +171 -178
  802. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -3
  803. package/src/renderers/webgpu/nodes/WGSLNodeParser.js +1 -1
  804. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +43 -9
  805. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +2 -2
  806. package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
  807. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +18 -10
  808. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +9 -9
  809. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +37 -37
  810. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +31 -18
  811. package/src/renderers/webgpu/utils/WebGPUUtils.js +9 -9
  812. package/src/renderers/webxr/WebXRController.js +87 -2
  813. package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
  814. package/src/renderers/webxr/WebXRManager.js +185 -9
  815. package/src/scenes/Fog.js +60 -0
  816. package/src/scenes/FogExp2.js +51 -0
  817. package/src/scenes/Scene.js +88 -0
  818. package/src/textures/CanvasTexture.js +28 -0
  819. package/src/textures/CompressedArrayTexture.js +57 -0
  820. package/src/textures/CompressedCubeTexture.js +29 -0
  821. package/src/textures/CompressedTexture.js +64 -6
  822. package/src/textures/CubeTexture.js +52 -4
  823. package/src/textures/Data3DTexture.js +77 -0
  824. package/src/textures/DataArrayTexture.js +93 -0
  825. package/src/textures/DataTexture.js +65 -0
  826. package/src/textures/DepthTexture.js +61 -9
  827. package/src/textures/FramebufferTexture.js +62 -0
  828. package/src/textures/Source.js +69 -0
  829. package/src/textures/Texture.js +362 -3
  830. package/src/textures/VideoFrameTexture.js +43 -6
  831. package/src/textures/VideoTexture.js +49 -4
  832. package/examples/jsm/geometries/ParametricGeometries.js +0 -254
@@ -20,10 +20,23 @@ import { BackSide, NoBlending, LinearFilter, LinearMipmapLinearFilter } from '..
20
20
  */
21
21
  class CubeRenderTarget extends WebGLCubeRenderTarget {
22
22
 
23
+ /**
24
+ * Constructs a new cube render target.
25
+ *
26
+ * @param {number} [size=1] - The size of the render target.
27
+ * @param {RenderTarget~Options} [options] - The configuration object.
28
+ */
23
29
  constructor( size = 1, options = {} ) {
24
30
 
25
31
  super( size, options );
26
32
 
33
+ /**
34
+ * This flag can be used for type testing.
35
+ *
36
+ * @type {boolean}
37
+ * @readonly
38
+ * @default true
39
+ */
27
40
  this.isCubeRenderTarget = true;
28
41
 
29
42
  }
@@ -46,7 +46,7 @@ class DataMap {
46
46
  * Deletes the dictionary for the given object.
47
47
  *
48
48
  * @param {Object} object - The object.
49
- * @return {Object?} The deleted dictionary.
49
+ * @return {?Object} The deleted dictionary.
50
50
  */
51
51
  delete( object ) {
52
52
 
@@ -68,7 +68,7 @@ class DataMap {
68
68
  * Returns `true` if the given object has a dictionary defined.
69
69
  *
70
70
  * @param {Object} object - The object to test.
71
- * @return {Boolean} Whether a dictionary is defined or not.
71
+ * @return {boolean} Whether a dictionary is defined or not.
72
72
  */
73
73
  has( object ) {
74
74
 
@@ -10,7 +10,7 @@ import { Uint16BufferAttribute, Uint32BufferAttribute } from '../../core/BufferA
10
10
  * @private
11
11
  * @function
12
12
  * @param {BufferGeometry} geometry - The geometry.
13
- * @return {Number} The version.
13
+ * @return {number} The version.
14
14
  */
15
15
  function getWireframeVersion( geometry ) {
16
16
 
@@ -113,7 +113,7 @@ class Geometries extends DataMap {
113
113
  * This Weak Map is used to make sure buffer attributes are
114
114
  * updated only once per render call.
115
115
  *
116
- * @type {WeakMap<BufferAttribute,Number>}
116
+ * @type {WeakMap<BufferAttribute,number>}
117
117
  */
118
118
  this.attributeCall = new WeakMap();
119
119
 
@@ -123,7 +123,7 @@ class Geometries extends DataMap {
123
123
  * Returns `true` if the given render object has an initialized geometry.
124
124
  *
125
125
  * @param {RenderObject} renderObject - The render object.
126
- * @return {Boolean} Whether if the given render object has an initialized geometry or not.
126
+ * @return {boolean} Whether if the given render object has an initialized geometry or not.
127
127
  */
128
128
  has( renderObject ) {
129
129
 
@@ -246,7 +246,7 @@ class Geometries extends DataMap {
246
246
  * Updates the given attribute.
247
247
  *
248
248
  * @param {BufferAttribute} attribute - The attribute to update.
249
- * @param {Number} type - The attribute type.
249
+ * @param {number} type - The attribute type.
250
250
  */
251
251
  updateAttribute( attribute, type ) {
252
252
 
@@ -288,7 +288,7 @@ class Geometries extends DataMap {
288
288
  * Returns the indirect buffer attribute of the given render object.
289
289
  *
290
290
  * @param {RenderObject} renderObject - The render object.
291
- * @return {BufferAttribute?} The indirect attribute. `null` if no indirect drawing is used.
291
+ * @return {?BufferAttribute} The indirect attribute. `null` if no indirect drawing is used.
292
292
  */
293
293
  getIndirect( renderObject ) {
294
294
 
@@ -301,7 +301,7 @@ class Geometries extends DataMap {
301
301
  * in a method to return a wireframe index if necessary.
302
302
  *
303
303
  * @param {RenderObject} renderObject - The render object.
304
- * @return {BufferAttribute?} The index. Returns `null` for non-indexed geometries.
304
+ * @return {?BufferAttribute} The index. Returns `null` for non-indexed geometries.
305
305
  */
306
306
  getIndex( renderObject ) {
307
307
 
@@ -14,9 +14,9 @@ class IndirectStorageBufferAttribute extends StorageBufferAttribute {
14
14
  /**
15
15
  * Constructs a new storage buffer attribute.
16
16
  *
17
- * @param {Number|Uint32Array} count - The item count. It is also valid to pass a `Uint32Array` as an argument.
17
+ * @param {number|Uint32Array} count - The item count. It is also valid to pass a `Uint32Array` as an argument.
18
18
  * The subsequent parameter is then obsolete.
19
- * @param {Number} itemSize - The item size.
19
+ * @param {number} itemSize - The item size.
20
20
  */
21
21
  constructor( count, itemSize ) {
22
22
 
@@ -25,7 +25,7 @@ class IndirectStorageBufferAttribute extends StorageBufferAttribute {
25
25
  /**
26
26
  * This flag can be used for type testing.
27
27
  *
28
- * @type {Boolean}
28
+ * @type {boolean}
29
29
  * @readonly
30
30
  * @default true
31
31
  */
@@ -16,7 +16,7 @@ class Info {
16
16
  * by apps which manage their own animation loop. They must
17
17
  * then call `renderer.info.reset()` once per frame manually.
18
18
  *
19
- * @type {Boolean}
19
+ * @type {boolean}
20
20
  * @default true
21
21
  */
22
22
  this.autoReset = true;
@@ -25,7 +25,7 @@ class Info {
25
25
  * The current frame ID. This ID is managed
26
26
  * by `NodeFrame`.
27
27
  *
28
- * @type {Number}
28
+ * @type {number}
29
29
  * @readonly
30
30
  * @default 0
31
31
  */
@@ -35,7 +35,7 @@ class Info {
35
35
  * The number of render calls since the
36
36
  * app has been started.
37
37
  *
38
- * @type {Number}
38
+ * @type {number}
39
39
  * @readonly
40
40
  * @default 0
41
41
  */
@@ -46,13 +46,13 @@ class Info {
46
46
  *
47
47
  * @type {Object}
48
48
  * @readonly
49
- * @property {Number} calls - The number of render calls since the app has been started.
50
- * @property {Number} frameCalls - The number of render calls of the current frame.
51
- * @property {Number} drawCalls - The number of draw calls of the current frame.
52
- * @property {Number} triangles - The number of rendered triangle primitives of the current frame.
53
- * @property {Number} points - The number of rendered point primitives of the current frame.
54
- * @property {Number} lines - The number of rendered line primitives of the current frame.
55
- * @property {Number} timestamp - The timestamp of the frame when using `renderer.renderAsync()`.
49
+ * @property {number} calls - The number of render calls since the app has been started.
50
+ * @property {number} frameCalls - The number of render calls of the current frame.
51
+ * @property {number} drawCalls - The number of draw calls of the current frame.
52
+ * @property {number} triangles - The number of rendered triangle primitives of the current frame.
53
+ * @property {number} points - The number of rendered point primitives of the current frame.
54
+ * @property {number} lines - The number of rendered line primitives of the current frame.
55
+ * @property {number} timestamp - The timestamp of the frame when using `renderer.renderAsync()`.
56
56
  */
57
57
  this.render = {
58
58
  calls: 0,
@@ -69,9 +69,9 @@ class Info {
69
69
  *
70
70
  * @type {Object}
71
71
  * @readonly
72
- * @property {Number} calls - The number of compute calls since the app has been started.
73
- * @property {Number} frameCalls - The number of compute calls of the current frame.
74
- * @property {Number} timestamp - The timestamp of the frame when using `renderer.computeAsync()`.
72
+ * @property {number} calls - The number of compute calls since the app has been started.
73
+ * @property {number} frameCalls - The number of compute calls of the current frame.
74
+ * @property {number} timestamp - The timestamp of the frame when using `renderer.computeAsync()`.
75
75
  */
76
76
  this.compute = {
77
77
  calls: 0,
@@ -84,8 +84,8 @@ class Info {
84
84
  *
85
85
  * @type {Object}
86
86
  * @readonly
87
- * @property {Number} geometries - The number of active geometries.
88
- * @property {Number} frameCalls - The number of active textures.
87
+ * @property {number} geometries - The number of active geometries.
88
+ * @property {number} frameCalls - The number of active textures.
89
89
  */
90
90
  this.memory = {
91
91
  geometries: 0,
@@ -98,8 +98,8 @@ class Info {
98
98
  * This method should be executed per draw call and updates the corresponding metrics.
99
99
  *
100
100
  * @param {Object3D} object - The 3D object that is going to be rendered.
101
- * @param {Number} count - The vertex or index count.
102
- * @param {Number} instanceCount - The instance count.
101
+ * @param {number} count - The vertex or index count.
102
+ * @param {number} instanceCount - The instance count.
103
103
  */
104
104
  update( object, count, instanceCount ) {
105
105
 
@@ -9,21 +9,21 @@ class Pipeline {
9
9
  /**
10
10
  * Constructs a new pipeline.
11
11
  *
12
- * @param {String} cacheKey - The pipeline's cache key.
12
+ * @param {string} cacheKey - The pipeline's cache key.
13
13
  */
14
14
  constructor( cacheKey ) {
15
15
 
16
16
  /**
17
17
  * The pipeline's cache key.
18
18
  *
19
- * @type {String}
19
+ * @type {string}
20
20
  */
21
21
  this.cacheKey = cacheKey;
22
22
 
23
23
  /**
24
24
  * How often the pipeline is currently in use.
25
25
  *
26
- * @type {Number}
26
+ * @type {number}
27
27
  * @default 0
28
28
  */
29
29
  this.usedTimes = 0;
@@ -40,7 +40,7 @@ class Pipelines extends DataMap {
40
40
  * This reference will be set inside the `Bindings`
41
41
  * constructor.
42
42
  *
43
- * @type {Bindings?}
43
+ * @type {?Bindings}
44
44
  * @default null
45
45
  */
46
46
  this.bindings = null;
@@ -49,7 +49,7 @@ class Pipelines extends DataMap {
49
49
  * Internal cache for maintaining pipelines.
50
50
  * The key of the map is a cache key, the value the pipeline.
51
51
  *
52
- * @type {Map<String,Pipeline>}
52
+ * @type {Map<string,Pipeline>}
53
53
  */
54
54
  this.caches = new Map();
55
55
 
@@ -58,7 +58,7 @@ class Pipelines extends DataMap {
58
58
  * fragment and compute) the programmable stage objects which
59
59
  * represent the actual shader code.
60
60
  *
61
- * @type {Object<String,Map>}
61
+ * @type {Object<string,Map>}
62
62
  */
63
63
  this.programs = {
64
64
  vertex: new Map(),
@@ -145,7 +145,7 @@ class Pipelines extends DataMap {
145
145
  * Returns a render pipeline for the given render object.
146
146
  *
147
147
  * @param {RenderObject} renderObject - The render object.
148
- * @param {Array<Promise>?} [promises=null] - An array of compilation promises which is only relevant in context of `Renderer.compileAsync()`.
148
+ * @param {?Array<Promise>} [promises=null] - An array of compilation promises which is only relevant in context of `Renderer.compileAsync()`.
149
149
  * @return {RenderPipeline} The render pipeline.
150
150
  */
151
151
  getForRender( renderObject, promises = null ) {
@@ -238,7 +238,7 @@ class Pipelines extends DataMap {
238
238
  * Deletes the pipeline for the given render object.
239
239
  *
240
240
  * @param {RenderObject} object - The render object.
241
- * @return {Object?} The deleted dictionary.
241
+ * @return {?Object} The deleted dictionary.
242
242
  */
243
243
  delete( object ) {
244
244
 
@@ -309,7 +309,7 @@ class Pipelines extends DataMap {
309
309
  * @private
310
310
  * @param {Node} computeNode - The compute node.
311
311
  * @param {ProgrammableStage} stageCompute - The programmable stage representing the compute shader.
312
- * @param {String} cacheKey - The cache key.
312
+ * @param {string} cacheKey - The cache key.
313
313
  * @param {Array<BindGroup>} bindings - The bindings.
314
314
  * @return {ComputePipeline} The compute pipeline.
315
315
  */
@@ -342,8 +342,8 @@ class Pipelines extends DataMap {
342
342
  * @param {RenderObject} renderObject - The render object.
343
343
  * @param {ProgrammableStage} stageVertex - The programmable stage representing the vertex shader.
344
344
  * @param {ProgrammableStage} stageFragment - The programmable stage representing the fragment shader.
345
- * @param {String} cacheKey - The cache key.
346
- * @param {Array<Promise>?} promises - An array of compilation promises which is only relevant in context of `Renderer.compileAsync()`.
345
+ * @param {string} cacheKey - The cache key.
346
+ * @param {?Array<Promise>} promises - An array of compilation promises which is only relevant in context of `Renderer.compileAsync()`.
347
347
  * @return {ComputePipeline} The compute pipeline.
348
348
  */
349
349
  _getRenderPipeline( renderObject, stageVertex, stageFragment, cacheKey, promises ) {
@@ -380,7 +380,7 @@ class Pipelines extends DataMap {
380
380
  * @private
381
381
  * @param {Node} computeNode - The compute node.
382
382
  * @param {ProgrammableStage} stageCompute - The programmable stage representing the compute shader.
383
- * @return {String} The cache key.
383
+ * @return {string} The cache key.
384
384
  */
385
385
  _getComputeCacheKey( computeNode, stageCompute ) {
386
386
 
@@ -395,7 +395,7 @@ class Pipelines extends DataMap {
395
395
  * @param {RenderObject} renderObject - The render object.
396
396
  * @param {ProgrammableStage} stageVertex - The programmable stage representing the vertex shader.
397
397
  * @param {ProgrammableStage} stageFragment - The programmable stage representing the fragment shader.
398
- * @return {String} The cache key.
398
+ * @return {string} The cache key.
399
399
  */
400
400
  _getRenderCacheKey( renderObject, stageVertex, stageFragment ) {
401
401
 
@@ -435,7 +435,7 @@ class Pipelines extends DataMap {
435
435
  *
436
436
  * @private
437
437
  * @param {Node} computeNode - The compute node.
438
- * @return {Boolean} Whether the compute pipeline for the given compute node requires an update or not.
438
+ * @return {boolean} Whether the compute pipeline for the given compute node requires an update or not.
439
439
  */
440
440
  _needsComputeUpdate( computeNode ) {
441
441
 
@@ -450,7 +450,7 @@ class Pipelines extends DataMap {
450
450
  *
451
451
  * @private
452
452
  * @param {RenderObject} renderObject - The render object.
453
- * @return {Boolean} Whether the render object for the given render object requires an update or not.
453
+ * @return {boolean} Whether the render object for the given render object requires an update or not.
454
454
  */
455
455
  _needsRenderUpdate( renderObject ) {
456
456
 
@@ -14,6 +14,8 @@ import QuadMesh from '../../renderers/common/QuadMesh.js';
14
14
  *
15
15
  * postProcessing.outputNode = scenePass;
16
16
  * ```
17
+ *
18
+ * Note: This module can only be used with `WebGPURenderer`.
17
19
  */
18
20
  class PostProcessing {
19
21
 
@@ -57,7 +59,7 @@ class PostProcessing {
57
59
  * const outputPass = renderOutput( scenePass );
58
60
  * ```
59
61
  *
60
- * @type {Boolean}
62
+ * @type {boolean}
61
63
  */
62
64
  this.outputColorTransform = true;
63
65
 
@@ -101,8 +103,13 @@ class PostProcessing {
101
103
 
102
104
  //
103
105
 
106
+ const currentXR = renderer.xr.enabled;
107
+ renderer.xr.enabled = false;
108
+
104
109
  this._quadMesh.render( renderer );
105
110
 
111
+ renderer.xr.enabled = currentXR;
112
+
106
113
  //
107
114
 
108
115
  renderer.toneMapping = toneMapping;
@@ -164,8 +171,13 @@ class PostProcessing {
164
171
 
165
172
  //
166
173
 
174
+ const currentXR = renderer.xr.enabled;
175
+ renderer.xr.enabled = false;
176
+
167
177
  await this._quadMesh.renderAsync( renderer );
168
178
 
179
+ renderer.xr.enabled = currentXR;
180
+
169
181
  //
170
182
 
171
183
  renderer.toneMapping = toneMapping;
@@ -12,32 +12,32 @@ class ProgrammableStage {
12
12
  /**
13
13
  * Constructs a new programmable stage.
14
14
  *
15
- * @param {String} code - The shader code.
15
+ * @param {string} code - The shader code.
16
16
  * @param {('vertex'|'fragment'|'compute')} stage - The type of stage.
17
- * @param {String} name - The name of the shader.
18
- * @param {Array<Object>?} [transforms=null] - The transforms (only relevant for compute stages with WebGL 2 which uses Transform Feedback).
19
- * @param {Array<Object>?} [attributes=null] - The attributes (only relevant for compute stages with WebGL 2 which uses Transform Feedback).
17
+ * @param {string} name - The name of the shader.
18
+ * @param {?Array<Object>} [transforms=null] - The transforms (only relevant for compute stages with WebGL 2 which uses Transform Feedback).
19
+ * @param {?Array<Object>} [attributes=null] - The attributes (only relevant for compute stages with WebGL 2 which uses Transform Feedback).
20
20
  */
21
21
  constructor( code, stage, name, transforms = null, attributes = null ) {
22
22
 
23
23
  /**
24
24
  * The id of the programmable stage.
25
25
  *
26
- * @type {Number}
26
+ * @type {number}
27
27
  */
28
28
  this.id = _id ++;
29
29
 
30
30
  /**
31
31
  * The shader code.
32
32
  *
33
- * @type {String}
33
+ * @type {string}
34
34
  */
35
35
  this.code = code;
36
36
 
37
37
  /**
38
38
  * The type of stage.
39
39
  *
40
- * @type {String}
40
+ * @type {string}
41
41
  */
42
42
  this.stage = stage;
43
43
 
@@ -45,28 +45,28 @@ class ProgrammableStage {
45
45
  * The name of the stage.
46
46
  * This is used for debugging purposes.
47
47
  *
48
- * @type {String}
48
+ * @type {string}
49
49
  */
50
50
  this.name = name;
51
51
 
52
52
  /**
53
53
  * The transforms (only relevant for compute stages with WebGL 2 which uses Transform Feedback).
54
54
  *
55
- * @type {Array<Object>?}
55
+ * @type {?Array<Object>}
56
56
  */
57
57
  this.transforms = transforms;
58
58
 
59
59
  /**
60
60
  * The attributes (only relevant for compute stages with WebGL 2 which uses Transform Feedback).
61
61
  *
62
- * @type {Array<Object>?}
62
+ * @type {?Array<Object>}
63
63
  */
64
64
  this.attributes = attributes;
65
65
 
66
66
  /**
67
67
  * How often the programmable stage is currently in use.
68
68
  *
69
- * @type {Number}
69
+ * @type {number}
70
70
  * @default 0
71
71
  */
72
72
  this.usedTimes = 0;
@@ -18,7 +18,7 @@ class QuadGeometry extends BufferGeometry {
18
18
  /**
19
19
  * Constructs a new quad geometry.
20
20
  *
21
- * @param {Boolean} [flipY=false] - Whether the uv coordinates should be flipped along the vertical axis or not.
21
+ * @param {boolean} [flipY=false] - Whether the uv coordinates should be flipped along the vertical axis or not.
22
22
  */
23
23
  constructor( flipY = false ) {
24
24
 
@@ -43,6 +43,8 @@ const _geometry = /*@__PURE__*/ new QuadGeometry();
43
43
  * The intended usage is to reuse a single quad mesh for rendering
44
44
  * subsequent passes by just reassigning the `material` reference.
45
45
  *
46
+ * Note: This module can only be used with `WebGPURenderer`.
47
+ *
46
48
  * @augments Mesh
47
49
  */
48
50
  class QuadMesh extends Mesh {
@@ -50,7 +52,7 @@ class QuadMesh extends Mesh {
50
52
  /**
51
53
  * Constructs a new quad mesh.
52
54
  *
53
- * @param {Material?} [material=null] - The material to render the quad mesh with.
55
+ * @param {?Material} [material=null] - The material to render the quad mesh with.
54
56
  */
55
57
  constructor( material = null ) {
56
58
 
@@ -67,7 +69,7 @@ class QuadMesh extends Mesh {
67
69
  /**
68
70
  * This flag can be used for type testing.
69
71
  *
70
- * @type {Boolean}
72
+ * @type {boolean}
71
73
  * @readonly
72
74
  * @default true
73
75
  */
@@ -21,14 +21,14 @@ class RenderContext {
21
21
  /**
22
22
  * The context's ID.
23
23
  *
24
- * @type {Number}
24
+ * @type {number}
25
25
  */
26
26
  this.id = _id ++;
27
27
 
28
28
  /**
29
29
  * Whether the current active framebuffer has a color attachment.
30
30
  *
31
- * @type {Boolean}
31
+ * @type {boolean}
32
32
  * @default true
33
33
  */
34
34
  this.color = true;
@@ -36,7 +36,7 @@ class RenderContext {
36
36
  /**
37
37
  * Whether the color attachment should be cleared or not.
38
38
  *
39
- * @type {Boolean}
39
+ * @type {boolean}
40
40
  * @default true
41
41
  */
42
42
  this.clearColor = true;
@@ -52,7 +52,7 @@ class RenderContext {
52
52
  /**
53
53
  * Whether the current active framebuffer has a depth attachment.
54
54
  *
55
- * @type {Boolean}
55
+ * @type {boolean}
56
56
  * @default true
57
57
  */
58
58
  this.depth = true;
@@ -60,7 +60,7 @@ class RenderContext {
60
60
  /**
61
61
  * Whether the depth attachment should be cleared or not.
62
62
  *
63
- * @type {Boolean}
63
+ * @type {boolean}
64
64
  * @default true
65
65
  */
66
66
  this.clearDepth = true;
@@ -68,7 +68,7 @@ class RenderContext {
68
68
  /**
69
69
  * The clear depth value.
70
70
  *
71
- * @type {Number}
71
+ * @type {number}
72
72
  * @default 1
73
73
  */
74
74
  this.clearDepthValue = 1;
@@ -76,7 +76,7 @@ class RenderContext {
76
76
  /**
77
77
  * Whether the current active framebuffer has a stencil attachment.
78
78
  *
79
- * @type {Boolean}
79
+ * @type {boolean}
80
80
  * @default false
81
81
  */
82
82
  this.stencil = false;
@@ -84,7 +84,7 @@ class RenderContext {
84
84
  /**
85
85
  * Whether the stencil attachment should be cleared or not.
86
86
  *
87
- * @type {Boolean}
87
+ * @type {boolean}
88
88
  * @default true
89
89
  */
90
90
  this.clearStencil = true;
@@ -92,7 +92,7 @@ class RenderContext {
92
92
  /**
93
93
  * The clear stencil value.
94
94
  *
95
- * @type {Number}
95
+ * @type {number}
96
96
  * @default 1
97
97
  */
98
98
  this.clearStencilValue = 1;
@@ -101,7 +101,7 @@ class RenderContext {
101
101
  * By default the viewport encloses the entire framebuffer If a smaller
102
102
  * viewport is manually defined, this property is to `true` by the renderer.
103
103
  *
104
- * @type {Boolean}
104
+ * @type {boolean}
105
105
  * @default false
106
106
  */
107
107
  this.viewport = false;
@@ -119,7 +119,7 @@ class RenderContext {
119
119
  * When the scissor test is active and scissor rectangle smaller than the
120
120
  * framebuffers dimensions, this property is to `true` by the renderer.
121
121
  *
122
- * @type {Boolean}
122
+ * @type {boolean}
123
123
  * @default false
124
124
  */
125
125
  this.scissor = false;
@@ -134,7 +134,7 @@ class RenderContext {
134
134
  /**
135
135
  * The active render target.
136
136
  *
137
- * @type {RenderTarget?}
137
+ * @type {?RenderTarget}
138
138
  * @default null
139
139
  */
140
140
  this.renderTarget = null;
@@ -143,7 +143,7 @@ class RenderContext {
143
143
  * The textures of the active render target.
144
144
  * `null` when no render target is set.
145
145
  *
146
- * @type {Array<Texture>?}
146
+ * @type {?Array<Texture>}
147
147
  * @default null
148
148
  */
149
149
  this.textures = null;
@@ -152,7 +152,7 @@ class RenderContext {
152
152
  * The depth texture of the active render target.
153
153
  * `null` when no render target is set.
154
154
  *
155
- * @type {DepthTexture?}
155
+ * @type {?DepthTexture}
156
156
  * @default null
157
157
  */
158
158
  this.depthTexture = null;
@@ -160,7 +160,7 @@ class RenderContext {
160
160
  /**
161
161
  * The active cube face.
162
162
  *
163
- * @type {Number}
163
+ * @type {number}
164
164
  * @default 0
165
165
  */
166
166
  this.activeCubeFace = 0;
@@ -168,7 +168,7 @@ class RenderContext {
168
168
  /**
169
169
  * The active mipmap level.
170
170
  *
171
- * @type {Number}
171
+ * @type {number}
172
172
  * @default 0
173
173
  */
174
174
  this.activeMipmapLevel = 0;
@@ -177,7 +177,7 @@ class RenderContext {
177
177
  * The number of MSAA samples. This value is always `1` when
178
178
  * MSAA isn't used.
179
179
  *
180
- * @type {Number}
180
+ * @type {number}
181
181
  * @default 1
182
182
  */
183
183
  this.sampleCount = 1;
@@ -185,7 +185,7 @@ class RenderContext {
185
185
  /**
186
186
  * The active render target's width in physical pixels.
187
187
  *
188
- * @type {Number}
188
+ * @type {number}
189
189
  * @default 0
190
190
  */
191
191
  this.width = 0;
@@ -193,7 +193,7 @@ class RenderContext {
193
193
  /**
194
194
  * The active render target's height in physical pixels.
195
195
  *
196
- * @type {Number}
196
+ * @type {number}
197
197
  * @default 0
198
198
  */
199
199
  this.height = 0;
@@ -201,7 +201,7 @@ class RenderContext {
201
201
  /**
202
202
  * The occlusion query count.
203
203
  *
204
- * @type {Number}
204
+ * @type {number}
205
205
  * @default 0
206
206
  */
207
207
  this.occlusionQueryCount = 0;
@@ -209,7 +209,7 @@ class RenderContext {
209
209
  /**
210
210
  * The current clipping context.
211
211
  *
212
- * @type {ClippingContext?}
212
+ * @type {?ClippingContext}
213
213
  * @default null
214
214
  */
215
215
  this.clippingContext = null;
@@ -217,7 +217,7 @@ class RenderContext {
217
217
  /**
218
218
  * This flag can be used for type testing.
219
219
  *
220
- * @type {Boolean}
220
+ * @type {boolean}
221
221
  * @readonly
222
222
  * @default true
223
223
  */
@@ -228,7 +228,7 @@ class RenderContext {
228
228
  /**
229
229
  * Returns the cache key of this render context.
230
230
  *
231
- * @return {Number} The cache key.
231
+ * @return {number} The cache key.
232
232
  */
233
233
  getCacheKey() {
234
234
 
@@ -244,7 +244,7 @@ class RenderContext {
244
244
  * configure the correct attachments in the respective backend.
245
245
  *
246
246
  * @param {RenderContext} renderContext - The render context.
247
- * @return {Number} The cache key.
247
+ * @return {number} The cache key.
248
248
  */
249
249
  export function getCacheKey( renderContext ) {
250
250