super-three 0.175.0 → 0.177.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 (477) hide show
  1. package/README.md +3 -3
  2. package/build/three.cjs +7631 -6743
  3. package/build/three.core.js +7496 -6758
  4. package/build/three.core.min.js +1 -1
  5. package/build/three.module.js +172 -22
  6. package/build/three.module.min.js +1 -1
  7. package/build/three.tsl.js +14 -6
  8. package/build/three.tsl.min.js +1 -1
  9. package/build/three.webgpu.js +3948 -1678
  10. package/build/three.webgpu.min.js +1 -1
  11. package/build/three.webgpu.nodes.js +3941 -1678
  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 -0
  17. package/examples/jsm/capabilities/WebGPU.js +1 -0
  18. package/examples/jsm/controls/ArcballControls.js +14 -3
  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 +1 -0
  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 +1 -0
  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 +5 -4
  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 +24 -22
  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 +58 -1
  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 +5 -6
  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/GLSLDecoder.js +1 -2
  274. package/examples/jsm/transpiler/TSLEncoder.js +52 -8
  275. package/examples/jsm/transpiler/Transpiler.js +2 -0
  276. package/examples/jsm/tsl/display/AfterImageNode.js +2 -3
  277. package/examples/jsm/tsl/display/AnaglyphPassNode.js +1 -0
  278. package/examples/jsm/tsl/display/AnamorphicNode.js +5 -4
  279. package/examples/jsm/tsl/display/BloomNode.js +1 -0
  280. package/examples/jsm/tsl/display/DenoiseNode.js +33 -33
  281. package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -0
  282. package/examples/jsm/tsl/display/DotScreenNode.js +1 -0
  283. package/examples/jsm/tsl/display/FXAANode.js +3 -2
  284. package/examples/jsm/tsl/display/FilmNode.js +1 -0
  285. package/examples/jsm/tsl/display/GTAONode.js +1 -0
  286. package/examples/jsm/tsl/display/GaussianBlurNode.js +2 -27
  287. package/examples/jsm/tsl/display/LensflareNode.js +1 -0
  288. package/examples/jsm/tsl/display/Lut3DNode.js +1 -0
  289. package/examples/jsm/tsl/display/OutlineNode.js +1 -0
  290. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +1 -0
  291. package/examples/jsm/tsl/display/PixelationPassNode.js +1 -0
  292. package/examples/jsm/tsl/display/RGBShiftNode.js +1 -0
  293. package/examples/jsm/tsl/display/SMAANode.js +9 -8
  294. package/examples/jsm/tsl/display/SSAAPassNode.js +3 -2
  295. package/examples/jsm/tsl/display/SSRNode.js +1 -0
  296. package/examples/jsm/tsl/display/SobelOperatorNode.js +1 -0
  297. package/examples/jsm/tsl/display/StereoCompositePassNode.js +1 -0
  298. package/examples/jsm/tsl/display/StereoPassNode.js +1 -0
  299. package/examples/jsm/tsl/display/TRAAPassNode.js +5 -4
  300. package/examples/jsm/tsl/display/TransitionNode.js +1 -0
  301. package/examples/jsm/tsl/display/hashBlur.js +28 -6
  302. package/examples/jsm/tsl/lighting/TiledLightsNode.js +4 -3
  303. package/examples/jsm/tsl/math/Bayer.js +4 -1
  304. package/examples/jsm/tsl/shadows/TileShadowNode.js +456 -0
  305. package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +212 -0
  306. package/examples/jsm/tsl/utils/Raymarching.js +6 -3
  307. package/examples/jsm/utils/BufferGeometryUtils.js +4 -1
  308. package/examples/jsm/utils/CameraUtils.js +4 -1
  309. package/examples/jsm/utils/GeometryCompressionUtils.js +4 -1
  310. package/examples/jsm/utils/GeometryUtils.js +4 -1
  311. package/examples/jsm/utils/LDrawUtils.js +2 -0
  312. package/examples/jsm/utils/SceneOptimizer.js +2 -0
  313. package/examples/jsm/utils/SceneUtils.js +4 -1
  314. package/examples/jsm/utils/ShadowMapViewer.js +2 -0
  315. package/examples/jsm/utils/ShadowMapViewerGPU.js +2 -0
  316. package/examples/jsm/utils/SkeletonUtils.js +4 -1
  317. package/examples/jsm/utils/SortUtils.js +4 -1
  318. package/examples/jsm/utils/UVsDebug.js +4 -1
  319. package/examples/jsm/utils/WebGLTextureUtils.js +4 -1
  320. package/examples/jsm/utils/WebGPUTextureUtils.js +4 -1
  321. package/examples/jsm/utils/WorkerPool.js +2 -0
  322. package/examples/jsm/webxr/ARButton.js +1 -0
  323. package/examples/jsm/webxr/OculusHandModel.js +1 -0
  324. package/examples/jsm/webxr/OculusHandPointerModel.js +1 -0
  325. package/examples/jsm/webxr/Text2D.js +4 -1
  326. package/examples/jsm/webxr/VRButton.js +1 -0
  327. package/examples/jsm/webxr/XRButton.js +1 -0
  328. package/examples/jsm/webxr/XRControllerModelFactory.js +2 -0
  329. package/examples/jsm/webxr/XREstimatedLight.js +1 -0
  330. package/examples/jsm/webxr/XRHandMeshModel.js +2 -0
  331. package/examples/jsm/webxr/XRHandModelFactory.js +2 -0
  332. package/examples/jsm/webxr/XRHandPrimitiveModel.js +2 -0
  333. package/examples/jsm/webxr/XRPlanes.js +1 -0
  334. package/package.json +6 -4
  335. package/src/Three.Core.js +1 -1
  336. package/src/Three.TSL.js +13 -5
  337. package/src/Three.WebGPU.Nodes.js +1 -0
  338. package/src/Three.WebGPU.js +1 -0
  339. package/src/audio/AudioListener.js +13 -10
  340. package/src/cameras/ArrayCamera.js +9 -1
  341. package/src/constants.js +47 -20
  342. package/src/core/BufferAttribute.js +1 -1
  343. package/src/core/BufferGeometry.js +2 -5
  344. package/src/core/Object3D.js +22 -21
  345. package/src/core/RenderTarget.js +65 -21
  346. package/src/core/RenderTarget3D.js +1 -0
  347. package/src/extras/TextureUtils.js +1 -5
  348. package/src/extras/core/Curve.js +1 -1
  349. package/src/geometries/CapsuleGeometry.js +167 -17
  350. package/src/geometries/ExtrudeGeometry.js +39 -29
  351. package/src/helpers/ArrowHelper.js +2 -2
  352. package/src/helpers/SkeletonHelper.js +1 -1
  353. package/src/lights/LightShadow.js +14 -0
  354. package/src/lights/SpotLightShadow.js +9 -1
  355. package/src/lights/webgpu/ProjectorLight.js +46 -0
  356. package/src/loaders/BufferGeometryLoader.js +1 -10
  357. package/src/loaders/ImageBitmapLoader.js +21 -5
  358. package/src/loaders/ObjectLoader.js +44 -16
  359. package/src/loaders/nodes/NodeObjectLoader.js +2 -2
  360. package/src/materials/Material.js +1 -7
  361. package/src/materials/nodes/NodeMaterial.js +81 -18
  362. package/src/materials/nodes/manager/NodeMaterialObserver.js +20 -2
  363. package/src/math/Box3.js +28 -0
  364. package/src/math/Color.js +7 -7
  365. package/src/math/ColorManagement.js +22 -3
  366. package/src/math/FrustumArray.js +253 -0
  367. package/src/math/Ray.js +2 -0
  368. package/src/math/Sphere.js +28 -0
  369. package/src/nodes/Nodes.js +1 -0
  370. package/src/nodes/TSL.js +1 -0
  371. package/src/nodes/accessors/Bitangent.js +31 -9
  372. package/src/nodes/accessors/Camera.js +31 -4
  373. package/src/nodes/accessors/CubeTextureNode.js +50 -2
  374. package/src/nodes/accessors/InstanceNode.js +5 -4
  375. package/src/nodes/accessors/Lights.js +2 -2
  376. package/src/nodes/accessors/MaterialNode.js +4 -0
  377. package/src/nodes/accessors/ModelNode.js +1 -1
  378. package/src/nodes/accessors/Normal.js +26 -6
  379. package/src/nodes/accessors/Object3DNode.js +6 -7
  380. package/src/nodes/accessors/Position.js +14 -4
  381. package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
  382. package/src/nodes/accessors/ReferenceNode.js +1 -1
  383. package/src/nodes/accessors/SkinningNode.js +3 -2
  384. package/src/nodes/accessors/StorageBufferNode.js +25 -0
  385. package/src/nodes/accessors/StorageTextureNode.js +14 -3
  386. package/src/nodes/accessors/TextureNode.js +59 -8
  387. package/src/nodes/accessors/VelocityNode.js +1 -0
  388. package/src/nodes/accessors/VertexColorNode.js +4 -4
  389. package/src/nodes/code/CodeNode.js +8 -11
  390. package/src/nodes/core/AssignNode.js +27 -5
  391. package/src/nodes/core/AttributeNode.js +2 -2
  392. package/src/nodes/core/CacheNode.js +14 -0
  393. package/src/nodes/core/ContextNode.js +7 -3
  394. package/src/nodes/core/Node.js +68 -19
  395. package/src/nodes/core/NodeBuilder.js +100 -12
  396. package/src/nodes/core/NodeUtils.js +42 -0
  397. package/src/nodes/core/NodeVarying.js +19 -1
  398. package/src/nodes/core/PropertyNode.js +8 -12
  399. package/src/nodes/core/StackNode.js +127 -2
  400. package/src/nodes/core/StructTypeNode.js +26 -4
  401. package/src/nodes/core/VarNode.js +11 -2
  402. package/src/nodes/core/VaryingNode.js +40 -21
  403. package/src/nodes/display/BlendModes.js +42 -1
  404. package/src/nodes/display/ColorSpaceNode.js +4 -27
  405. package/src/nodes/display/PassNode.js +8 -11
  406. package/src/nodes/functions/ShadowMaskModel.js +5 -1
  407. package/src/nodes/functions/material/getParallaxCorrectNormal.js +1 -1
  408. package/src/nodes/gpgpu/AtomicFunctionNode.js +28 -10
  409. package/src/nodes/gpgpu/BarrierNode.js +3 -3
  410. package/src/nodes/gpgpu/ComputeNode.js +1 -1
  411. package/src/nodes/lighting/AnalyticLightNode.js +7 -13
  412. package/src/nodes/lighting/HemisphereLightNode.js +2 -2
  413. package/src/nodes/lighting/IESSpotLightNode.js +2 -1
  414. package/src/nodes/lighting/LightsNode.js +25 -7
  415. package/src/nodes/lighting/ProjectorLightNode.js +78 -0
  416. package/src/nodes/lighting/ShadowBaseNode.js +1 -12
  417. package/src/nodes/lighting/ShadowFilterNode.js +274 -0
  418. package/src/nodes/lighting/ShadowNode.js +172 -240
  419. package/src/nodes/lighting/SpotLightNode.js +44 -7
  420. package/src/nodes/materialx/lib/mx_noise.js +1 -1
  421. package/src/nodes/math/MathNode.js +56 -20
  422. package/src/nodes/math/OperatorNode.js +109 -82
  423. package/src/nodes/shapes/Shapes.js +5 -4
  424. package/src/nodes/tsl/TSLCore.js +140 -49
  425. package/src/nodes/utils/DebugNode.js +15 -3
  426. package/src/nodes/utils/Discard.js +2 -2
  427. package/src/nodes/utils/LoopNode.js +64 -17
  428. package/src/nodes/utils/ReflectorNode.js +67 -4
  429. package/src/objects/BatchedMesh.js +16 -4
  430. package/src/objects/Mesh.js +9 -0
  431. package/src/objects/Skeleton.js +1 -1
  432. package/src/objects/Sprite.js +9 -0
  433. package/src/renderers/WebGL3DRenderTarget.js +1 -0
  434. package/src/renderers/WebGLArrayRenderTarget.js +1 -0
  435. package/src/renderers/WebGLCubeRenderTarget.js +2 -4
  436. package/src/renderers/WebGLRenderer.js +21 -10
  437. package/src/renderers/common/Animation.js +2 -2
  438. package/src/renderers/common/Background.js +11 -0
  439. package/src/renderers/common/RenderList.js +0 -4
  440. package/src/renderers/common/RenderObject.js +12 -1
  441. package/src/renderers/common/Renderer.js +116 -8
  442. package/src/renderers/common/Textures.js +15 -21
  443. package/src/renderers/common/TimestampQueryPool.js +1 -0
  444. package/src/renderers/common/Uniform.js +1 -1
  445. package/src/renderers/common/UniformsGroup.js +14 -18
  446. package/src/renderers/common/XRManager.js +154 -25
  447. package/src/renderers/common/extras/PMREMGenerator.js +29 -22
  448. package/src/renderers/common/nodes/Nodes.js +13 -3
  449. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +1 -1
  450. package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
  451. package/src/renderers/webgl/WebGLShadowMap.js +3 -2
  452. package/src/renderers/webgl/WebGLTextures.js +143 -4
  453. package/src/renderers/webgl/WebGLUtils.js +1 -3
  454. package/src/renderers/webgl-fallback/WebGLBackend.js +170 -34
  455. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +75 -7
  456. package/src/renderers/webgl-fallback/utils/WebGLConstants.js +1 -0
  457. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +42 -29
  458. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +22 -21
  459. package/src/renderers/webgpu/WebGPUBackend.js +442 -127
  460. package/src/renderers/webgpu/WebGPURenderer.js +7 -0
  461. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +4 -1
  462. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +4 -1
  463. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +75 -27
  464. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -0
  465. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +3 -1
  466. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +18 -5
  467. package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
  468. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +34 -4
  469. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +44 -49
  470. package/src/renderers/webxr/WebXRController.js +1 -1
  471. package/src/renderers/webxr/WebXRManager.js +2 -1
  472. package/src/textures/DepthTexture.js +6 -10
  473. package/src/textures/Source.js +22 -0
  474. package/src/textures/Texture.js +118 -1
  475. package/src/textures/VideoTexture.js +1 -1
  476. package/examples/jsm/effects/PeppersGhostEffect.js +0 -172
  477. package/src/core/RenderTargetArray.js +0 -40
@@ -19,6 +19,8 @@ import { Color, ColorManagement, SRGBColorSpace } from 'three';
19
19
  * const exporter = new DRACOExporter();
20
20
  * const data = exporter.parse( mesh, options );
21
21
  * ```
22
+ *
23
+ * @three_import import { DRACOExporter } from 'three/addons/exporters/DRACOExporter.js';
22
24
  */
23
25
  class DRACOExporter {
24
26
 
@@ -27,7 +29,7 @@ class DRACOExporter {
27
29
  *
28
30
  * @param {(Mesh|Points)} object - The mesh or point cloud to export.
29
31
  * @param {DRACOExporter~Options} options - The export options.
30
- * @return {ArrayBuffer} The exported Draco.
32
+ * @return {Int8Array} The exported Draco.
31
33
  */
32
34
  parse( object, options = {} ) {
33
35
 
@@ -239,7 +241,7 @@ function createVertexColorSRGBArray( attribute ) {
239
241
 
240
242
  _color.fromBufferAttribute( attribute, i );
241
243
 
242
- ColorManagement.fromWorkingColorSpace( _color, SRGBColorSpace );
244
+ ColorManagement.workingToColorSpace( _color, SRGBColorSpace );
243
245
 
244
246
  array[ i * itemSize ] = _color.r;
245
247
  array[ i * itemSize + 1 ] = _color.g;
@@ -26,6 +26,8 @@ const ZIP_COMPRESSION = 3;
26
26
  * const exporter = new EXRExporter();
27
27
  * const result = await exporter.parse( renderer, options );
28
28
  * ```
29
+ *
30
+ * @three_import import { EXRExporter } from 'three/addons/exporters/EXRExporter.js';
29
31
  */
30
32
  class EXRExporter {
31
33
 
@@ -97,6 +97,8 @@ const KHR_mesh_quantization_ExtraAttrTypes = {
97
97
  * const exporter = new GLTFExporter();
98
98
  * const data = await exporter.parseAsync( scene, options );
99
99
  * ```
100
+ *
101
+ * @three_import import { GLTFExporter } from 'three/addons/exporters/GLTFExporter.js';
100
102
  */
101
103
  class GLTFExporter {
102
104
 
@@ -2406,6 +2408,9 @@ class GLTFWriter {
2406
2408
 
2407
2409
  if ( object.isSkinnedMesh ) this.skins.push( object );
2408
2410
 
2411
+ const nodeIndex = json.nodes.push( nodeDef ) - 1;
2412
+ nodeMap.set( object, nodeIndex );
2413
+
2409
2414
  if ( object.children.length > 0 ) {
2410
2415
 
2411
2416
  const children = [];
@@ -2416,9 +2421,9 @@ class GLTFWriter {
2416
2421
 
2417
2422
  if ( child.visible || options.onlyVisible === false ) {
2418
2423
 
2419
- const nodeIndex = await this.processNodeAsync( child );
2424
+ const childNodeIndex = await this.processNodeAsync( child );
2420
2425
 
2421
- if ( nodeIndex !== null ) children.push( nodeIndex );
2426
+ if ( childNodeIndex !== null ) children.push( childNodeIndex );
2422
2427
 
2423
2428
  }
2424
2429
 
@@ -2434,8 +2439,6 @@ class GLTFWriter {
2434
2439
 
2435
2440
  } );
2436
2441
 
2437
- const nodeIndex = json.nodes.push( nodeDef ) - 1;
2438
- nodeMap.set( object, nodeIndex );
2439
2442
  return nodeIndex;
2440
2443
 
2441
2444
  }
@@ -134,6 +134,8 @@ const ERROR_COLOR_SPACE = 'THREE.KTX2Exporter: Supported color spaces are SRGBCo
134
134
  * const exporter = new KTX2Exporter();
135
135
  * const result = await exporter.parse( dataTexture );
136
136
  * ```
137
+ *
138
+ * @three_import import { KTX2Exporter } from 'three/addons/exporters/KTX2Exporter.js';
137
139
  */
138
140
  export class KTX2Exporter {
139
141
 
@@ -16,6 +16,8 @@ import {
16
16
  * const exporter = new OBJExporter();
17
17
  * const data = exporter.parse( scene );
18
18
  * ```
19
+ *
20
+ * @three_import import { OBJExporter } from 'three/addons/exporters/OBJExporter.js';
19
21
  */
20
22
  class OBJExporter {
21
23
 
@@ -248,7 +250,7 @@ class OBJExporter {
248
250
 
249
251
  color.fromBufferAttribute( colors, i );
250
252
 
251
- ColorManagement.fromWorkingColorSpace( color, SRGBColorSpace );
253
+ ColorManagement.workingToColorSpace( color, SRGBColorSpace );
252
254
 
253
255
  output += ' ' + color.r + ' ' + color.g + ' ' + color.b;
254
256
 
@@ -18,6 +18,8 @@ import {
18
18
  * const exporter = new PLYExporter();
19
19
  * const data = exporter.parse( scene, options );
20
20
  * ```
21
+ *
22
+ * @three_import import { PLYExporter } from 'three/addons/exporters/PLYExporter.js';
21
23
  */
22
24
  class PLYExporter {
23
25
 
@@ -318,7 +320,7 @@ class PLYExporter {
318
320
 
319
321
  tempColor.fromBufferAttribute( colors, i );
320
322
 
321
- ColorManagement.fromWorkingColorSpace( tempColor, SRGBColorSpace );
323
+ ColorManagement.workingToColorSpace( tempColor, SRGBColorSpace );
322
324
 
323
325
  output.setUint8( vOffset, Math.floor( tempColor.r * 255 ) );
324
326
  vOffset += 1;
@@ -477,7 +479,7 @@ class PLYExporter {
477
479
 
478
480
  tempColor.fromBufferAttribute( colors, i );
479
481
 
480
- ColorManagement.fromWorkingColorSpace( tempColor, SRGBColorSpace );
482
+ ColorManagement.workingToColorSpace( tempColor, SRGBColorSpace );
481
483
 
482
484
  line += ' ' +
483
485
  Math.floor( tempColor.r * 255 ) + ' ' +
@@ -12,6 +12,8 @@ import { Vector3 } from 'three';
12
12
  * const exporter = new STLExporter();
13
13
  * const data = exporter.parse( mesh, { binary: true } );
14
14
  * ```
15
+ *
16
+ * @three_import import { STLExporter } from 'three/addons/exporters/STLExporter.js';
15
17
  */
16
18
  class STLExporter {
17
19
 
@@ -16,6 +16,8 @@ import {
16
16
  * const exporter = new USDZExporter();
17
17
  * const arraybuffer = await exporter.parseAsync( scene );
18
18
  * ```
19
+ *
20
+ * @three_import import { USDZExporter } from 'three/addons/exporters/USDZExporter.js';
19
21
  */
20
22
  class USDZExporter {
21
23
 
@@ -313,16 +315,16 @@ function buildXform( object, geometry, material ) {
313
315
 
314
316
  }
315
317
 
316
- return `def Xform "${ name }" (
317
- prepend references = @./geometries/Geometry_${ geometry.id }.usda@</Geometry>
318
- prepend apiSchemas = ["MaterialBindingAPI"]
319
- )
320
- {
321
- matrix4d xformOp:transform = ${ transform }
322
- uniform token[] xformOpOrder = ["xformOp:transform"]
318
+ return ` def Xform "${ name }" (
319
+ prepend references = @./geometries/Geometry_${ geometry.id }.usda@</Geometry>
320
+ prepend apiSchemas = ["MaterialBindingAPI"]
321
+ )
322
+ {
323
+ matrix4d xformOp:transform = ${ transform }
324
+ uniform token[] xformOpOrder = ["xformOp:transform"]
323
325
 
324
- rel material:binding = </Materials/Material_${ material.id }>
325
- }
326
+ rel material:binding = </Materials/Material_${ material.id }>
327
+ }
326
328
 
327
329
  `;
328
330
 
@@ -825,7 +827,7 @@ function buildCamera( camera ) {
825
827
  *
826
828
  * @typedef {Object} USDZExporter~Options
827
829
  * @property {number} [maxTextureSize=1024] - The maximum texture size that is going to be exported.
828
- * @property {boolean} [includeAnchoringProperties=false] - Whether to include anchoring properties or not.
830
+ * @property {boolean} [includeAnchoringProperties=true] - Whether to include anchoring properties or not.
829
831
  * @property {Object} [ar] - If `includeAnchoringProperties` is set to `true`, the anchoring type and alignment
830
832
  * can be configured via `ar.anchoring.type` and `ar.planeAnchoring.alignment`.
831
833
  * @property {boolean} [quickLookCompatible=false] - Whether to make the exported USDZ compatible to QuickLook
@@ -14,6 +14,7 @@ import {
14
14
  * ```
15
15
  *
16
16
  * @augments BufferGeometry
17
+ * @three_import import { BoxLineGeometry } from 'three/addons/geometries/BoxLineGeometry.js';
17
18
  */
18
19
  class BoxLineGeometry extends BufferGeometry {
19
20
 
@@ -16,6 +16,7 @@ import { ConvexHull } from '../math/ConvexHull.js';
16
16
  * ```
17
17
  *
18
18
  * @augments BufferGeometry
19
+ * @three_import import { ConvexGeometry } from 'three/addons/geometries/ConvexGeometry.js';
19
20
  */
20
21
  class ConvexGeometry extends BufferGeometry {
21
22
 
@@ -25,6 +25,7 @@ import {
25
25
  * ```
26
26
  *
27
27
  * @augments BufferGeometry
28
+ * @three_import import { DecalGeometry } from 'three/addons/geometries/DecalGeometry.js';
28
29
  */
29
30
  class DecalGeometry extends BufferGeometry {
30
31
 
@@ -1,5 +1,8 @@
1
1
 
2
- /** @module ParametricFunctions */
2
+ /**
3
+ * @module ParametricFunctions
4
+ * @three_import import * as ParametricFunctions from 'three/addons/geometries/ParametricFunctions.js';
5
+ */
3
6
 
4
7
  /**
5
8
  * A parametric function representing the Klein bottle.
@@ -17,6 +17,7 @@ import {
17
17
  * ```
18
18
  *
19
19
  * @augments BufferGeometry
20
+ * @three_import import { ParametricGeometry } from 'three/addons/geometries/ParametricGeometry.js';
20
21
  */
21
22
  class ParametricGeometry extends BufferGeometry {
22
23
 
@@ -49,6 +49,7 @@ function getUv( faceDirVector, normal, uvAxis, projectionAxis, radius, sideLengt
49
49
  * ```
50
50
  *
51
51
  * @augments BoxGeometry
52
+ * @three_import import { RoundedBoxGeometry } from 'three/addons/geometries/RoundedBoxGeometry.js';
52
53
  */
53
54
  class RoundedBoxGeometry extends BoxGeometry {
54
55
 
@@ -26,6 +26,7 @@ import {
26
26
  * ```
27
27
  *
28
28
  * @augments BufferGeometry
29
+ * @three_import import { TeapotGeometry } from 'three/addons/geometries/TeapotGeometry.js';
29
30
  */
30
31
  class TeapotGeometry extends BufferGeometry {
31
32
 
@@ -23,6 +23,7 @@ import {
23
23
  * ```
24
24
  *
25
25
  * @augments ExtrudeGeometry
26
+ * @three_import import { TextGeometry } from 'three/addons/geometries/TextGeometry.js';
26
27
  */
27
28
  class TextGeometry extends ExtrudeGeometry {
28
29
 
@@ -16,6 +16,7 @@ import {
16
16
  * ```
17
17
  *
18
18
  * @augments Mesh
19
+ * @three_import import { LightProbeHelper } from 'three/addons/helpers/LightProbeHelper.js';
19
20
  */
20
21
  class LightProbeHelper extends Mesh {
21
22
 
@@ -18,6 +18,7 @@ import { float, Fn, getShIrradianceAt, normalWorld, uniformArray, uniform, vec4
18
18
  *
19
19
  * @private
20
20
  * @augments Mesh
21
+ * @three_import import { LightProbeHelper } from 'three/addons/helpers/LightProbeHelperGPU.js';
21
22
  */
22
23
  class LightProbeHelper extends Mesh {
23
24
 
@@ -14,6 +14,7 @@ import {
14
14
  * ```
15
15
  *
16
16
  * @augments LineSegments
17
+ * @three_import import { OctreeHelper } from 'three/addons/helpers/OctreeHelper.js';
17
18
  */
18
19
  class OctreeHelper extends LineSegments {
19
20
 
@@ -21,6 +21,7 @@ import {
21
21
  * ```
22
22
  *
23
23
  * @augments Line
24
+ * @three_import import { PositionalAudioHelper } from 'three/addons/helpers/PositionalAudioHelper.js';
24
25
  */
25
26
  class PositionalAudioHelper extends Line {
26
27
 
@@ -0,0 +1,59 @@
1
+ import { LineSegments, LineBasicMaterial, BufferAttribute } from 'three';
2
+ /**
3
+ * This class displays all Rapier Colliders in outline.
4
+ *
5
+ * @augments LineSegments
6
+ * @three_import import { RapierHelper } from 'three/addons/helpers/RapierHelper.js';
7
+ */
8
+ class RapierHelper extends LineSegments {
9
+
10
+ /**
11
+ * Constructs a new Rapier debug helper.
12
+ *
13
+ * @param {RAPIER.world} world - The Rapier world to visualize.
14
+ */
15
+ constructor( world ) {
16
+
17
+ super();
18
+
19
+ /**
20
+ * The Rapier world to visualize.
21
+ *
22
+ * @type {RAPIER.world}
23
+ */
24
+ this.world = world;
25
+
26
+ this.material = new LineBasicMaterial( { vertexColors: true } );
27
+ this.frustumCulled = false;
28
+
29
+ }
30
+
31
+ /**
32
+ * Call this in the render loop to update the outlines.
33
+ */
34
+ update() {
35
+
36
+ const { vertices, colors } = this.world.debugRender();
37
+
38
+ this.geometry.deleteAttribute( 'position' );
39
+ this.geometry.deleteAttribute( 'color' );
40
+
41
+ this.geometry.setAttribute( 'position', new BufferAttribute( vertices, 3 ) );
42
+ this.geometry.setAttribute( 'color', new BufferAttribute( colors, 4 ) );
43
+
44
+ }
45
+
46
+ /**
47
+ * Frees the GPU-related resources allocated by this instance. Call this
48
+ * method whenever this instance is no longer used in your app.
49
+ */
50
+ dispose() {
51
+
52
+ this.geometry.dispose();
53
+ this.material.dispose();
54
+
55
+ }
56
+
57
+ }
58
+
59
+ export { RapierHelper };
@@ -20,6 +20,7 @@ import {
20
20
  * ```
21
21
  *
22
22
  * @augments Line
23
+ * @three_import import { RectAreaLightHelper } from 'three/addons/helpers/RectAreaLightHelper.js';
23
24
  */
24
25
  class RectAreaLightHelper extends Line {
25
26
 
@@ -18,6 +18,7 @@ import { mergeGeometries } from '../utils/BufferGeometryUtils.js';
18
18
  * When using {@link WebGPURenderer}, import from `TextureHelperGPU.js`.
19
19
  *
20
20
  * @augments Mesh
21
+ * @three_import import { TextureHelper } from 'three/addons/helpers/TextureHelper.js';
21
22
  */
22
23
  class TextureHelper extends Mesh {
23
24
 
@@ -20,6 +20,7 @@ import { mergeGeometries } from '../utils/BufferGeometryUtils.js';
20
20
  *
21
21
  * @private
22
22
  * @augments Mesh
23
+ * @three_import import { TextureHelper } from 'three/addons/helpers/TextureHelperGPU.js';
23
24
  */
24
25
  class TextureHelper extends Mesh {
25
26
 
@@ -50,7 +51,7 @@ class TextureHelper extends Mesh {
50
51
 
51
52
  colorNode = texture3D( texture ).sample( uvw );
52
53
 
53
- } else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
54
+ } else if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
54
55
 
55
56
  colorNode = textureNode( texture ).sample( uvw.xy ).depth( uvw.z );
56
57
 
@@ -99,7 +100,7 @@ function getImageCount( texture ) {
99
100
 
100
101
  return 6;
101
102
 
102
- } else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
103
+ } else if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
103
104
 
104
105
  return texture.image.depth;
105
106
 
@@ -121,7 +122,7 @@ function getAlpha( texture ) {
121
122
 
122
123
  return 1;
123
124
 
124
- } else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
125
+ } else if ( texture.isArrayTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {
125
126
 
126
127
  return Math.max( 1 / texture.image.depth, 0.25 );
127
128
 
@@ -191,7 +192,7 @@ function createSliceGeometry( texture, width, height, depth ) {
191
192
  const v = texture.flipY ? uv.getY( j ) : 1 - uv.getY( j );
192
193
  const w = sliceCount === 1
193
194
  ? 1
194
- : texture.isDataArrayTexture || texture.isCompressedArrayTexture
195
+ : texture.isArrayTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture
195
196
  ? i
196
197
  : i / ( sliceCount - 1 );
197
198
 
@@ -27,6 +27,7 @@ const _normalMatrix = new Matrix3();
27
27
  * ```
28
28
  *
29
29
  * @augments LineSegments
30
+ * @three_import import { VertexNormalsHelper } from 'three/addons/helpers/VertexNormalsHelper.js';
30
31
  */
31
32
  class VertexNormalsHelper extends LineSegments {
32
33
 
@@ -20,6 +20,7 @@ const _v2 = new Vector3();
20
20
  * ```
21
21
  *
22
22
  * @augments LineSegments
23
+ * @three_import import { VertexTangentsHelper } from 'three/addons/helpers/VertexTangentsHelper.js';
23
24
  */
24
25
  class VertexTangentsHelper extends LineSegments {
25
26
 
@@ -26,6 +26,7 @@ import {
26
26
  * so it looks along the selected axis.
27
27
  *
28
28
  * @augments Object3D
29
+ * @three_import import { ViewHelper } from 'three/addons/helpers/ViewHelper.js';
29
30
  */
30
31
  class ViewHelper extends Object3D {
31
32
 
@@ -23,6 +23,7 @@ import {
23
23
  * ```
24
24
  *
25
25
  * @augments Mesh
26
+ * @three_import import { HTMLMesh } from 'three/addons/interactive/HTMLMesh.js';
26
27
  */
27
28
  class HTMLMesh extends Mesh {
28
29
 
@@ -577,6 +578,12 @@ function htmlevent( element, event, x, y ) {
577
578
 
578
579
  }
579
580
 
581
+ if ( element instanceof HTMLInputElement && ( element.type === 'text' || element.type === 'number' ) && ( event === 'mousedown' || event === 'click' ) ) {
582
+
583
+ element.focus();
584
+
585
+ }
586
+
580
587
  }
581
588
 
582
589
  for ( let i = 0; i < element.childNodes.length; i ++ ) {
@@ -34,6 +34,7 @@ const _raycaster = new Raycaster();
34
34
  * group.add( mesh1, mesh2, mesh3 );
35
35
  * ```
36
36
  * @augments Group
37
+ * @three_import import { InteractiveGroup } from 'three/addons/interactive/InteractiveGroup.js';
37
38
  */
38
39
  class InteractiveGroup extends Group {
39
40
 
@@ -37,6 +37,8 @@ const _scale = new Vector3();
37
37
  * const selectionBox = new SelectionBox( camera, scene );
38
38
  * const selectedObjects = selectionBox.select( startPoint, endPoint );
39
39
  * ```
40
+ *
41
+ * @three_import import { SelectionBox } from 'three/addons/interactive/SelectionBox.js';
40
42
  */
41
43
  class SelectionBox {
42
44
 
@@ -4,6 +4,8 @@ import { Vector2 } from 'three';
4
4
  * A helper for {@link SelectionBox}.
5
5
  *
6
6
  * It visualizes the current selection box with a `div` container element.
7
+ *
8
+ * @three_import import { SelectionHelper } from 'three/addons/interactive/SelectionHelper.js';
7
9
  */
8
10
  class SelectionHelper {
9
11
 
@@ -11,6 +11,7 @@ import { tiledLights } from '../tsl/lighting/TiledLightsNode.js';
11
11
  * ```
12
12
  *
13
13
  * @augments Lighting
14
+ * @three_import import { TiledLighting } from 'three/addons/lighting/TiledLighting.js';
14
15
  */
15
16
  export class TiledLighting extends Lighting {
16
17
 
@@ -15,6 +15,7 @@ import {
15
15
  * Utility class for creating instances of {@link LightProbe}.
16
16
  *
17
17
  * @hideconstructor
18
+ * @three_import import { LightProbeGenerator } from 'three/addons/lights/LightProbeGenerator.js';
18
19
  */
19
20
  class LightProbeGenerator {
20
21
 
@@ -25,6 +25,7 @@ import {
25
25
  * in the main build files.
26
26
  *
27
27
  * @hideconstructor
28
+ * @three_import import { RectAreaLightTexturesLib } from 'three/addons/lights/RectAreaLightTexturesLib.js';
28
29
  */
29
30
  class RectAreaLightTexturesLib {
30
31
 
@@ -12,6 +12,7 @@ import { RectAreaLightTexturesLib } from './RectAreaLightTexturesLib.js';
12
12
  * ```
13
13
  *
14
14
  * @hideconstructor
15
+ * @three_import import { RectAreaLightUniformsLib } from 'three/addons/lights/RectAreaLightUniformsLib.js';
15
16
  */
16
17
  class RectAreaLightUniformsLib {
17
18
 
@@ -24,6 +24,7 @@ import { LineMaterial } from '../lines/LineMaterial.js';
24
24
  * ```
25
25
  *
26
26
  * @augments LineSegments2
27
+ * @three_import import { Line2 } from 'three/addons/lines/Line2.js';
27
28
  */
28
29
  class Line2 extends LineSegments2 {
29
30
 
@@ -17,6 +17,7 @@ import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js';
17
17
  * ```
18
18
  *
19
19
  * @augments LineSegmentsGeometry
20
+ * @three_import import { LineLineGeometry2 } from 'three/addons/lines/LineGeometry.js';
20
21
  */
21
22
  class LineGeometry extends LineSegmentsGeometry {
22
23
 
@@ -311,6 +311,9 @@ ShaderLib[ 'line' ] = {
311
311
 
312
312
  void main() {
313
313
 
314
+ float alpha = opacity;
315
+ vec4 diffuseColor = vec4( diffuse, alpha );
316
+
314
317
  #include <clipping_planes_fragment>
315
318
 
316
319
  #ifdef USE_DASH
@@ -321,8 +324,6 @@ ShaderLib[ 'line' ] = {
321
324
 
322
325
  #endif
323
326
 
324
- float alpha = opacity;
325
-
326
327
  #ifdef WORLD_UNITS
327
328
 
328
329
  // Find the closest points on the view ray and the line segment
@@ -387,8 +388,6 @@ ShaderLib[ 'line' ] = {
387
388
 
388
389
  #endif
389
390
 
390
- vec4 diffuseColor = vec4( diffuse, alpha );
391
-
392
391
  #include <logdepthbuf_fragment>
393
392
  #include <color_fragment>
394
393
 
@@ -413,6 +412,7 @@ ShaderLib[ 'line' ] = {
413
412
  * use {@link Line2NodeMaterial}.
414
413
  *
415
414
  * @augments ShaderMaterial
415
+ * @three_import import { LineMaterial } from 'three/addons/lines/LineMaterial.js';
416
416
  */
417
417
  class LineMaterial extends ShaderMaterial {
418
418
 
@@ -246,6 +246,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
246
246
  * ```
247
247
  *
248
248
  * @augments Mesh
249
+ * @three_import import { LineSegments2 } from 'three/addons/lines/LineSegments2.js';
249
250
  */
250
251
  class LineSegments2 extends Mesh {
251
252
 
@@ -18,6 +18,7 @@ const _vector = new Vector3();
18
18
  * This is used in {@link LineSegments2} to describe the shape.
19
19
  *
20
20
  * @augments InstancedBufferGeometry
21
+ * @three_import import { LineSegmentsGeometry } from 'three/addons/lines/LineSegmentsGeometry.js';
21
22
  */
22
23
  class LineSegmentsGeometry extends InstancedBufferGeometry {
23
24
 
@@ -27,6 +27,7 @@ const _viewport = new Vector4();
27
27
  * ```
28
28
  *
29
29
  * @augments Mesh
30
+ * @three_import import { Wireframe } from 'three/addons/lines/Wireframe.js';
30
31
  */
31
32
  class Wireframe extends Mesh {
32
33
 
@@ -14,6 +14,7 @@ import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js';
14
14
  * ```
15
15
  *
16
16
  * @augments LineSegmentsGeometry
17
+ * @three_import import { WireframeGeometry2 } from 'three/addons/lines/WireframeGeometry2.js';
17
18
  */
18
19
  class WireframeGeometry2 extends LineSegmentsGeometry {
19
20
 
@@ -14,6 +14,7 @@ import { LineGeometry } from '../LineGeometry.js';
14
14
  * import the class from `lines/Line2.js`.
15
15
  *
16
16
  * @augments LineSegments2
17
+ * @three_import import { Line2 } from 'three/addons/lines/webgpu/Line2.js';
17
18
  */
18
19
  class Line2 extends LineSegments2 {
19
20
 
@@ -94,9 +94,10 @@ function raycastWorldUnits( lineSegments, intersects ) {
94
94
  function raycastScreenSpace( lineSegments, camera, intersects ) {
95
95
 
96
96
  const projectionMatrix = camera.projectionMatrix;
97
- const resolution = lineSegments.resolution;
98
97
  const matrixWorld = lineSegments.matrixWorld;
99
98
 
99
+ const resolution = lineSegments._resolution;
100
+
100
101
  const geometry = lineSegments.geometry;
101
102
  const instanceStart = geometry.attributes.instanceStart;
102
103
  const instanceEnd = geometry.attributes.instanceEnd;
@@ -234,6 +235,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
234
235
  * import the class from `lines/LineSegments2.js`.
235
236
  *
236
237
  * @augments Mesh
238
+ * @three_import import { LineSegments2 } from 'three/addons/lines/webgpu/LineSegments2.js';
237
239
  */
238
240
  class LineSegments2 extends Mesh {
239
241