@plastic-software/three 0.175.13 → 0.178.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 (529) hide show
  1. package/README.md +3 -3
  2. package/build/three.cjs +7747 -6792
  3. package/build/three.core.js +7371 -6576
  4. package/build/three.core.min.js +1 -1
  5. package/build/three.module.js +190 -30
  6. package/build/three.module.min.js +1 -1
  7. package/build/three.tsl.js +19 -11
  8. package/build/three.tsl.min.js +1 -1
  9. package/build/three.webgpu.js +4989 -2235
  10. package/build/three.webgpu.min.js +1 -1
  11. package/build/three.webgpu.nodes.js +5082 -2469
  12. package/build/three.webgpu.nodes.min.js +1 -1
  13. package/examples/jsm/Addons.js +0 -1
  14. package/examples/jsm/animation/AnimationClipCreator.js +1 -0
  15. package/examples/jsm/animation/CCDIKSolver.js +6 -3
  16. package/examples/jsm/capabilities/WebGL.js +1 -27
  17. package/examples/jsm/capabilities/WebGPU.js +1 -0
  18. package/examples/jsm/controls/ArcballControls.js +15 -4
  19. package/examples/jsm/controls/DragControls.js +1 -0
  20. package/examples/jsm/controls/FirstPersonControls.js +1 -0
  21. package/examples/jsm/controls/FlyControls.js +1 -0
  22. package/examples/jsm/controls/MapControls.js +1 -0
  23. package/examples/jsm/controls/OrbitControls.js +1 -0
  24. package/examples/jsm/controls/PointerLockControls.js +5 -3
  25. package/examples/jsm/controls/TrackballControls.js +1 -0
  26. package/examples/jsm/controls/TransformControls.js +62 -14
  27. package/examples/jsm/csm/CSM.js +2 -0
  28. package/examples/jsm/csm/CSMFrustum.js +2 -0
  29. package/examples/jsm/csm/CSMHelper.js +1 -0
  30. package/examples/jsm/csm/CSMShader.js +4 -1
  31. package/examples/jsm/csm/CSMShadowNode.js +18 -4
  32. package/examples/jsm/curves/CurveExtras.js +14 -0
  33. package/examples/jsm/curves/NURBSCurve.js +1 -0
  34. package/examples/jsm/curves/NURBSSurface.js +2 -0
  35. package/examples/jsm/curves/NURBSUtils.js +4 -1
  36. package/examples/jsm/curves/NURBSVolume.js +2 -0
  37. package/examples/jsm/effects/AnaglyphEffect.js +2 -0
  38. package/examples/jsm/effects/AsciiEffect.js +2 -0
  39. package/examples/jsm/effects/OutlineEffect.js +2 -0
  40. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -0
  41. package/examples/jsm/effects/StereoEffect.js +2 -0
  42. package/examples/jsm/environments/DebugEnvironment.js +1 -0
  43. package/examples/jsm/environments/RoomEnvironment.js +49 -35
  44. package/examples/jsm/exporters/DRACOExporter.js +4 -2
  45. package/examples/jsm/exporters/EXRExporter.js +2 -0
  46. package/examples/jsm/exporters/GLTFExporter.js +7 -4
  47. package/examples/jsm/exporters/KTX2Exporter.js +2 -0
  48. package/examples/jsm/exporters/OBJExporter.js +3 -1
  49. package/examples/jsm/exporters/PLYExporter.js +4 -2
  50. package/examples/jsm/exporters/STLExporter.js +2 -0
  51. package/examples/jsm/exporters/USDZExporter.js +12 -10
  52. package/examples/jsm/geometries/BoxLineGeometry.js +1 -0
  53. package/examples/jsm/geometries/ConvexGeometry.js +1 -0
  54. package/examples/jsm/geometries/DecalGeometry.js +1 -0
  55. package/examples/jsm/geometries/ParametricFunctions.js +4 -1
  56. package/examples/jsm/geometries/ParametricGeometry.js +1 -0
  57. package/examples/jsm/geometries/RoundedBoxGeometry.js +2 -1
  58. package/examples/jsm/geometries/TeapotGeometry.js +1 -0
  59. package/examples/jsm/geometries/TextGeometry.js +1 -0
  60. package/examples/jsm/helpers/LightProbeHelper.js +1 -0
  61. package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -0
  62. package/examples/jsm/helpers/OctreeHelper.js +1 -0
  63. package/examples/jsm/helpers/PositionalAudioHelper.js +1 -0
  64. package/examples/jsm/helpers/RapierHelper.js +59 -0
  65. package/examples/jsm/helpers/RectAreaLightHelper.js +1 -0
  66. package/examples/jsm/helpers/TextureHelper.js +1 -0
  67. package/examples/jsm/helpers/TextureHelperGPU.js +5 -4
  68. package/examples/jsm/helpers/VertexNormalsHelper.js +1 -0
  69. package/examples/jsm/helpers/VertexTangentsHelper.js +1 -0
  70. package/examples/jsm/helpers/ViewHelper.js +1 -0
  71. package/examples/jsm/interactive/HTMLMesh.js +7 -0
  72. package/examples/jsm/interactive/InteractiveGroup.js +1 -0
  73. package/examples/jsm/interactive/SelectionBox.js +2 -0
  74. package/examples/jsm/interactive/SelectionHelper.js +2 -0
  75. package/examples/jsm/lighting/TiledLighting.js +1 -0
  76. package/examples/jsm/lights/LightProbeGenerator.js +1 -0
  77. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -0
  78. package/examples/jsm/lights/RectAreaLightUniformsLib.js +1 -0
  79. package/examples/jsm/lines/Line2.js +1 -0
  80. package/examples/jsm/lines/LineGeometry.js +1 -0
  81. package/examples/jsm/lines/LineMaterial.js +4 -4
  82. package/examples/jsm/lines/LineSegments2.js +1 -0
  83. package/examples/jsm/lines/LineSegmentsGeometry.js +1 -0
  84. package/examples/jsm/lines/Wireframe.js +1 -0
  85. package/examples/jsm/lines/WireframeGeometry2.js +1 -0
  86. package/examples/jsm/lines/webgpu/Line2.js +1 -0
  87. package/examples/jsm/lines/webgpu/LineSegments2.js +3 -1
  88. package/examples/jsm/lines/webgpu/Wireframe.js +1 -0
  89. package/examples/jsm/loaders/3DMLoader.js +1 -0
  90. package/examples/jsm/loaders/3MFLoader.js +1 -0
  91. package/examples/jsm/loaders/AMFLoader.js +1 -0
  92. package/examples/jsm/loaders/BVHLoader.js +1 -0
  93. package/examples/jsm/loaders/ColladaLoader.js +6 -5
  94. package/examples/jsm/loaders/DDSLoader.js +1 -0
  95. package/examples/jsm/loaders/DRACOLoader.js +2 -1
  96. package/examples/jsm/loaders/EXRLoader.js +1 -0
  97. package/examples/jsm/loaders/FBXLoader.js +25 -23
  98. package/examples/jsm/loaders/FontLoader.js +1 -0
  99. package/examples/jsm/loaders/GCodeLoader.js +1 -0
  100. package/examples/jsm/loaders/GLTFLoader.js +10 -82
  101. package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -0
  102. package/examples/jsm/loaders/IESLoader.js +1 -0
  103. package/examples/jsm/loaders/KMZLoader.js +1 -0
  104. package/examples/jsm/loaders/KTX2Loader.js +67 -26
  105. package/examples/jsm/loaders/KTXLoader.js +1 -0
  106. package/examples/jsm/loaders/LDrawLoader.js +55 -3
  107. package/examples/jsm/loaders/LUT3dlLoader.js +1 -0
  108. package/examples/jsm/loaders/LUTCubeLoader.js +1 -0
  109. package/examples/jsm/loaders/LUTImageLoader.js +1 -0
  110. package/examples/jsm/loaders/LWOLoader.js +1 -13
  111. package/examples/jsm/loaders/LottieLoader.js +15 -0
  112. package/examples/jsm/loaders/MD2Loader.js +1 -0
  113. package/examples/jsm/loaders/MDDLoader.js +1 -0
  114. package/examples/jsm/loaders/MTLLoader.js +4 -3
  115. package/examples/jsm/loaders/MaterialXLoader.js +1 -0
  116. package/examples/jsm/loaders/NRRDLoader.js +1 -0
  117. package/examples/jsm/loaders/OBJLoader.js +1 -0
  118. package/examples/jsm/loaders/PCDLoader.js +122 -19
  119. package/examples/jsm/loaders/PDBLoader.js +1 -0
  120. package/examples/jsm/loaders/PLYLoader.js +1 -0
  121. package/examples/jsm/loaders/PVRLoader.js +1 -0
  122. package/examples/jsm/loaders/RGBELoader.js +1 -0
  123. package/examples/jsm/loaders/RGBMLoader.js +1 -0
  124. package/examples/jsm/loaders/STLLoader.js +1 -0
  125. package/examples/jsm/loaders/SVGLoader.js +1 -0
  126. package/examples/jsm/loaders/TDSLoader.js +1 -0
  127. package/examples/jsm/loaders/TGALoader.js +1 -0
  128. package/examples/jsm/loaders/TIFFLoader.js +1 -0
  129. package/examples/jsm/loaders/TTFLoader.js +1 -0
  130. package/examples/jsm/loaders/USDZLoader.js +1 -0
  131. package/examples/jsm/loaders/UltraHDRLoader.js +1 -0
  132. package/examples/jsm/loaders/VOXLoader.js +1 -0
  133. package/examples/jsm/loaders/VRMLLoader.js +3 -2
  134. package/examples/jsm/loaders/VTKLoader.js +1 -0
  135. package/examples/jsm/loaders/XYZLoader.js +1 -0
  136. package/examples/jsm/loaders/lwo/IFFParser.js +74 -74
  137. package/examples/jsm/materials/LDrawConditionalLineMaterial.js +1 -0
  138. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -0
  139. package/examples/jsm/materials/MeshPostProcessingMaterial.js +1 -0
  140. package/examples/jsm/math/Capsule.js +2 -0
  141. package/examples/jsm/math/ColorConverter.js +1 -0
  142. package/examples/jsm/math/ConvexHull.js +2 -0
  143. package/examples/jsm/math/ImprovedNoise.js +19 -14
  144. package/examples/jsm/math/Lut.js +2 -0
  145. package/examples/jsm/math/MeshSurfaceSampler.js +2 -0
  146. package/examples/jsm/math/OBB.js +2 -0
  147. package/examples/jsm/math/Octree.js +20 -1
  148. package/examples/jsm/math/SimplexNoise.js +2 -0
  149. package/examples/jsm/misc/ConvexObjectBreaker.js +3 -1
  150. package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
  151. package/examples/jsm/misc/Gyroscope.js +1 -0
  152. package/examples/jsm/misc/MD2Character.js +2 -0
  153. package/examples/jsm/misc/MD2CharacterComplex.js +5 -3
  154. package/examples/jsm/misc/MorphAnimMesh.js +1 -0
  155. package/examples/jsm/misc/MorphBlendMesh.js +1 -0
  156. package/examples/jsm/misc/ProgressiveLightMap.js +2 -0
  157. package/examples/jsm/misc/ProgressiveLightMapGPU.js +2 -0
  158. package/examples/jsm/misc/RollerCoaster.js +5 -0
  159. package/examples/jsm/misc/Timer.js +2 -0
  160. package/examples/jsm/misc/TubePainter.js +1 -0
  161. package/examples/jsm/misc/Volume.js +2 -0
  162. package/examples/jsm/misc/VolumeSlice.js +1 -0
  163. package/examples/jsm/modifiers/CurveModifier.js +3 -0
  164. package/examples/jsm/modifiers/CurveModifierGPU.js +2 -0
  165. package/examples/jsm/modifiers/EdgeSplitModifier.js +2 -0
  166. package/examples/jsm/modifiers/SimplifyModifier.js +2 -0
  167. package/examples/jsm/modifiers/TessellateModifier.js +2 -0
  168. package/examples/jsm/objects/GroundedSkybox.js +1 -0
  169. package/examples/jsm/objects/Lensflare.js +3 -0
  170. package/examples/jsm/objects/LensflareMesh.js +1 -0
  171. package/examples/jsm/objects/MarchingCubes.js +2 -0
  172. package/examples/jsm/objects/Reflector.js +1 -0
  173. package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
  174. package/examples/jsm/objects/Refractor.js +1 -0
  175. package/examples/jsm/objects/ShadowMesh.js +1 -0
  176. package/examples/jsm/objects/Sky.js +2 -1
  177. package/examples/jsm/objects/SkyMesh.js +20 -17
  178. package/examples/jsm/objects/Water.js +1 -0
  179. package/examples/jsm/objects/Water2.js +1 -0
  180. package/examples/jsm/objects/Water2Mesh.js +3 -1
  181. package/examples/jsm/objects/WaterMesh.js +2 -1
  182. package/examples/jsm/physics/AmmoPhysics.js +1 -0
  183. package/examples/jsm/physics/JoltPhysics.js +1 -0
  184. package/examples/jsm/physics/RapierPhysics.js +139 -12
  185. package/examples/jsm/postprocessing/AfterimagePass.js +20 -2
  186. package/examples/jsm/postprocessing/BloomPass.js +2 -1
  187. package/examples/jsm/postprocessing/BokehPass.js +2 -1
  188. package/examples/jsm/postprocessing/ClearPass.js +1 -0
  189. package/examples/jsm/postprocessing/CubeTexturePass.js +1 -0
  190. package/examples/jsm/postprocessing/DotScreenPass.js +1 -0
  191. package/examples/jsm/postprocessing/EffectComposer.js +4 -2
  192. package/examples/jsm/postprocessing/FXAAPass.js +40 -0
  193. package/examples/jsm/postprocessing/FilmPass.js +1 -0
  194. package/examples/jsm/postprocessing/GTAOPass.js +4 -3
  195. package/examples/jsm/postprocessing/GlitchPass.js +2 -1
  196. package/examples/jsm/postprocessing/HalftonePass.js +2 -1
  197. package/examples/jsm/postprocessing/LUTPass.js +1 -0
  198. package/examples/jsm/postprocessing/MaskPass.js +1 -0
  199. package/examples/jsm/postprocessing/OutlinePass.js +5 -2
  200. package/examples/jsm/postprocessing/OutputPass.js +1 -0
  201. package/examples/jsm/postprocessing/Pass.js +3 -1
  202. package/examples/jsm/postprocessing/RenderPass.js +1 -0
  203. package/examples/jsm/postprocessing/RenderPixelatedPass.js +2 -1
  204. package/examples/jsm/postprocessing/RenderTransitionPass.js +4 -3
  205. package/examples/jsm/postprocessing/SAOPass.js +3 -2
  206. package/examples/jsm/postprocessing/SMAAPass.js +3 -2
  207. package/examples/jsm/postprocessing/SSAARenderPass.js +2 -1
  208. package/examples/jsm/postprocessing/SSAOPass.js +2 -1
  209. package/examples/jsm/postprocessing/SSRPass.js +4 -3
  210. package/examples/jsm/postprocessing/SavePass.js +2 -1
  211. package/examples/jsm/postprocessing/ShaderPass.js +1 -0
  212. package/examples/jsm/postprocessing/TAARenderPass.js +1 -0
  213. package/examples/jsm/postprocessing/TexturePass.js +1 -0
  214. package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -1
  215. package/examples/jsm/renderers/CSS2DRenderer.js +3 -0
  216. package/examples/jsm/renderers/CSS3DRenderer.js +4 -0
  217. package/examples/jsm/renderers/Projector.js +2 -0
  218. package/examples/jsm/renderers/SVGRenderer.js +3 -0
  219. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +4 -1
  220. package/examples/jsm/shaders/AfterimageShader.js +4 -1
  221. package/examples/jsm/shaders/BasicShader.js +4 -1
  222. package/examples/jsm/shaders/BleachBypassShader.js +4 -1
  223. package/examples/jsm/shaders/BlendShader.js +4 -1
  224. package/examples/jsm/shaders/BokehShader.js +4 -1
  225. package/examples/jsm/shaders/BokehShader2.js +4 -1
  226. package/examples/jsm/shaders/BrightnessContrastShader.js +4 -1
  227. package/examples/jsm/shaders/ColorCorrectionShader.js +4 -1
  228. package/examples/jsm/shaders/ColorifyShader.js +4 -1
  229. package/examples/jsm/shaders/ConvolutionShader.js +4 -1
  230. package/examples/jsm/shaders/CopyShader.js +4 -1
  231. package/examples/jsm/shaders/DOFMipMapShader.js +4 -1
  232. package/examples/jsm/shaders/DepthLimitedBlurShader.js +4 -1
  233. package/examples/jsm/shaders/DigitalGlitch.js +4 -1
  234. package/examples/jsm/shaders/DotScreenShader.js +4 -1
  235. package/examples/jsm/shaders/ExposureShader.js +4 -1
  236. package/examples/jsm/shaders/FXAAShader.js +4 -1
  237. package/examples/jsm/shaders/FilmShader.js +4 -1
  238. package/examples/jsm/shaders/FocusShader.js +4 -1
  239. package/examples/jsm/shaders/FreiChenShader.js +4 -1
  240. package/examples/jsm/shaders/GTAOShader.js +4 -1
  241. package/examples/jsm/shaders/GammaCorrectionShader.js +4 -1
  242. package/examples/jsm/shaders/GodRaysShader.js +4 -1
  243. package/examples/jsm/shaders/HalftoneShader.js +4 -1
  244. package/examples/jsm/shaders/HorizontalBlurShader.js +4 -1
  245. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +4 -1
  246. package/examples/jsm/shaders/HueSaturationShader.js +4 -1
  247. package/examples/jsm/shaders/KaleidoShader.js +4 -1
  248. package/examples/jsm/shaders/LuminosityHighPassShader.js +4 -1
  249. package/examples/jsm/shaders/LuminosityShader.js +4 -1
  250. package/examples/jsm/shaders/MirrorShader.js +4 -1
  251. package/examples/jsm/shaders/NormalMapShader.js +4 -1
  252. package/examples/jsm/shaders/OutputShader.js +4 -1
  253. package/examples/jsm/shaders/PoissonDenoiseShader.js +4 -1
  254. package/examples/jsm/shaders/RGBShiftShader.js +4 -1
  255. package/examples/jsm/shaders/SAOShader.js +4 -1
  256. package/examples/jsm/shaders/SMAAShader.js +1 -0
  257. package/examples/jsm/shaders/SSAOShader.js +4 -1
  258. package/examples/jsm/shaders/SSRShader.js +1 -0
  259. package/examples/jsm/shaders/SepiaShader.js +4 -1
  260. package/examples/jsm/shaders/SobelOperatorShader.js +4 -1
  261. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +4 -1
  262. package/examples/jsm/shaders/TechnicolorShader.js +4 -1
  263. package/examples/jsm/shaders/ToonShader.js +2 -1
  264. package/examples/jsm/shaders/TriangleBlurShader.js +4 -1
  265. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +4 -1
  266. package/examples/jsm/shaders/VelocityShader.js +4 -1
  267. package/examples/jsm/shaders/VerticalBlurShader.js +4 -1
  268. package/examples/jsm/shaders/VerticalTiltShiftShader.js +4 -1
  269. package/examples/jsm/shaders/VignetteShader.js +4 -1
  270. package/examples/jsm/shaders/VolumeShader.js +5 -2
  271. package/examples/jsm/shaders/WaterRefractionShader.js +4 -1
  272. package/examples/jsm/textures/FlakesTexture.js +2 -0
  273. package/examples/jsm/transpiler/AST.js +381 -30
  274. package/examples/jsm/transpiler/GLSLDecoder.js +226 -87
  275. package/examples/jsm/transpiler/Linker.js +327 -0
  276. package/examples/jsm/transpiler/TSLEncoder.js +234 -85
  277. package/examples/jsm/transpiler/Transpiler.js +19 -1
  278. package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
  279. package/examples/jsm/transpiler/WGSLEncoder.js +788 -0
  280. package/examples/jsm/tsl/display/AfterImageNode.js +2 -3
  281. package/examples/jsm/tsl/display/AnaglyphPassNode.js +1 -0
  282. package/examples/jsm/tsl/display/AnamorphicNode.js +5 -4
  283. package/examples/jsm/tsl/display/BloomNode.js +1 -0
  284. package/examples/jsm/tsl/display/ChromaticAberrationNode.js +206 -0
  285. package/examples/jsm/tsl/display/DenoiseNode.js +33 -33
  286. package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -0
  287. package/examples/jsm/tsl/display/DotScreenNode.js +1 -0
  288. package/examples/jsm/tsl/display/FXAANode.js +3 -2
  289. package/examples/jsm/tsl/display/FilmNode.js +1 -0
  290. package/examples/jsm/tsl/display/GTAONode.js +1 -0
  291. package/examples/jsm/tsl/display/GaussianBlurNode.js +4 -29
  292. package/examples/jsm/tsl/display/LensflareNode.js +1 -0
  293. package/examples/jsm/tsl/display/Lut3DNode.js +1 -0
  294. package/examples/jsm/tsl/display/OutlineNode.js +1 -0
  295. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +1 -0
  296. package/examples/jsm/tsl/display/PixelationPassNode.js +1 -0
  297. package/examples/jsm/tsl/display/RGBShiftNode.js +1 -0
  298. package/examples/jsm/tsl/display/SMAANode.js +9 -8
  299. package/examples/jsm/tsl/display/SSAAPassNode.js +5 -4
  300. package/examples/jsm/tsl/display/SSRNode.js +1 -0
  301. package/examples/jsm/tsl/display/SobelOperatorNode.js +1 -0
  302. package/examples/jsm/tsl/display/StereoCompositePassNode.js +1 -0
  303. package/examples/jsm/tsl/display/StereoPassNode.js +1 -0
  304. package/examples/jsm/tsl/display/TRAAPassNode.js +5 -4
  305. package/examples/jsm/tsl/display/TransitionNode.js +1 -0
  306. package/examples/jsm/tsl/display/hashBlur.js +28 -6
  307. package/examples/jsm/tsl/lighting/TiledLightsNode.js +4 -3
  308. package/examples/jsm/tsl/math/Bayer.js +4 -1
  309. package/examples/jsm/tsl/shadows/TileShadowNode.js +456 -0
  310. package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +212 -0
  311. package/examples/jsm/tsl/utils/Raymarching.js +6 -3
  312. package/examples/jsm/utils/BufferGeometryUtils.js +4 -1
  313. package/examples/jsm/utils/CameraUtils.js +4 -1
  314. package/examples/jsm/utils/GeometryCompressionUtils.js +4 -1
  315. package/examples/jsm/utils/GeometryUtils.js +4 -1
  316. package/examples/jsm/utils/LDrawUtils.js +2 -0
  317. package/examples/jsm/utils/SceneOptimizer.js +2 -0
  318. package/examples/jsm/utils/SceneUtils.js +4 -1
  319. package/examples/jsm/utils/ShadowMapViewer.js +2 -0
  320. package/examples/jsm/utils/ShadowMapViewerGPU.js +2 -0
  321. package/examples/jsm/utils/SkeletonUtils.js +4 -1
  322. package/examples/jsm/utils/SortUtils.js +4 -1
  323. package/examples/jsm/utils/UVsDebug.js +4 -1
  324. package/examples/jsm/utils/WebGLTextureUtils.js +4 -1
  325. package/examples/jsm/utils/WebGPUTextureUtils.js +4 -1
  326. package/examples/jsm/utils/WorkerPool.js +2 -0
  327. package/examples/jsm/webxr/ARButton.js +1 -0
  328. package/examples/jsm/webxr/OculusHandModel.js +1 -0
  329. package/examples/jsm/webxr/OculusHandPointerModel.js +1 -0
  330. package/examples/jsm/webxr/Text2D.js +4 -1
  331. package/examples/jsm/webxr/VRButton.js +1 -0
  332. package/examples/jsm/webxr/XRButton.js +1 -0
  333. package/examples/jsm/webxr/XRControllerModelFactory.js +2 -0
  334. package/examples/jsm/webxr/XREstimatedLight.js +1 -0
  335. package/examples/jsm/webxr/XRHandMeshModel.js +2 -0
  336. package/examples/jsm/webxr/XRHandModelFactory.js +2 -0
  337. package/examples/jsm/webxr/XRHandPrimitiveModel.js +2 -0
  338. package/examples/jsm/webxr/XRPlanes.js +1 -0
  339. package/package.json +6 -4
  340. package/src/Three.Core.js +1 -1
  341. package/src/Three.TSL.js +18 -10
  342. package/src/Three.WebGPU.Nodes.js +1 -0
  343. package/src/Three.WebGPU.js +3 -0
  344. package/src/audio/AudioListener.js +13 -10
  345. package/src/cameras/ArrayCamera.js +9 -1
  346. package/src/constants.js +47 -20
  347. package/src/core/BufferAttribute.js +3 -3
  348. package/src/core/BufferGeometry.js +2 -5
  349. package/src/core/Clock.js +2 -8
  350. package/src/core/GLBufferAttribute.js +13 -1
  351. package/src/core/Object3D.js +23 -22
  352. package/src/core/RenderTarget.js +65 -21
  353. package/src/core/RenderTarget3D.js +1 -0
  354. package/src/extras/TextureUtils.js +1 -5
  355. package/src/extras/core/Curve.js +1 -1
  356. package/src/extras/core/Path.js +22 -22
  357. package/src/geometries/CapsuleGeometry.js +167 -17
  358. package/src/geometries/ExtrudeGeometry.js +39 -29
  359. package/src/helpers/ArrowHelper.js +2 -2
  360. package/src/helpers/SkeletonHelper.js +1 -1
  361. package/src/lights/LightShadow.js +14 -0
  362. package/src/lights/SpotLightShadow.js +9 -1
  363. package/src/lights/webgpu/ProjectorLight.js +46 -0
  364. package/src/loaders/BufferGeometryLoader.js +1 -10
  365. package/src/loaders/FileLoader.js +2 -2
  366. package/src/loaders/ImageBitmapLoader.js +25 -9
  367. package/src/loaders/ImageLoader.js +55 -8
  368. package/src/loaders/ObjectLoader.js +44 -16
  369. package/src/loaders/nodes/NodeObjectLoader.js +2 -2
  370. package/src/materials/Material.js +1 -7
  371. package/src/materials/nodes/MeshBasicNodeMaterial.js +4 -3
  372. package/src/materials/nodes/MeshMatcapNodeMaterial.js +1 -1
  373. package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
  374. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -1
  375. package/src/materials/nodes/MeshSSSNodeMaterial.js +2 -2
  376. package/src/materials/nodes/NodeMaterial.js +105 -19
  377. package/src/materials/nodes/manager/NodeMaterialObserver.js +20 -2
  378. package/src/math/Box3.js +28 -0
  379. package/src/math/Color.js +7 -7
  380. package/src/math/ColorManagement.js +22 -3
  381. package/src/math/Frustum.js +6 -1
  382. package/src/math/FrustumArray.js +253 -0
  383. package/src/math/Quaternion.js +1 -1
  384. package/src/math/Ray.js +2 -0
  385. package/src/math/Sphere.js +28 -0
  386. package/src/nodes/Nodes.js +2 -3
  387. package/src/nodes/TSL.js +5 -3
  388. package/src/nodes/accessors/AccessorsUtils.js +7 -8
  389. package/src/nodes/accessors/Bitangent.js +54 -26
  390. package/src/nodes/accessors/Camera.js +31 -4
  391. package/src/nodes/accessors/CubeTextureNode.js +50 -2
  392. package/src/nodes/accessors/InstanceNode.js +5 -4
  393. package/src/nodes/accessors/Lights.js +2 -2
  394. package/src/nodes/accessors/MaterialNode.js +4 -0
  395. package/src/nodes/accessors/ModelNode.js +1 -1
  396. package/src/nodes/accessors/Normal.js +102 -16
  397. package/src/nodes/accessors/Object3DNode.js +7 -8
  398. package/src/nodes/accessors/Position.js +14 -4
  399. package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
  400. package/src/nodes/accessors/ReferenceNode.js +1 -1
  401. package/src/nodes/accessors/ReflectVector.js +3 -3
  402. package/src/nodes/accessors/SkinningNode.js +3 -2
  403. package/src/nodes/accessors/StorageBufferNode.js +25 -0
  404. package/src/nodes/accessors/StorageTextureNode.js +14 -3
  405. package/src/nodes/accessors/Tangent.js +25 -17
  406. package/src/nodes/accessors/TangentUtils.js +46 -0
  407. package/src/nodes/accessors/TextureBicubic.js +21 -3
  408. package/src/nodes/accessors/TextureNode.js +59 -8
  409. package/src/nodes/accessors/UniformArrayNode.js +0 -16
  410. package/src/nodes/accessors/VelocityNode.js +1 -0
  411. package/src/nodes/accessors/VertexColorNode.js +4 -4
  412. package/src/nodes/code/CodeNode.js +8 -11
  413. package/src/nodes/core/AssignNode.js +27 -5
  414. package/src/nodes/core/AttributeNode.js +2 -2
  415. package/src/nodes/core/ContextNode.js +7 -3
  416. package/src/nodes/core/Node.js +69 -20
  417. package/src/nodes/core/NodeBuilder.js +248 -29
  418. package/src/nodes/core/NodeUtils.js +42 -0
  419. package/src/nodes/core/NodeVarying.js +19 -1
  420. package/src/nodes/core/PropertyNode.js +8 -12
  421. package/src/nodes/core/StackNode.js +129 -26
  422. package/src/nodes/core/StructTypeNode.js +26 -4
  423. package/src/nodes/core/SubBuildNode.js +89 -0
  424. package/src/nodes/core/VarNode.js +11 -2
  425. package/src/nodes/core/VaryingNode.js +45 -24
  426. package/src/nodes/display/BlendModes.js +42 -1
  427. package/src/nodes/display/ColorSpaceNode.js +4 -27
  428. package/src/nodes/display/FrontFacingNode.js +34 -2
  429. package/src/nodes/display/NormalMapNode.js +19 -50
  430. package/src/nodes/display/PassNode.js +18 -19
  431. package/src/nodes/display/ScreenNode.js +0 -26
  432. package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
  433. package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
  434. package/src/nodes/functions/PhongLightingModel.js +3 -3
  435. package/src/nodes/functions/PhysicalLightingModel.js +14 -14
  436. package/src/nodes/functions/ShadowMaskModel.js +5 -1
  437. package/src/nodes/functions/material/getGeometryRoughness.js +2 -2
  438. package/src/nodes/functions/material/getParallaxCorrectNormal.js +1 -1
  439. package/src/nodes/gpgpu/AtomicFunctionNode.js +28 -10
  440. package/src/nodes/gpgpu/BarrierNode.js +3 -3
  441. package/src/nodes/gpgpu/ComputeNode.js +1 -1
  442. package/src/nodes/lighting/AnalyticLightNode.js +7 -13
  443. package/src/nodes/lighting/EnvironmentNode.js +5 -5
  444. package/src/nodes/lighting/HemisphereLightNode.js +2 -2
  445. package/src/nodes/lighting/IESSpotLightNode.js +2 -1
  446. package/src/nodes/lighting/LightsNode.js +29 -11
  447. package/src/nodes/lighting/ProjectorLightNode.js +78 -0
  448. package/src/nodes/lighting/ShadowBaseNode.js +1 -12
  449. package/src/nodes/lighting/ShadowFilterNode.js +274 -0
  450. package/src/nodes/lighting/ShadowNode.js +174 -242
  451. package/src/nodes/lighting/SpotLightNode.js +44 -7
  452. package/src/nodes/materialx/lib/mx_noise.js +1 -1
  453. package/src/nodes/math/ConditionalNode.js +0 -19
  454. package/src/nodes/math/MathNode.js +68 -21
  455. package/src/nodes/math/OperatorNode.js +108 -98
  456. package/src/nodes/shapes/Shapes.js +5 -4
  457. package/src/nodes/tsl/TSLBase.js +1 -0
  458. package/src/nodes/tsl/TSLCore.js +160 -65
  459. package/src/nodes/utils/DebugNode.js +15 -3
  460. package/src/nodes/utils/Discard.js +2 -2
  461. package/src/nodes/utils/EquirectUV.js +27 -0
  462. package/src/nodes/utils/LoopNode.js +64 -34
  463. package/src/nodes/utils/MatcapUV.js +22 -0
  464. package/src/nodes/utils/RTTNode.js +13 -5
  465. package/src/nodes/utils/ReflectorNode.js +77 -7
  466. package/src/nodes/utils/SampleNode.js +81 -0
  467. package/src/nodes/utils/TriplanarTextures.js +65 -0
  468. package/src/objects/BatchedMesh.js +16 -4
  469. package/src/objects/Mesh.js +9 -0
  470. package/src/objects/Skeleton.js +1 -1
  471. package/src/objects/Sprite.js +9 -0
  472. package/src/renderers/WebGL3DRenderTarget.js +1 -0
  473. package/src/renderers/WebGLArrayRenderTarget.js +1 -0
  474. package/src/renderers/WebGLCubeRenderTarget.js +2 -4
  475. package/src/renderers/WebGLRenderer.js +25 -11
  476. package/src/renderers/common/Animation.js +2 -2
  477. package/src/renderers/common/Background.js +13 -2
  478. package/src/renderers/common/CubeRenderTarget.js +1 -1
  479. package/src/renderers/common/RenderList.js +0 -4
  480. package/src/renderers/common/RenderObject.js +80 -4
  481. package/src/renderers/common/Renderer.js +116 -8
  482. package/src/renderers/common/Storage3DTexture.js +79 -0
  483. package/src/renderers/common/StorageArrayTexture.js +63 -0
  484. package/src/renderers/common/Textures.js +15 -21
  485. package/src/renderers/common/TimestampQueryPool.js +1 -0
  486. package/src/renderers/common/Uniform.js +1 -1
  487. package/src/renderers/common/UniformsGroup.js +14 -18
  488. package/src/renderers/common/XRManager.js +157 -27
  489. package/src/renderers/common/XRRenderTarget.js +21 -4
  490. package/src/renderers/common/extras/PMREMGenerator.js +30 -23
  491. package/src/renderers/common/nodes/Nodes.js +13 -3
  492. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +1 -1
  493. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +1 -1
  494. package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
  495. package/src/renderers/webgl/WebGLAttributes.js +4 -0
  496. package/src/renderers/webgl/WebGLPrograms.js +4 -2
  497. package/src/renderers/webgl/WebGLShadowMap.js +3 -2
  498. package/src/renderers/webgl/WebGLState.js +4 -4
  499. package/src/renderers/webgl/WebGLTextures.js +144 -4
  500. package/src/renderers/webgl/WebGLUtils.js +1 -3
  501. package/src/renderers/webgl-fallback/WebGLBackend.js +244 -87
  502. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +73 -7
  503. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +4 -0
  504. package/src/renderers/webgl-fallback/utils/WebGLConstants.js +1 -0
  505. package/src/renderers/webgl-fallback/utils/WebGLState.js +4 -4
  506. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +44 -29
  507. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +22 -21
  508. package/src/renderers/webgpu/WebGPUBackend.js +451 -128
  509. package/src/renderers/webgpu/WebGPURenderer.js +7 -0
  510. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +4 -1
  511. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +4 -1
  512. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +86 -33
  513. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -0
  514. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +9 -1
  515. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +28 -5
  516. package/src/renderers/webgpu/utils/WebGPUConstants.js +8 -2
  517. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +38 -8
  518. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +45 -50
  519. package/src/renderers/webxr/WebXRController.js +1 -1
  520. package/src/renderers/webxr/WebXRManager.js +2 -1
  521. package/src/textures/DepthTexture.js +6 -10
  522. package/src/textures/Source.js +22 -0
  523. package/src/textures/Texture.js +118 -1
  524. package/src/textures/VideoTexture.js +1 -1
  525. package/examples/jsm/effects/PeppersGhostEffect.js +0 -172
  526. package/src/core/RenderTargetArray.js +0 -40
  527. package/src/nodes/utils/EquirectUVNode.js +0 -65
  528. package/src/nodes/utils/MatcapUVNode.js +0 -49
  529. package/src/nodes/utils/TriplanarTexturesNode.js +0 -148
@@ -1,3 +1,7 @@
1
+ import { MathUtils } from 'three';
2
+
3
+ const { lerp } = MathUtils;
4
+
1
5
  const _p = [ 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10,
2
6
  23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87,
3
7
  174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211,
@@ -21,12 +25,6 @@ function fade( t ) {
21
25
 
22
26
  }
23
27
 
24
- function lerp( t, a, b ) {
25
-
26
- return a + t * ( b - a );
27
-
28
- }
29
-
30
28
  function grad( hash, x, y, z ) {
31
29
 
32
30
  const h = hash & 15;
@@ -40,6 +38,8 @@ function grad( hash, x, y, z ) {
40
38
  *
41
39
  * The code is based on [IMPROVED NOISE]{@link https://cs.nyu.edu/~perlin/noise/}
42
40
  * by Ken Perlin, 2002.
41
+ *
42
+ * @three_import import { ImprovedNoise } from 'three/addons/math/ImprovedNoise.js';
43
43
  */
44
44
  class ImprovedNoise {
45
45
 
@@ -67,14 +67,19 @@ class ImprovedNoise {
67
67
 
68
68
  const A = _p[ X ] + Y, AA = _p[ A ] + Z, AB = _p[ A + 1 ] + Z, B = _p[ X + 1 ] + Y, BA = _p[ B ] + Z, BB = _p[ B + 1 ] + Z;
69
69
 
70
- return lerp( w, lerp( v, lerp( u, grad( _p[ AA ], x, y, z ),
71
- grad( _p[ BA ], xMinus1, y, z ) ),
72
- lerp( u, grad( _p[ AB ], x, yMinus1, z ),
73
- grad( _p[ BB ], xMinus1, yMinus1, z ) ) ),
74
- lerp( v, lerp( u, grad( _p[ AA + 1 ], x, y, zMinus1 ),
75
- grad( _p[ BA + 1 ], xMinus1, y, zMinus1 ) ),
76
- lerp( u, grad( _p[ AB + 1 ], x, yMinus1, zMinus1 ),
77
- grad( _p[ BB + 1 ], xMinus1, yMinus1, zMinus1 ) ) ) );
70
+ return lerp(
71
+ lerp(
72
+ lerp( grad( _p[ AA ], x, y, z ), grad( _p[ BA ], xMinus1, y, z ), u ),
73
+ lerp( grad( _p[ AB ], x, yMinus1, z ), grad( _p[ BB ], xMinus1, yMinus1, z ), u ),
74
+ v
75
+ ),
76
+ lerp(
77
+ lerp( grad( _p[ AA + 1 ], x, y, zMinus1 ), grad( _p[ BA + 1 ], xMinus1, y, zMinus1 ), u ),
78
+ lerp( grad( _p[ AB + 1 ], x, yMinus1, zMinus1 ), grad( _p[ BB + 1 ], xMinus1, yMinus1, zMinus1 ), u ),
79
+ v
80
+ ),
81
+ w
82
+ );
78
83
 
79
84
  }
80
85
 
@@ -12,6 +12,8 @@ import {
12
12
  * const lut = new Lut( 'rainbow', 512 );
13
13
  * const color = lut.getColor( 0.5 );
14
14
  * ```
15
+ *
16
+ * @three_import import { Lut } from 'three/addons/math/Lut.js';
15
17
  */
16
18
  class Lut {
17
19
 
@@ -40,6 +40,8 @@ const _uva = new Vector2(), _uvb = new Vector2(), _uvc = new Vector2();
40
40
  *
41
41
  * scene.add( mesh );
42
42
  * ```
43
+ *
44
+ * @three_import import { MeshSurfaceSampler } from 'three/addons/math/MeshSurfaceSampler.js';
43
45
  */
44
46
  class MeshSurfaceSampler {
45
47
 
@@ -39,6 +39,8 @@ const localRay = new Ray();
39
39
 
40
40
  /**
41
41
  * Represents an oriented bounding box (OBB) in 3D space.
42
+ *
43
+ * @three_import import { OBB } from 'three/addons/math/OBB.js';
42
44
  */
43
45
  class OBB {
44
46
 
@@ -96,6 +96,8 @@ function lineToLineClosestPoints( line1, line2, target1 = null, target2 = null )
96
96
  * const octree = new Octree().fromGraphNode( scene );
97
97
  * const result = octree.capsuleIntersect( playerCollider ); // collision detection
98
98
  * ```
99
+ *
100
+ * @three_import import { Octree } from 'three/addons/math/Octree.js';
99
101
  */
100
102
  class Octree {
101
103
 
@@ -128,6 +130,23 @@ class Octree {
128
130
  */
129
131
  this.layers = new Layers();
130
132
 
133
+ /**
134
+ * The number of triangles a leaf can store before it is split.
135
+ *
136
+ * @type {number}
137
+ * @default 8
138
+ */
139
+ this.trianglesPerLeaf = 8;
140
+
141
+ /**
142
+ * The maximum level of the Octree. It defines the maximum
143
+ * hierarchical depth of the data structure.
144
+ *
145
+ * @type {number}
146
+ * @default 16
147
+ */
148
+ this.maxLevel = 16;
149
+
131
150
  // private
132
151
 
133
152
  this.subTrees = [];
@@ -229,7 +248,7 @@ class Octree {
229
248
 
230
249
  const len = subTrees[ i ].triangles.length;
231
250
 
232
- if ( len > 8 && level < 16 ) {
251
+ if ( len > this.trianglesPerLeaf && level < this.maxLevel ) {
233
252
 
234
253
  subTrees[ i ].split( level + 1 );
235
254
 
@@ -3,6 +3,8 @@
3
3
  *
4
4
  * The code is based on [Simplex noise demystified]{@link https://web.archive.org/web/20210210162332/http://staffwww.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf}
5
5
  * by Stefan Gustavson, 2005.
6
+ *
7
+ * @three_import import { SimplexNoise } from 'three/addons/math/SimplexNoise.js';
6
8
  */
7
9
  class SimplexNoise {
8
10
 
@@ -24,7 +24,9 @@ const _v1 = new Vector3();
24
24
  *
25
25
  * Note: This lib adds member variables to object's userData member (see prepareBreakableObject function)
26
26
  * Use with caution and read the code when using with other libs.
27
- */
27
+ *
28
+ * @three_import import { ConvexObjectBreaker } from 'three/addons/misc/ConvexObjectBreaker.js';
29
+ */
28
30
  class ConvexObjectBreaker {
29
31
 
30
32
  /**
@@ -98,6 +98,8 @@ import { FullScreenQuad } from '../postprocessing/Pass.js';
98
98
  * gpuCompute.doRenderTarget( myFilter1, myRenderTarget );
99
99
  * gpuCompute.doRenderTarget( myFilter2, outputRenderTarget );
100
100
  * ```
101
+ *
102
+ * @three_import import { GPUComputationRenderer } from 'three/addons/misc/GPUComputationRenderer.js';
101
103
  */
102
104
  class GPUComputationRenderer {
103
105
 
@@ -19,6 +19,7 @@ const _scaleWorld = new Vector3();
19
19
  * respect to the world.
20
20
  *
21
21
  * @augments Object3D
22
+ * @three_import import { Gyroscope } from 'three/addons/misc/Gyroscope.js';
22
23
  */
23
24
  class Gyroscope extends Object3D {
24
25
 
@@ -13,6 +13,8 @@ import { MD2Loader } from '../loaders/MD2Loader.js';
13
13
  /**
14
14
  * This class represents a management component for animated MD2
15
15
  * character assets.
16
+ *
17
+ * @three_import import { MD2Character } from 'three/addons/misc/MD2Character.js';
16
18
  */
17
19
  class MD2Character {
18
20
 
@@ -13,6 +13,8 @@ import { MorphBlendMesh } from '../misc/MorphBlendMesh.js';
13
13
  /**
14
14
  * This class represents a management component for animated MD2
15
15
  * character assets. It provides a larger API compared to {@link MD2Character}.
16
+ *
17
+ * @three_import import { MD2CharacterComplex } from 'three/addons/misc/MD2CharacterComplex.js';
16
18
  */
17
19
  class MD2CharacterComplex {
18
20
 
@@ -78,12 +80,12 @@ class MD2CharacterComplex {
78
80
  this.backAcceleration = 600;
79
81
 
80
82
  /**
81
- * The character's front decceleration.
83
+ * The character's front deceleration.
82
84
  *
83
85
  * @type {number}
84
86
  * @default 600
85
87
  */
86
- this.frontDecceleration = 600;
88
+ this.frontDeceleration = 600;
87
89
 
88
90
  /**
89
91
  * The character's angular speed.
@@ -684,7 +686,7 @@ class MD2CharacterComplex {
684
686
  if ( this.speed > 0 ) {
685
687
 
686
688
  const k = exponentialEaseOut( this.speed / this.maxSpeed );
687
- this.speed = MathUtils.clamp( this.speed - k * delta * this.frontDecceleration, 0, this.maxSpeed );
689
+ this.speed = MathUtils.clamp( this.speed - k * delta * this.frontDeceleration, 0, this.maxSpeed );
688
690
 
689
691
  } else {
690
692
 
@@ -10,6 +10,7 @@ import {
10
10
  * without any transitions or fading between animation changes.
11
11
  *
12
12
  * @augments Mesh
13
+ * @three_import import { MorphAnimMesh } from 'three/addons/misc/MorphAnimMesh.js';
13
14
  */
14
15
  class MorphAnimMesh extends Mesh {
15
16
 
@@ -10,6 +10,7 @@ import {
10
10
  * fading options.
11
11
  *
12
12
  * @augments Mesh
13
+ * @three_import import { MorphBlendMesh } from 'three/addons/misc/MorphBlendMesh.js';
13
14
  */
14
15
  class MorphBlendMesh extends Mesh {
15
16
 
@@ -16,6 +16,8 @@ import { potpack } from '../libs/potpack.module.js';
16
16
  *
17
17
  * This class can only be used with {@link WebGLRenderer}.
18
18
  * When using {@link WebGPURenderer}, import from `ProgressiveLightMapGPU.js`.
19
+ *
20
+ * @three_import import { ProgressiveLightMap } from 'three/addons/misc/ProgressiveLightMap.js';
19
21
  */
20
22
  class ProgressiveLightMap {
21
23
 
@@ -18,6 +18,8 @@ import { potpack } from '../libs/potpack.module.js';
18
18
  *
19
19
  * This class can only be used with {@link WebGPURenderer}.
20
20
  * When using {@link WebGLRenderer}, import from `ProgressiveLightMap.js`.
21
+ *
22
+ * @three_import import { ProgressiveLightMap } from 'three/addons/misc/ProgressiveLightMapGPU.js';
21
23
  */
22
24
  class ProgressiveLightMap {
23
25
 
@@ -12,6 +12,7 @@ import {
12
12
  * A procedural roller coaster geometry.
13
13
  *
14
14
  * @augments BufferGeometry
15
+ * @three_import import { RollerCoasterGeometry } from 'three/addons/misc/RollerCoaster.js';
15
16
  */
16
17
  class RollerCoasterGeometry extends BufferGeometry {
17
18
 
@@ -237,6 +238,7 @@ class RollerCoasterGeometry extends BufferGeometry {
237
238
  * A procedural roller coaster lifters geometry.
238
239
  *
239
240
  * @augments BufferGeometry
241
+ * @three_import import { RollerCoasterLiftersGeometry } from 'three/addons/misc/RollerCoaster.js';
240
242
  */
241
243
  class RollerCoasterLiftersGeometry extends BufferGeometry {
242
244
 
@@ -424,6 +426,7 @@ class RollerCoasterLiftersGeometry extends BufferGeometry {
424
426
  * A procedural roller coaster shadow geometry.
425
427
  *
426
428
  * @augments BufferGeometry
429
+ * @three_import import { RollerCoasterShadowGeometry } from 'three/addons/misc/RollerCoaster.js';
427
430
  */
428
431
  class RollerCoasterShadowGeometry extends BufferGeometry {
429
432
 
@@ -507,6 +510,7 @@ class RollerCoasterShadowGeometry extends BufferGeometry {
507
510
  * A procedural sky geometry.
508
511
  *
509
512
  * @augments BufferGeometry
513
+ * @three_import import { SkyGeometry } from 'three/addons/misc/RollerCoaster.js';
510
514
  */
511
515
  class SkyGeometry extends BufferGeometry {
512
516
 
@@ -548,6 +552,7 @@ class SkyGeometry extends BufferGeometry {
548
552
  * A procedural trees geometry.
549
553
  *
550
554
  * @augments BufferGeometry
555
+ * @three_import import { TreesGeometry } from 'three/addons/misc/RollerCoaster.js';
551
556
  */
552
557
  class TreesGeometry extends BufferGeometry {
553
558
 
@@ -11,6 +11,8 @@
11
11
  * const timer = new Timer();
12
12
  * timer.connect( document ); // use Page Visibility API
13
13
  * ```
14
+ *
15
+ * @three_import import { Timer } from 'three/addons/misc/Timer.js';
14
16
  */
15
17
  class Timer {
16
18
 
@@ -21,6 +21,7 @@ import {
21
21
  *
22
22
  * @name TubePainter
23
23
  * @class
24
+ * @three_import import { TubePainter } from 'three/addons/misc/TubePainter.js';
24
25
  */
25
26
  function TubePainter() {
26
27
 
@@ -8,6 +8,8 @@ import { VolumeSlice } from '../misc/VolumeSlice.js';
8
8
  /**
9
9
  * This class had been written to handle the output of the {@link NRRDLoader}.
10
10
  * It contains a volume of data and information about it. For now it only handles 3 dimensional data.
11
+ *
12
+ * @three_import import { Volume } from 'three/addons/misc/Volume.js';
11
13
  */
12
14
  class Volume {
13
15
 
@@ -13,6 +13,7 @@ import {
13
13
  * This class has been made to hold a slice of a volume data.
14
14
  *
15
15
  * @see {@link Volume}
16
+ * @three_import import { VolumeSlice } from 'three/addons/misc/VolumeSlice.js';
16
17
  */
17
18
  class VolumeSlice {
18
19
 
@@ -203,6 +203,8 @@ vec3 transformedNormal = normalMatrix * (basis * objectNormal);
203
203
  *
204
204
  * This module can only be used with {@link WebGLRenderer}. When using {@link WebGPURenderer},
205
205
  * import the class from `CurveModifierGPU.js`.
206
+ *
207
+ * @three_import import { Flow } from 'three/addons/modifiers/CurveModifier.js';
206
208
  */
207
209
  export class Flow {
208
210
 
@@ -296,6 +298,7 @@ const _matrix = new Matrix4();
296
298
  * This module can only be used with {@link WebGLRenderer}.
297
299
  *
298
300
  * @augments Flow
301
+ * @three_import import { InstancedFlow } from 'three/addons/modifiers/CurveModifier.js';
299
302
  */
300
303
  export class InstancedFlow extends Flow {
301
304
 
@@ -164,6 +164,8 @@ function modifyShader( material, uniforms, numberOfCurves ) {
164
164
  *
165
165
  * This module can only be used with {@link WebGPURenderer}. When using {@link WebGLRenderer},
166
166
  * import the class from `CurveModifier.js`.
167
+ *
168
+ * @three_import import { Flow } from 'three/addons/modifiers/CurveModifierGPU.js';
167
169
  */
168
170
  export class Flow {
169
171
 
@@ -17,6 +17,8 @@ const _C = new Vector3();
17
17
  * const modifier = new EdgeSplitModifier();
18
18
  * geometry = modifier.modify( geometry, Math.PI * 0.4 );
19
19
  * ```
20
+ *
21
+ * @three_import import { EdgeSplitModifier } from 'three/addons/modifiers/EdgeSplitModifier.js';
20
22
  */
21
23
  class EdgeSplitModifier {
22
24
 
@@ -21,6 +21,8 @@ const _cb = new Vector3(), _ab = new Vector3();
21
21
  * const modifier = new SimplifyModifier();
22
22
  * geometry = modifier.modify( geometry );
23
23
  * ```
24
+ *
25
+ * @three_import import { SimplifyModifier } from 'three/addons/modifiers/SimplifyModifier.js';
24
26
  */
25
27
  class SimplifyModifier {
26
28
 
@@ -14,6 +14,8 @@ import {
14
14
  * const modifier = new TessellateModifier( 8, 6 );
15
15
  * geometry = modifier.modify( geometry );
16
16
  * ```
17
+ *
18
+ * @three_import import { TessellateModifier } from 'three/addons/modifiers/TessellateModifier.js';
17
19
  */
18
20
  class TessellateModifier {
19
21
 
@@ -15,6 +15,7 @@ import { Mesh, MeshBasicMaterial, SphereGeometry, Vector3 } from 'three';
15
15
  * ```
16
16
  *
17
17
  * @augments Mesh
18
+ * @three_import import { GroundedSkybox } from 'three/addons/objects/GroundedSkybox.js';
18
19
  */
19
20
  class GroundedSkybox extends Mesh {
20
21
 
@@ -33,6 +33,7 @@ import {
33
33
  * ```
34
34
  *
35
35
  * @augments Mesh
36
+ * @three_import import { Lensflare } from 'three/addons/objects/Lensflare.js';
36
37
  */
37
38
  class Lensflare extends Mesh {
38
39
 
@@ -338,6 +339,8 @@ class Lensflare extends Mesh {
338
339
 
339
340
  /**
340
341
  * Represents a single flare that can be added to a {@link Lensflare} container.
342
+ *
343
+ * @three_import import { LensflareElement } from 'three/addons/objects/Lensflare.js';
341
344
  */
342
345
  class LensflareElement {
343
346
 
@@ -36,6 +36,7 @@ import { texture, textureLoad, uv, ivec2, vec2, vec4, positionGeometry, referenc
36
36
  * ```
37
37
  *
38
38
  * @augments Mesh
39
+ * @three_import import { LensflareMesh } from 'three/addons/objects/LensflareMesh.js';
39
40
  */
40
41
  class LensflareMesh extends Mesh {
41
42
 
@@ -12,6 +12,8 @@ import {
12
12
  * A marching cubes implementation.
13
13
  *
14
14
  * Port of: {@link http://webglsamples.org/blob/blob.html}
15
+ *
16
+ * @three_import import { MarchingCubes } from 'three/addons/objects/MarchingCubes.js';
15
17
  */
16
18
  class MarchingCubes extends Mesh {
17
19
 
@@ -32,6 +32,7 @@ import {
32
32
  * ```
33
33
  *
34
34
  * @augments Mesh
35
+ * @three_import import { Reflector } from 'three/addons/objects/Reflector.js';
35
36
  */
36
37
  class Reflector extends Mesh {
37
38
 
@@ -19,6 +19,7 @@ import {
19
19
  * A special version of {@link Reflector} for usage with {@link SSRPass}.
20
20
  *
21
21
  * @augments Mesh
22
+ * @three_import import { ReflectorForSSRPass } from 'three/addons/objects/ReflectorForSSRPass.js';
22
23
  */
23
24
  class ReflectorForSSRPass extends Mesh {
24
25
 
@@ -33,6 +33,7 @@ import {
33
33
  * ```
34
34
  *
35
35
  * @augments Mesh
36
+ * @three_import import { Refractor } from 'three/addons/objects/Refractor.js';
36
37
  */
37
38
  class Refractor extends Mesh {
38
39
 
@@ -23,6 +23,7 @@ const _shadowMatrix = new Matrix4();
23
23
  * ```
24
24
  *
25
25
  * @augments Mesh
26
+ * @three_import import { ShadowMesh } from 'three/addons/objects/ShadowMesh.js';
26
27
  */
27
28
  class ShadowMesh extends Mesh {
28
29
 
@@ -27,7 +27,8 @@ import {
27
27
  * ```
28
28
  *
29
29
  * @augments Mesh
30
- */
30
+ * @three_import import { Sky } from 'three/addons/objects/Sky.js';
31
+ */
31
32
  class Sky extends Mesh {
32
33
 
33
34
  /**
@@ -6,7 +6,7 @@ import {
6
6
  NodeMaterial
7
7
  } from 'three/webgpu';
8
8
 
9
- import { Fn, float, vec3, acos, add, mul, clamp, cos, dot, exp, max, mix, modelViewProjection, normalize, positionWorld, pow, smoothstep, sub, varying, varyingProperty, vec4, uniform, cameraPosition } from 'three/tsl';
9
+ import { Fn, float, vec3, acos, add, mul, clamp, cos, dot, exp, max, mix, modelViewProjection, normalize, positionWorld, pow, smoothstep, sub, varyingProperty, vec4, uniform, cameraPosition } from 'three/tsl';
10
10
 
11
11
  /**
12
12
  * Represents a skydome for scene backgrounds. Based on [A Practical Analytic Model for Daylight]{@link https://www.researchgate.net/publication/220720443_A_Practical_Analytic_Model_for_Daylight}
@@ -27,7 +27,8 @@ import { Fn, float, vec3, acos, add, mul, clamp, cos, dot, exp, max, mix, modelV
27
27
  * ```
28
28
  *
29
29
  * @augments Mesh
30
- */
30
+ * @three_import import { SkyMesh } from 'three/addons/objects/SkyMesh.js';
31
+ */
31
32
  class SkyMesh extends Mesh {
32
33
 
33
34
  /**
@@ -90,6 +91,14 @@ class SkyMesh extends Mesh {
90
91
  */
91
92
  this.isSky = true;
92
93
 
94
+ // Varyings
95
+
96
+ const vSunDirection = varyingProperty( 'vec3' );
97
+ const vSunE = varyingProperty( 'float' );
98
+ const vSunfade = varyingProperty( 'float' );
99
+ const vBetaR = varyingProperty( 'vec3' );
100
+ const vBetaM = varyingProperty( 'vec3' );
101
+
93
102
  const vertexNode = /*@__PURE__*/ Fn( () => {
94
103
 
95
104
  // constants for atmospheric scattering
@@ -117,35 +126,35 @@ class SkyMesh extends Mesh {
117
126
 
118
127
  // varying sun position
119
128
 
120
- const vSunDirection = normalize( this.sunPosition );
121
- varyingProperty( 'vec3', 'vSunDirection' ).assign( vSunDirection );
129
+ const sunDirection = normalize( this.sunPosition );
130
+ vSunDirection.assign( sunDirection );
122
131
 
123
132
  // varying sun intensity
124
133
 
125
- const angle = dot( vSunDirection, this.upUniform );
134
+ const angle = dot( sunDirection, this.upUniform );
126
135
  const zenithAngleCos = clamp( angle, - 1, 1 );
127
136
  const sunIntensity = EE.mul( max( 0.0, float( 1.0 ).sub( pow( e, cutoffAngle.sub( acos( zenithAngleCos ) ).div( steepness ).negate() ) ) ) );
128
- varyingProperty( 'float', 'vSunE' ).assign( sunIntensity );
137
+ vSunE.assign( sunIntensity );
129
138
 
130
139
  // varying sun fade
131
140
 
132
- const vSunfade = float( 1.0 ).sub( clamp( float( 1.0 ).sub( exp( this.sunPosition.y.div( 450000.0 ) ) ), 0, 1 ) );
133
- varyingProperty( 'float', 'vSunfade' ).assign( vSunfade );
141
+ const sunfade = float( 1.0 ).sub( clamp( float( 1.0 ).sub( exp( this.sunPosition.y.div( 450000.0 ) ) ), 0, 1 ) );
142
+ vSunfade.assign( sunfade );
134
143
 
135
144
  // varying vBetaR
136
145
 
137
- const rayleighCoefficient = this.rayleigh.sub( float( 1.0 ).mul( float( 1.0 ).sub( vSunfade ) ) );
146
+ const rayleighCoefficient = this.rayleigh.sub( float( 1.0 ).mul( float( 1.0 ).sub( sunfade ) ) );
138
147
 
139
148
  // extinction (absorption + out scattering)
140
149
  // rayleigh coefficients
141
- varyingProperty( 'vec3', 'vBetaR' ).assign( totalRayleigh.mul( rayleighCoefficient ) );
150
+ vBetaR.assign( totalRayleigh.mul( rayleighCoefficient ) );
142
151
 
143
152
  // varying vBetaM
144
153
 
145
154
  const c = float( 0.2 ).mul( this.turbidity ).mul( 10E-18 );
146
155
  const totalMie = float( 0.434 ).mul( c ).mul( MieConst );
147
156
 
148
- varyingProperty( 'vec3', 'vBetaM' ).assign( totalMie.mul( this.mieCoefficient ) );
157
+ vBetaM.assign( totalMie.mul( this.mieCoefficient ) );
149
158
 
150
159
  // position
151
160
 
@@ -158,12 +167,6 @@ class SkyMesh extends Mesh {
158
167
 
159
168
  const fragmentNode = /*@__PURE__*/ Fn( () => {
160
169
 
161
- const vSunDirection = varying( vec3(), 'vSunDirection' );
162
- const vSunE = varying( float(), 'vSunE' );
163
- const vSunfade = varying( float(), 'vSunfade' );
164
- const vBetaR = varying( vec3(), 'vBetaR' );
165
- const vBetaM = varying( vec3(), 'vBetaM' );
166
-
167
170
  // constants for atmospheric scattering
168
171
  const pi = float( 3.141592653589793238462643383279502884197169 );
169
172
 
@@ -26,6 +26,7 @@ import {
26
26
  * - [Water shader explanations in WebGL]{@link http://29a.ch/slides/2012/webglwater/ }
27
27
  *
28
28
  * @augments Mesh
29
+ * @three_import import { Water } from 'three/addons/objects/Water.js';
29
30
  */
30
31
  class Water extends Mesh {
31
32
 
@@ -28,6 +28,7 @@ import { Refractor } from '../objects/Refractor.js';
28
28
  * - {@link http://graphicsrunner.blogspot.de/2010/08/water-using-flow-maps.html}
29
29
  *
30
30
  * @augments Mesh
31
+ * @three_import import { Water } from 'three/addons/objects/Water2.js';
31
32
  */
32
33
  class Water extends Mesh {
33
34
 
@@ -24,6 +24,7 @@ import { Fn, vec2, viewportSafeUV, viewportSharedTexture, reflector, pow, float,
24
24
  * - {@link http://graphicsrunner.blogspot.de/2010/08/water-using-flow-maps.html}
25
25
  *
26
26
  * @augments Mesh
27
+ * @three_import import { WaterMesh } from 'three/addons/objects/Water2Mesh.js';
27
28
  */
28
29
  class WaterMesh extends Mesh {
29
30
 
@@ -36,6 +37,7 @@ class WaterMesh extends Mesh {
36
37
  constructor( geometry, options = {} ) {
37
38
 
38
39
  const material = new NodeMaterial();
40
+ material.transparent = true;
39
41
 
40
42
  super( geometry, material );
41
43
 
@@ -48,7 +50,7 @@ class WaterMesh extends Mesh {
48
50
  */
49
51
  this.isWater = true;
50
52
 
51
- material.fragmentNode = new WaterNode( options, this );
53
+ material.colorNode = new WaterNode( options, this );
52
54
 
53
55
  }
54
56
 
@@ -20,6 +20,7 @@ import { Fn, add, cameraPosition, div, normalize, positionWorld, sub, time, text
20
20
  * - [Water shader explanations in WebGL]{@link http://29a.ch/slides/2012/webglwater/ }
21
21
  *
22
22
  * @augments Mesh
23
+ * @three_import import { WaterMesh } from 'three/addons/objects/WaterMesh.js';
23
24
  */
24
25
  class WaterMesh extends Mesh {
25
26
 
@@ -152,7 +153,7 @@ class WaterMesh extends Mesh {
152
153
 
153
154
  material.opacityNode = this.alpha;
154
155
 
155
- material.shadowPositionNode = positionWorld.add( distortion );
156
+ material.receivedShadowPositionNode = positionWorld.add( distortion );
156
157
 
157
158
  material.setupOutgoingLight = () => diffuseColor.rgb; // backwards compatibility
158
159
 
@@ -12,6 +12,7 @@
12
12
  * @name AmmoPhysics
13
13
  * @class
14
14
  * @hideconstructor
15
+ * @three_import import { AmmoPhysics } from 'three/addons/physics/AmmoPhysics.js';
15
16
  */
16
17
  async function AmmoPhysics() {
17
18
 
@@ -69,6 +69,7 @@ function setupCollisionFiltering( settings ) {
69
69
  * @name JoltPhysics
70
70
  * @class
71
71
  * @hideconstructor
72
+ * @three_import import { JoltPhysics } from 'three/addons/physics/JoltPhysics.js';
72
73
  */
73
74
  async function JoltPhysics() {
74
75