@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
@@ -14,6 +14,8 @@ import { FullScreenQuad } from '../postprocessing/Pass.js';
14
14
  *
15
15
  * Note that this class can only be used with {@link WebGLRenderer}.
16
16
  * When using {@link WebGPURenderer}, use {@link AnaglyphPassNode}.
17
+ *
18
+ * @three_import import { AnaglyphEffect } from 'three/addons/effects/AnaglyphEffect.js';
17
19
  */
18
20
  class AnaglyphEffect {
19
21
 
@@ -2,6 +2,8 @@
2
2
  * A class that creates an ASCII effect.
3
3
  *
4
4
  * The ASCII generation is based on [jsascii]{@link https://github.com/hassadee/jsascii/blob/master/jsascii.js}.
5
+ *
6
+ * @three_import import { AsciiEffect } from 'three/addons/effects/AsciiEffect.js';
5
7
  */
6
8
  class AsciiEffect {
7
9
 
@@ -21,6 +21,8 @@ import {
21
21
  *
22
22
  * }
23
23
  * ```
24
+ *
25
+ * @three_import import { OutlineEffect } from 'three/addons/effects/OutlineEffect.js';
24
26
  */
25
27
  class OutlineEffect {
26
28
 
@@ -13,6 +13,8 @@ import { FullScreenQuad } from '../postprocessing/Pass.js';
13
13
  *
14
14
  * Note that this class can only be used with {@link WebGLRenderer}.
15
15
  * When using {@link WebGPURenderer}, use {@link ParallaxBarrierPassNode}.
16
+ *
17
+ * @three_import import { ParallaxBarrierEffect } from 'three/addons/effects/ParallaxBarrierEffect.js';
16
18
  */
17
19
  class ParallaxBarrierEffect {
18
20
 
@@ -8,6 +8,8 @@ import {
8
8
  *
9
9
  * Note that this class can only be used with {@link WebGLRenderer}.
10
10
  * When using {@link WebGPURenderer}, use {@link StereoPassNode}.
11
+ *
12
+ * @three_import import { StereoEffect } from 'three/addons/effects/StereoEffect.js';
11
13
  */
12
14
  class StereoEffect {
13
15
 
@@ -26,6 +26,7 @@ import {
26
26
  * ```
27
27
  *
28
28
  * @augments Scene
29
+ * @three_import import { DebugEnvironment } from 'three/addons/environments/DebugEnvironment.js';
29
30
  */
30
31
  class DebugEnvironment extends Scene {
31
32
 
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  BackSide,
3
3
  BoxGeometry,
4
+ InstancedMesh,
4
5
  Mesh,
5
6
  MeshBasicMaterial,
6
7
  MeshStandardMaterial,
7
8
  PointLight,
8
9
  Scene,
10
+ Object3D,
9
11
  } from 'three';
10
12
 
11
13
  /**
@@ -26,6 +28,7 @@ import {
26
28
  * ```
27
29
  *
28
30
  * @augments Scene
31
+ * @three_import import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js';
29
32
  */
30
33
  class RoomEnvironment extends Scene {
31
34
 
@@ -48,41 +51,52 @@ class RoomEnvironment extends Scene {
48
51
  room.scale.set( 31.713, 28.305, 28.591 );
49
52
  this.add( room );
50
53
 
51
- const box1 = new Mesh( geometry, boxMaterial );
52
- box1.position.set( - 10.906, 2.009, 1.846 );
53
- box1.rotation.set( 0, - 0.195, 0 );
54
- box1.scale.set( 2.328, 7.905, 4.651 );
55
- this.add( box1 );
56
-
57
- const box2 = new Mesh( geometry, boxMaterial );
58
- box2.position.set( - 5.607, - 0.754, - 0.758 );
59
- box2.rotation.set( 0, 0.994, 0 );
60
- box2.scale.set( 1.970, 1.534, 3.955 );
61
- this.add( box2 );
62
-
63
- const box3 = new Mesh( geometry, boxMaterial );
64
- box3.position.set( 6.167, 0.857, 7.803 );
65
- box3.rotation.set( 0, 0.561, 0 );
66
- box3.scale.set( 3.927, 6.285, 3.687 );
67
- this.add( box3 );
68
-
69
- const box4 = new Mesh( geometry, boxMaterial );
70
- box4.position.set( - 2.017, 0.018, 6.124 );
71
- box4.rotation.set( 0, 0.333, 0 );
72
- box4.scale.set( 2.002, 4.566, 2.064 );
73
- this.add( box4 );
74
-
75
- const box5 = new Mesh( geometry, boxMaterial );
76
- box5.position.set( 2.291, - 0.756, - 2.621 );
77
- box5.rotation.set( 0, - 0.286, 0 );
78
- box5.scale.set( 1.546, 1.552, 1.496 );
79
- this.add( box5 );
80
-
81
- const box6 = new Mesh( geometry, boxMaterial );
82
- box6.position.set( - 2.193, - 0.369, - 5.547 );
83
- box6.rotation.set( 0, 0.516, 0 );
84
- box6.scale.set( 3.875, 3.487, 2.986 );
85
- this.add( box6 );
54
+ const boxes = new InstancedMesh( geometry, boxMaterial, 6 );
55
+ const transform = new Object3D();
56
+
57
+ // box1
58
+ transform.position.set( - 10.906, 2.009, 1.846 );
59
+ transform.rotation.set( 0, - 0.195, 0 );
60
+ transform.scale.set( 2.328, 7.905, 4.651 );
61
+ transform.updateMatrix();
62
+ boxes.setMatrixAt( 0, transform.matrix );
63
+
64
+ // box2
65
+ transform.position.set( - 5.607, - 0.754, - 0.758 );
66
+ transform.rotation.set( 0, 0.994, 0 );
67
+ transform.scale.set( 1.970, 1.534, 3.955 );
68
+ transform.updateMatrix();
69
+ boxes.setMatrixAt( 1, transform.matrix );
70
+
71
+ // box3
72
+ transform.position.set( 6.167, 0.857, 7.803 );
73
+ transform.rotation.set( 0, 0.561, 0 );
74
+ transform.scale.set( 3.927, 6.285, 3.687 );
75
+ transform.updateMatrix();
76
+ boxes.setMatrixAt( 2, transform.matrix );
77
+
78
+ // box4
79
+ transform.position.set( - 2.017, 0.018, 6.124 );
80
+ transform.rotation.set( 0, 0.333, 0 );
81
+ transform.scale.set( 2.002, 4.566, 2.064 );
82
+ transform.updateMatrix();
83
+ boxes.setMatrixAt( 3, transform.matrix );
84
+
85
+ // box5
86
+ transform.position.set( 2.291, - 0.756, - 2.621 );
87
+ transform.rotation.set( 0, - 0.286, 0 );
88
+ transform.scale.set( 1.546, 1.552, 1.496 );
89
+ transform.updateMatrix();
90
+ boxes.setMatrixAt( 4, transform.matrix );
91
+
92
+ // box6
93
+ transform.position.set( - 2.193, - 0.369, - 5.547 );
94
+ transform.rotation.set( 0, 0.516, 0 );
95
+ transform.scale.set( 3.875, 3.487, 2.986 );
96
+ transform.updateMatrix();
97
+ boxes.setMatrixAt( 5, transform.matrix );
98
+
99
+ this.add( boxes );
86
100
 
87
101
 
88
102
  // -x right
@@ -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
 
@@ -69,7 +70,7 @@ class RoundedBoxGeometry extends BoxGeometry {
69
70
  // ensure radius isn't bigger than shortest side
70
71
  radius = Math.min( width / 2, height / 2, depth / 2, radius );
71
72
 
72
- super( 1, 1, 1, segments, segments, segments );
73
+ super( width, height, depth, segments, segments, segments );
73
74
 
74
75
  // if we just have one segment we're the same as a regular box
75
76
  if ( segments === 1 ) return;
@@ -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