@plastic-software/three 0.174.0 → 0.175.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/build/three.cjs +10655 -1446
  2. package/build/three.core.js +9626 -1094
  3. package/build/three.core.min.js +1 -1
  4. package/build/three.module.js +834 -157
  5. package/build/three.module.min.js +1 -1
  6. package/build/three.tsl.js +4 -2
  7. package/build/three.tsl.min.js +1 -1
  8. package/build/three.webgpu.js +2658 -1697
  9. package/build/three.webgpu.min.js +1 -1
  10. package/build/three.webgpu.nodes.js +2654 -1709
  11. package/build/three.webgpu.nodes.min.js +1 -1
  12. package/examples/jsm/Addons.js +1 -1
  13. package/examples/jsm/animation/AnimationClipCreator.js +57 -6
  14. package/examples/jsm/animation/CCDIKSolver.js +93 -39
  15. package/examples/jsm/capabilities/WebGL.js +28 -3
  16. package/examples/jsm/capabilities/WebGPU.js +16 -6
  17. package/examples/jsm/controls/ArcballControls.js +424 -154
  18. package/examples/jsm/controls/DragControls.js +93 -2
  19. package/examples/jsm/controls/FirstPersonControls.js +113 -4
  20. package/examples/jsm/controls/FlyControls.js +49 -2
  21. package/examples/jsm/controls/MapControls.js +42 -9
  22. package/examples/jsm/controls/OrbitControls.js +345 -42
  23. package/examples/jsm/controls/PointerLockControls.js +111 -9
  24. package/examples/jsm/controls/TrackballControls.js +159 -8
  25. package/examples/jsm/controls/TransformControls.js +252 -6
  26. package/examples/jsm/csm/CSM.js +226 -15
  27. package/examples/jsm/csm/CSMFrustum.js +52 -0
  28. package/examples/jsm/csm/CSMHelper.js +47 -0
  29. package/examples/jsm/csm/CSMShader.js +10 -1
  30. package/examples/jsm/csm/CSMShadowNode.js +156 -13
  31. package/examples/jsm/curves/CurveExtras.js +289 -31
  32. package/examples/jsm/curves/NURBSCurve.js +57 -14
  33. package/examples/jsm/curves/NURBSSurface.js +50 -6
  34. package/examples/jsm/curves/NURBSUtils.js +96 -112
  35. package/examples/jsm/curves/NURBSVolume.js +22 -4
  36. package/examples/jsm/effects/AnaglyphEffect.js +30 -0
  37. package/examples/jsm/effects/AsciiEffect.js +60 -15
  38. package/examples/jsm/effects/OutlineEffect.js +59 -111
  39. package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
  40. package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
  41. package/examples/jsm/effects/StereoEffect.js +29 -0
  42. package/examples/jsm/environments/DebugEnvironment.js +49 -0
  43. package/examples/jsm/environments/RoomEnvironment.js +23 -4
  44. package/examples/jsm/exporters/DRACOExporter.js +53 -13
  45. package/examples/jsm/exporters/EXRExporter.js +37 -8
  46. package/examples/jsm/exporters/GLTFExporter.js +171 -48
  47. package/examples/jsm/exporters/KTX2Exporter.js +20 -0
  48. package/examples/jsm/exporters/OBJExporter.js +18 -0
  49. package/examples/jsm/exporters/PLYExporter.js +39 -9
  50. package/examples/jsm/exporters/STLExporter.js +25 -5
  51. package/examples/jsm/exporters/USDZExporter.js +70 -3
  52. package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
  53. package/examples/jsm/geometries/ConvexGeometry.js +18 -0
  54. package/examples/jsm/geometries/DecalGeometry.js +20 -9
  55. package/examples/jsm/geometries/ParametricFunctions.js +97 -0
  56. package/examples/jsm/geometries/ParametricGeometry.js +37 -5
  57. package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
  58. package/examples/jsm/geometries/TeapotGeometry.js +22 -38
  59. package/examples/jsm/geometries/TextGeometry.js +44 -16
  60. package/examples/jsm/helpers/LightProbeHelper.js +35 -0
  61. package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
  62. package/examples/jsm/helpers/OctreeHelper.js +35 -0
  63. package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
  64. package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
  65. package/examples/jsm/helpers/TextureHelper.js +27 -0
  66. package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
  67. package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
  68. package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
  69. package/examples/jsm/helpers/ViewHelper.js +75 -1
  70. package/examples/jsm/interactive/HTMLMesh.js +25 -0
  71. package/examples/jsm/interactive/InteractiveGroup.js +65 -5
  72. package/examples/jsm/interactive/SelectionBox.js +74 -9
  73. package/examples/jsm/interactive/SelectionHelper.js +71 -29
  74. package/examples/jsm/libs/motion-controllers.module.js +1 -1
  75. package/examples/jsm/lighting/TiledLighting.js +23 -0
  76. package/examples/jsm/lights/LightProbeGenerator.js +26 -1
  77. package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
  78. package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
  79. package/examples/jsm/lines/Line2.js +36 -0
  80. package/examples/jsm/lines/LineGeometry.js +52 -0
  81. package/examples/jsm/lines/LineMaterial.js +95 -0
  82. package/examples/jsm/lines/LineSegments2.js +51 -2
  83. package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
  84. package/examples/jsm/lines/Wireframe.js +38 -2
  85. package/examples/jsm/lines/WireframeGeometry2.js +24 -0
  86. package/examples/jsm/lines/webgpu/Line2.js +25 -1
  87. package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
  88. package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
  89. package/examples/jsm/loaders/3DMLoader.js +71 -2
  90. package/examples/jsm/loaders/3MFLoader.js +41 -3
  91. package/examples/jsm/loaders/AMFLoader.js +31 -12
  92. package/examples/jsm/loaders/BVHLoader.js +57 -11
  93. package/examples/jsm/loaders/ColladaLoader.js +35 -0
  94. package/examples/jsm/loaders/DDSLoader.js +24 -0
  95. package/examples/jsm/loaders/DRACOLoader.js +73 -1
  96. package/examples/jsm/loaders/EXRLoader.js +40 -8
  97. package/examples/jsm/loaders/FBXLoader.js +42 -14
  98. package/examples/jsm/loaders/FontLoader.js +60 -2
  99. package/examples/jsm/loaders/GCodeLoader.js +33 -5
  100. package/examples/jsm/loaders/GLTFLoader.js +218 -5
  101. package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
  102. package/examples/jsm/loaders/IESLoader.js +41 -0
  103. package/examples/jsm/loaders/KMZLoader.js +32 -0
  104. package/examples/jsm/loaders/KTX2Loader.js +86 -18
  105. package/examples/jsm/loaders/KTXLoader.js +26 -6
  106. package/examples/jsm/loaders/LDrawLoader.js +115 -5
  107. package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
  108. package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
  109. package/examples/jsm/loaders/LUTImageLoader.js +78 -38
  110. package/examples/jsm/loaders/LWOLoader.js +46 -7
  111. package/examples/jsm/loaders/LottieLoader.js +37 -0
  112. package/examples/jsm/loaders/MD2Loader.js +36 -1
  113. package/examples/jsm/loaders/MDDLoader.js +56 -12
  114. package/examples/jsm/loaders/MTLLoader.js +38 -33
  115. package/examples/jsm/loaders/MaterialXLoader.js +33 -0
  116. package/examples/jsm/loaders/NRRDLoader.js +36 -5
  117. package/examples/jsm/loaders/OBJLoader.js +48 -1
  118. package/examples/jsm/loaders/PCDLoader.js +47 -0
  119. package/examples/jsm/loaders/PDBLoader.js +40 -2
  120. package/examples/jsm/loaders/PLYLoader.js +62 -32
  121. package/examples/jsm/loaders/PVRLoader.js +23 -5
  122. package/examples/jsm/loaders/RGBELoader.js +38 -5
  123. package/examples/jsm/loaders/RGBMLoader.js +67 -1
  124. package/examples/jsm/loaders/STLLoader.js +47 -38
  125. package/examples/jsm/loaders/SVGLoader.js +113 -20
  126. package/examples/jsm/loaders/TDSLoader.js +81 -61
  127. package/examples/jsm/loaders/TGALoader.js +22 -0
  128. package/examples/jsm/loaders/TIFFLoader.js +22 -0
  129. package/examples/jsm/loaders/TTFLoader.js +36 -2
  130. package/examples/jsm/loaders/USDZLoader.js +34 -1
  131. package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
  132. package/examples/jsm/loaders/VOXLoader.js +57 -0
  133. package/examples/jsm/loaders/VRMLLoader.js +32 -1
  134. package/examples/jsm/loaders/VTKLoader.js +38 -0
  135. package/examples/jsm/loaders/XYZLoader.js +35 -0
  136. package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
  137. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
  138. package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
  139. package/examples/jsm/math/Capsule.js +89 -14
  140. package/examples/jsm/math/ColorConverter.js +21 -0
  141. package/examples/jsm/math/ColorSpaces.js +53 -0
  142. package/examples/jsm/math/ConvexHull.js +514 -92
  143. package/examples/jsm/math/ImprovedNoise.js +14 -2
  144. package/examples/jsm/math/Lut.js +111 -0
  145. package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
  146. package/examples/jsm/math/OBB.js +139 -46
  147. package/examples/jsm/math/Octree.js +132 -5
  148. package/examples/jsm/math/SimplexNoise.js +66 -42
  149. package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
  150. package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
  151. package/examples/jsm/misc/Gyroscope.js +11 -0
  152. package/examples/jsm/misc/MD2Character.js +115 -2
  153. package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
  154. package/examples/jsm/misc/MorphAnimMesh.js +43 -0
  155. package/examples/jsm/misc/MorphBlendMesh.js +102 -0
  156. package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
  157. package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
  158. package/examples/jsm/misc/RollerCoaster.js +52 -0
  159. package/examples/jsm/misc/Timer.js +79 -2
  160. package/examples/jsm/misc/TubePainter.js +53 -0
  161. package/examples/jsm/misc/Volume.js +108 -72
  162. package/examples/jsm/misc/VolumeSlice.js +88 -45
  163. package/examples/jsm/modifiers/CurveModifier.js +57 -34
  164. package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
  165. package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
  166. package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
  167. package/examples/jsm/modifiers/TessellateModifier.js +33 -2
  168. package/examples/jsm/objects/GroundedSkybox.js +23 -5
  169. package/examples/jsm/objects/Lensflare.js +91 -2
  170. package/examples/jsm/objects/LensflareMesh.js +53 -2
  171. package/examples/jsm/objects/MarchingCubes.js +88 -5
  172. package/examples/jsm/objects/Reflector.js +70 -0
  173. package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
  174. package/examples/jsm/objects/Refractor.js +61 -0
  175. package/examples/jsm/objects/ShadowMesh.js +53 -4
  176. package/examples/jsm/objects/Sky.js +26 -9
  177. package/examples/jsm/objects/SkyMesh.js +60 -9
  178. package/examples/jsm/objects/Water.js +44 -5
  179. package/examples/jsm/objects/Water2.js +42 -3
  180. package/examples/jsm/objects/Water2Mesh.js +38 -3
  181. package/examples/jsm/objects/WaterMesh.js +94 -7
  182. package/examples/jsm/physics/AmmoPhysics.js +47 -0
  183. package/examples/jsm/physics/JoltPhysics.js +48 -0
  184. package/examples/jsm/physics/RapierPhysics.js +56 -0
  185. package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
  186. package/examples/jsm/postprocessing/BloomPass.js +125 -24
  187. package/examples/jsm/postprocessing/BokehPass.js +98 -22
  188. package/examples/jsm/postprocessing/ClearPass.js +53 -3
  189. package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
  190. package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
  191. package/examples/jsm/postprocessing/EffectComposer.js +131 -0
  192. package/examples/jsm/postprocessing/FilmPass.js +53 -5
  193. package/examples/jsm/postprocessing/GTAOPass.js +191 -48
  194. package/examples/jsm/postprocessing/GlitchPass.js +84 -33
  195. package/examples/jsm/postprocessing/HalftonePass.js +64 -10
  196. package/examples/jsm/postprocessing/LUTPass.js +37 -8
  197. package/examples/jsm/postprocessing/MaskPass.js +90 -0
  198. package/examples/jsm/postprocessing/OutlinePass.js +266 -133
  199. package/examples/jsm/postprocessing/OutputPass.js +53 -14
  200. package/examples/jsm/postprocessing/Pass.js +98 -4
  201. package/examples/jsm/postprocessing/RenderPass.js +83 -0
  202. package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
  203. package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
  204. package/examples/jsm/postprocessing/SAOPass.js +126 -53
  205. package/examples/jsm/postprocessing/SMAAPass.js +103 -71
  206. package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
  207. package/examples/jsm/postprocessing/SSAOPass.js +160 -47
  208. package/examples/jsm/postprocessing/SSRPass.js +230 -49
  209. package/examples/jsm/postprocessing/SavePass.js +68 -16
  210. package/examples/jsm/postprocessing/ShaderPass.js +64 -7
  211. package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
  212. package/examples/jsm/postprocessing/TexturePass.js +71 -8
  213. package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
  214. package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
  215. package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
  216. package/examples/jsm/renderers/Projector.js +18 -2
  217. package/examples/jsm/renderers/SVGRenderer.js +124 -0
  218. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
  219. package/examples/jsm/shaders/AfterimageShader.js +6 -4
  220. package/examples/jsm/shaders/BasicShader.js +6 -2
  221. package/examples/jsm/shaders/BleachBypassShader.js +8 -4
  222. package/examples/jsm/shaders/BlendShader.js +6 -2
  223. package/examples/jsm/shaders/BokehShader.js +7 -4
  224. package/examples/jsm/shaders/BokehShader2.js +7 -3
  225. package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
  226. package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
  227. package/examples/jsm/shaders/ColorifyShader.js +6 -2
  228. package/examples/jsm/shaders/ConvolutionShader.js +7 -39
  229. package/examples/jsm/shaders/CopyShader.js +6 -2
  230. package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
  231. package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
  232. package/examples/jsm/shaders/DigitalGlitch.js +7 -7
  233. package/examples/jsm/shaders/DotScreenShader.js +6 -4
  234. package/examples/jsm/shaders/ExposureShader.js +6 -2
  235. package/examples/jsm/shaders/FXAAShader.js +15 -7
  236. package/examples/jsm/shaders/FilmShader.js +10 -0
  237. package/examples/jsm/shaders/FocusShader.js +6 -4
  238. package/examples/jsm/shaders/FreiChenShader.js +7 -3
  239. package/examples/jsm/shaders/GTAOShader.js +33 -39
  240. package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
  241. package/examples/jsm/shaders/GodRaysShader.js +14 -5
  242. package/examples/jsm/shaders/HalftoneShader.js +11 -5
  243. package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
  244. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
  245. package/examples/jsm/shaders/HueSaturationShader.js +7 -3
  246. package/examples/jsm/shaders/KaleidoShader.js +8 -4
  247. package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
  248. package/examples/jsm/shaders/LuminosityShader.js +6 -3
  249. package/examples/jsm/shaders/MirrorShader.js +7 -4
  250. package/examples/jsm/shaders/NormalMapShader.js +5 -3
  251. package/examples/jsm/shaders/OutputShader.js +11 -0
  252. package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
  253. package/examples/jsm/shaders/RGBShiftShader.js +5 -1
  254. package/examples/jsm/shaders/SAOShader.js +8 -2
  255. package/examples/jsm/shaders/SMAAShader.js +23 -1
  256. package/examples/jsm/shaders/SSAOShader.js +23 -5
  257. package/examples/jsm/shaders/SSRShader.js +25 -1
  258. package/examples/jsm/shaders/SepiaShader.js +6 -4
  259. package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
  260. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
  261. package/examples/jsm/shaders/TechnicolorShader.js +7 -4
  262. package/examples/jsm/shaders/ToonShader.js +29 -7
  263. package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
  264. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
  265. package/examples/jsm/shaders/VelocityShader.js +6 -2
  266. package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
  267. package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
  268. package/examples/jsm/shaders/VignetteShader.js +6 -4
  269. package/examples/jsm/shaders/VolumeShader.js +7 -1
  270. package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
  271. package/examples/jsm/textures/FlakesTexture.js +12 -0
  272. package/examples/jsm/transpiler/Transpiler.js +31 -0
  273. package/examples/jsm/tsl/display/AfterImageNode.js +1 -1
  274. package/examples/jsm/tsl/display/BloomNode.js +1 -1
  275. package/examples/jsm/tsl/display/PixelationPassNode.js +4 -4
  276. package/examples/jsm/tsl/display/SSRNode.js +1 -1
  277. package/examples/jsm/tsl/lighting/TiledLightsNode.js +29 -3
  278. package/examples/jsm/tsl/math/Bayer.js +14 -1
  279. package/examples/jsm/tsl/utils/Raymarching.js +4 -2
  280. package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
  281. package/examples/jsm/utils/CameraUtils.js +10 -7
  282. package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
  283. package/examples/jsm/utils/GeometryUtils.js +12 -13
  284. package/examples/jsm/utils/LDrawUtils.js +11 -4
  285. package/examples/jsm/utils/SceneOptimizer.js +66 -20
  286. package/examples/jsm/utils/SceneUtils.js +50 -3
  287. package/examples/jsm/utils/ShadowMapViewer.js +47 -24
  288. package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
  289. package/examples/jsm/utils/SkeletonUtils.js +45 -0
  290. package/examples/jsm/utils/SortUtils.js +14 -5
  291. package/examples/jsm/utils/UVsDebug.js +9 -4
  292. package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
  293. package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
  294. package/examples/jsm/utils/WorkerPool.js +65 -2
  295. package/examples/jsm/webxr/ARButton.js +18 -0
  296. package/examples/jsm/webxr/OculusHandModel.js +83 -0
  297. package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
  298. package/examples/jsm/webxr/Text2D.js +11 -0
  299. package/examples/jsm/webxr/VRButton.js +30 -0
  300. package/examples/jsm/webxr/XRButton.js +22 -0
  301. package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
  302. package/examples/jsm/webxr/XREstimatedLight.js +33 -3
  303. package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
  304. package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
  305. package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
  306. package/examples/jsm/webxr/XRPlanes.js +17 -0
  307. package/package.json +1 -1
  308. package/src/Three.TSL.js +3 -1
  309. package/src/animation/AnimationAction.js +262 -30
  310. package/src/animation/AnimationClip.js +141 -2
  311. package/src/animation/AnimationMixer.js +99 -15
  312. package/src/animation/AnimationObjectGroup.js +41 -18
  313. package/src/animation/AnimationUtils.js +168 -18
  314. package/src/animation/KeyframeTrack.js +144 -10
  315. package/src/animation/PropertyBinding.js +77 -3
  316. package/src/animation/PropertyMixer.js +72 -5
  317. package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
  318. package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
  319. package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
  320. package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
  321. package/src/animation/tracks/StringKeyframeTrack.js +33 -2
  322. package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
  323. package/src/audio/AudioAnalyser.js +1 -1
  324. package/src/audio/AudioListener.js +2 -2
  325. package/src/audio/PositionalAudio.js +5 -5
  326. package/src/constants.js +1429 -5
  327. package/src/core/BufferAttribute.js +413 -3
  328. package/src/core/BufferGeometry.js +337 -1
  329. package/src/core/Clock.js +60 -0
  330. package/src/core/GLBufferAttribute.js +99 -0
  331. package/src/core/InstancedBufferAttribute.js +29 -0
  332. package/src/core/InstancedBufferGeometry.js +20 -0
  333. package/src/core/InstancedInterleavedBuffer.js +26 -0
  334. package/src/core/InterleavedBuffer.js +137 -3
  335. package/src/core/InterleavedBufferAttribute.js +197 -0
  336. package/src/core/Layers.js +71 -10
  337. package/src/core/Object3D.js +23 -0
  338. package/src/core/Raycaster.js +134 -1
  339. package/src/core/RenderTarget.js +166 -7
  340. package/src/core/RenderTarget3D.js +25 -0
  341. package/src/core/RenderTargetArray.js +18 -0
  342. package/src/core/Uniform.js +29 -0
  343. package/src/core/UniformsGroup.js +84 -2
  344. package/src/extras/Controls.js +16 -1
  345. package/src/extras/Earcut.js +3 -781
  346. package/src/extras/ImageUtils.js +3 -2
  347. package/src/extras/PMREMGenerator.js +22 -17
  348. package/src/extras/core/Curve.js +1 -1
  349. package/src/extras/core/Path.js +1 -1
  350. package/src/extras/lib/earcut.js +685 -0
  351. package/src/geometries/ConeGeometry.js +2 -2
  352. package/src/geometries/CylinderGeometry.js +2 -2
  353. package/src/geometries/ExtrudeGeometry.js +71 -39
  354. package/src/geometries/LatheGeometry.js +1 -1
  355. package/src/lights/LightShadow.js +1 -1
  356. package/src/lights/webgpu/IESSpotLight.js +1 -1
  357. package/src/loaders/AnimationLoader.js +31 -0
  358. package/src/loaders/AudioLoader.js +31 -0
  359. package/src/loaders/BufferGeometryLoader.js +34 -0
  360. package/src/loaders/Cache.js +45 -0
  361. package/src/loaders/CompressedTextureLoader.js +36 -3
  362. package/src/loaders/CubeTextureLoader.js +45 -0
  363. package/src/loaders/DataTextureLoader.js +44 -3
  364. package/src/loaders/FileLoader.js +57 -1
  365. package/src/loaders/ImageBitmapLoader.js +57 -0
  366. package/src/loaders/ImageLoader.js +30 -0
  367. package/src/loaders/Loader.js +4 -6
  368. package/src/loaders/LoaderUtils.js +18 -36
  369. package/src/loaders/LoadingManager.js +142 -0
  370. package/src/loaders/MaterialLoader.js +57 -0
  371. package/src/loaders/ObjectLoader.js +53 -0
  372. package/src/loaders/TextureLoader.js +33 -0
  373. package/src/loaders/nodes/NodeLoader.js +6 -2
  374. package/src/loaders/nodes/NodeMaterialLoader.js +1 -1
  375. package/src/loaders/nodes/NodeObjectLoader.js +3 -3
  376. package/src/materials/LineBasicMaterial.js +74 -1
  377. package/src/materials/LineDashedMaterial.js +52 -0
  378. package/src/materials/Material.js +18 -3
  379. package/src/materials/MeshBasicMaterial.js +165 -0
  380. package/src/materials/MeshDepthMaterial.js +93 -0
  381. package/src/materials/MeshDistanceMaterial.js +76 -0
  382. package/src/materials/MeshLambertMaterial.js +273 -0
  383. package/src/materials/MeshMatcapMaterial.js +142 -0
  384. package/src/materials/MeshNormalMaterial.js +113 -0
  385. package/src/materials/MeshPhongMaterial.js +288 -0
  386. package/src/materials/MeshPhysicalMaterial.js +292 -1
  387. package/src/materials/MeshStandardMaterial.js +297 -0
  388. package/src/materials/MeshToonMaterial.js +218 -0
  389. package/src/materials/PointsMaterial.js +89 -0
  390. package/src/materials/RawShaderMaterial.js +25 -0
  391. package/src/materials/ShaderMaterial.js +215 -6
  392. package/src/materials/ShadowMaterial.js +54 -0
  393. package/src/materials/SpriteMaterial.js +82 -0
  394. package/src/materials/nodes/Line2NodeMaterial.js +1 -1
  395. package/src/materials/nodes/LineBasicNodeMaterial.js +2 -2
  396. package/src/materials/nodes/LineDashedNodeMaterial.js +2 -2
  397. package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
  398. package/src/materials/nodes/MeshLambertNodeMaterial.js +2 -2
  399. package/src/materials/nodes/MeshMatcapNodeMaterial.js +2 -2
  400. package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
  401. package/src/materials/nodes/MeshPhongNodeMaterial.js +2 -2
  402. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -2
  403. package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
  404. package/src/materials/nodes/MeshStandardNodeMaterial.js +2 -2
  405. package/src/materials/nodes/MeshToonNodeMaterial.js +2 -2
  406. package/src/materials/nodes/NodeMaterial.js +7 -3
  407. package/src/materials/nodes/PointsNodeMaterial.js +1 -1
  408. package/src/materials/nodes/ShadowNodeMaterial.js +11 -2
  409. package/src/materials/nodes/SpriteNodeMaterial.js +1 -1
  410. package/src/materials/nodes/VolumeNodeMaterial.js +10 -1
  411. package/src/math/Color.js +1 -1
  412. package/src/math/MathUtils.js +223 -0
  413. package/src/nodes/Nodes.js +1 -0
  414. package/src/nodes/accessors/BatchNode.js +8 -8
  415. package/src/nodes/accessors/BuiltinNode.js +1 -1
  416. package/src/nodes/accessors/CubeTextureNode.js +1 -1
  417. package/src/nodes/accessors/InstanceNode.js +5 -5
  418. package/src/nodes/accessors/InstancedMeshNode.js +1 -1
  419. package/src/nodes/accessors/MorphNode.js +27 -23
  420. package/src/nodes/accessors/Normal.js +1 -1
  421. package/src/nodes/accessors/Object3DNode.js +12 -12
  422. package/src/nodes/accessors/ReferenceBaseNode.js +2 -2
  423. package/src/nodes/accessors/ReferenceNode.js +1 -1
  424. package/src/nodes/accessors/SkinningNode.js +46 -37
  425. package/src/nodes/accessors/StorageBufferNode.js +1 -1
  426. package/src/nodes/accessors/StorageTextureNode.js +3 -3
  427. package/src/nodes/accessors/Texture3DNode.js +1 -1
  428. package/src/nodes/accessors/TextureNode.js +25 -5
  429. package/src/nodes/accessors/TextureSizeNode.js +1 -1
  430. package/src/nodes/accessors/UniformArrayNode.js +2 -2
  431. package/src/nodes/code/CodeNode.js +4 -4
  432. package/src/nodes/code/ExpressionNode.js +4 -4
  433. package/src/nodes/code/FunctionCallNode.js +23 -3
  434. package/src/nodes/code/ScriptableNode.js +4 -4
  435. package/src/nodes/code/ScriptableValueNode.js +2 -2
  436. package/src/nodes/core/AssignNode.js +1 -1
  437. package/src/nodes/core/AttributeNode.js +1 -1
  438. package/src/nodes/core/BypassNode.js +1 -1
  439. package/src/nodes/core/CacheNode.js +1 -1
  440. package/src/nodes/core/ContextNode.js +1 -1
  441. package/src/nodes/core/InputNode.js +2 -2
  442. package/src/nodes/core/Node.js +14 -2
  443. package/src/nodes/core/NodeBuilder.js +86 -14
  444. package/src/nodes/core/StackNode.js +5 -5
  445. package/src/nodes/core/StructNode.js +1 -1
  446. package/src/nodes/core/StructTypeNode.js +2 -2
  447. package/src/nodes/core/VarNode.js +2 -8
  448. package/src/nodes/core/VaryingNode.js +3 -3
  449. package/src/nodes/display/BlendModes.js +4 -4
  450. package/src/nodes/display/BumpMapNode.js +1 -1
  451. package/src/nodes/display/NormalMapNode.js +1 -1
  452. package/src/nodes/display/PosterizeNode.js +1 -1
  453. package/src/nodes/display/ScreenNode.js +3 -3
  454. package/src/nodes/display/ViewportDepthNode.js +2 -2
  455. package/src/nodes/display/ViewportDepthTextureNode.js +2 -2
  456. package/src/nodes/display/ViewportSharedTextureNode.js +2 -2
  457. package/src/nodes/display/ViewportTextureNode.js +4 -4
  458. package/src/nodes/functions/ShadowMaskModel.js +4 -4
  459. package/src/nodes/functions/material/getParallaxCorrectNormal.js +6 -6
  460. package/src/nodes/geometry/RangeNode.js +1 -1
  461. package/src/nodes/gpgpu/AtomicFunctionNode.js +16 -40
  462. package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -1
  463. package/src/nodes/gpgpu/ComputeNode.js +30 -2
  464. package/src/nodes/lighting/AnalyticLightNode.js +9 -1
  465. package/src/nodes/lighting/LightsNode.js +3 -3
  466. package/src/nodes/lighting/ShadowNode.js +1 -1
  467. package/src/nodes/math/ConditionalNode.js +20 -3
  468. package/src/nodes/math/MathNode.js +83 -78
  469. package/src/nodes/math/OperatorNode.js +171 -82
  470. package/src/nodes/pmrem/PMREMNode.js +4 -4
  471. package/src/nodes/pmrem/PMREMUtils.js +2 -2
  472. package/src/nodes/tsl/TSLBase.js +2 -1
  473. package/src/nodes/tsl/TSLCore.js +115 -12
  474. package/src/nodes/utils/ArrayElementNode.js +3 -1
  475. package/src/nodes/utils/CubeMapNode.js +3 -3
  476. package/src/nodes/utils/DebugNode.js +70 -0
  477. package/src/nodes/utils/EquirectUVNode.js +2 -2
  478. package/src/nodes/utils/JoinNode.js +27 -2
  479. package/src/nodes/utils/LoopNode.js +58 -28
  480. package/src/nodes/utils/MaxMipLevelNode.js +1 -1
  481. package/src/nodes/utils/ReflectorNode.js +2 -2
  482. package/src/nodes/utils/RemapNode.js +6 -6
  483. package/src/nodes/utils/RotateNode.js +1 -1
  484. package/src/nodes/utils/SpriteSheetUVNode.js +3 -3
  485. package/src/nodes/utils/StorageArrayElementNode.js +1 -1
  486. package/src/nodes/utils/TriplanarTexturesNode.js +3 -3
  487. package/src/objects/BatchedMesh.js +4 -4
  488. package/src/objects/InstancedMesh.js +2 -2
  489. package/src/objects/LOD.js +1 -1
  490. package/src/objects/Skeleton.js +1 -1
  491. package/src/renderers/WebGL3DRenderTarget.js +25 -0
  492. package/src/renderers/WebGLArrayRenderTarget.js +25 -0
  493. package/src/renderers/WebGLCubeRenderTarget.js +39 -1
  494. package/src/renderers/WebGLRenderTarget.js +19 -0
  495. package/src/renderers/WebGLRenderer.js +617 -79
  496. package/src/renderers/common/Animation.js +2 -2
  497. package/src/renderers/common/Attributes.js +2 -2
  498. package/src/renderers/common/Backend.js +12 -3
  499. package/src/renderers/common/Background.js +1 -0
  500. package/src/renderers/common/Color4.js +1 -1
  501. package/src/renderers/common/CubeRenderTarget.js +13 -0
  502. package/src/renderers/common/PostProcessing.js +2 -0
  503. package/src/renderers/common/QuadMesh.js +2 -0
  504. package/src/renderers/common/RenderList.js +2 -2
  505. package/src/renderers/common/RenderObject.js +1 -1
  506. package/src/renderers/common/RenderObjects.js +2 -2
  507. package/src/renderers/common/Renderer.js +52 -31
  508. package/src/renderers/common/XRManager.js +333 -10
  509. package/src/renderers/common/extras/PMREMGenerator.js +6 -0
  510. package/src/renderers/common/nodes/NodeBuilderState.js +3 -3
  511. package/src/renderers/shaders/UniformsLib.js +1 -4
  512. package/src/renderers/shaders/UniformsUtils.js +1 -3
  513. package/src/renderers/webgl/WebGLBackground.js +4 -2
  514. package/src/renderers/webgl/WebGLState.js +9 -9
  515. package/src/renderers/webgl-fallback/WebGLBackend.js +25 -26
  516. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +3 -12
  517. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +67 -19
  518. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +1 -1
  519. package/src/renderers/webgpu/WebGPUBackend.js +128 -87
  520. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +1 -11
  521. package/src/renderers/webgpu/WebGPURenderer.js +17 -11
  522. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +4 -4
  523. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +5 -3
  524. package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
  525. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +1 -1
  526. package/src/renderers/webxr/WebXRController.js +87 -2
  527. package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
  528. package/src/renderers/webxr/WebXRManager.js +173 -1
  529. package/src/scenes/Scene.js +2 -1
  530. package/src/textures/CanvasTexture.js +28 -0
  531. package/src/textures/CompressedArrayTexture.js +57 -0
  532. package/src/textures/CompressedCubeTexture.js +29 -0
  533. package/src/textures/CompressedTexture.js +64 -6
  534. package/src/textures/CubeTexture.js +52 -4
  535. package/src/textures/Data3DTexture.js +77 -0
  536. package/src/textures/DataArrayTexture.js +93 -0
  537. package/src/textures/DataTexture.js +65 -0
  538. package/src/textures/DepthTexture.js +59 -9
  539. package/src/textures/FramebufferTexture.js +62 -0
  540. package/src/textures/Source.js +69 -0
  541. package/src/textures/Texture.js +5 -5
  542. package/src/textures/VideoFrameTexture.js +43 -6
  543. package/src/textures/VideoTexture.js +49 -4
  544. package/examples/jsm/geometries/ParametricGeometries.js +0 -254
package/src/constants.js CHANGED
@@ -1,216 +1,1640 @@
1
- export const REVISION = '174';
1
+ export const REVISION = '175';
2
2
 
3
+ /**
4
+ * Represents mouse buttons and interaction types in context of controls.
5
+ *
6
+ * @type {ConstantsMouse}
7
+ * @constant
8
+ */
3
9
  export const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
10
+
11
+ /**
12
+ * Represents touch interaction types in context of controls.
13
+ *
14
+ * @type {ConstantsTouch}
15
+ * @constant
16
+ */
4
17
  export const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
18
+
19
+ /**
20
+ * Disables face culling.
21
+ *
22
+ * @type {number}
23
+ * @constant
24
+ */
5
25
  export const CullFaceNone = 0;
26
+
27
+ /**
28
+ * Culls back faces.
29
+ *
30
+ * @type {number}
31
+ * @constant
32
+ */
6
33
  export const CullFaceBack = 1;
34
+
35
+ /**
36
+ * Culls front faces.
37
+ *
38
+ * @type {number}
39
+ * @constant
40
+ */
7
41
  export const CullFaceFront = 2;
42
+
43
+ /**
44
+ * Culls both front and back faces.
45
+ *
46
+ * @type {number}
47
+ * @constant
48
+ */
8
49
  export const CullFaceFrontBack = 3;
50
+
51
+ /**
52
+ * Gives unfiltered shadow maps - fastest, but lowest quality.
53
+ *
54
+ * @type {number}
55
+ * @constant
56
+ */
9
57
  export const BasicShadowMap = 0;
58
+
59
+ /**
60
+ * Filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm.
61
+ *
62
+ * @type {number}
63
+ * @constant
64
+ */
10
65
  export const PCFShadowMap = 1;
66
+
67
+ /**
68
+ * Filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm with
69
+ * better soft shadows especially when using low-resolution shadow maps.
70
+ *
71
+ * @type {number}
72
+ * @constant
73
+ */
11
74
  export const PCFSoftShadowMap = 2;
75
+
76
+ /**
77
+ * Filters shadow maps using the Variance Shadow Map (VSM) algorithm.
78
+ * When using VSMShadowMap all shadow receivers will also cast shadows.
79
+ *
80
+ * @type {number}
81
+ * @constant
82
+ */
12
83
  export const VSMShadowMap = 3;
84
+
85
+ /**
86
+ * Only front faces are rendered.
87
+ *
88
+ * @type {number}
89
+ * @constant
90
+ */
13
91
  export const FrontSide = 0;
92
+
93
+ /**
94
+ * Only back faces are rendered.
95
+ *
96
+ * @type {number}
97
+ * @constant
98
+ */
14
99
  export const BackSide = 1;
100
+
101
+ /**
102
+ * Both front and back faces are rendered.
103
+ *
104
+ * @type {number}
105
+ * @constant
106
+ */
15
107
  export const DoubleSide = 2;
108
+
109
+ /**
110
+ * No blending is performed which effectively disables
111
+ * alpha transparency.
112
+ *
113
+ * @type {number}
114
+ * @constant
115
+ */
16
116
  export const NoBlending = 0;
117
+
118
+ /**
119
+ * The default blending.
120
+ *
121
+ * @type {number}
122
+ * @constant
123
+ */
17
124
  export const NormalBlending = 1;
125
+
126
+ /**
127
+ * Represents additive blending.
128
+ *
129
+ * @type {number}
130
+ * @constant
131
+ */
18
132
  export const AdditiveBlending = 2;
133
+
134
+ /**
135
+ * Represents subtractive blending.
136
+ *
137
+ * @type {number}
138
+ * @constant
139
+ */
19
140
  export const SubtractiveBlending = 3;
141
+
142
+ /**
143
+ * Represents multiply blending.
144
+ *
145
+ * @type {number}
146
+ * @constant
147
+ */
20
148
  export const MultiplyBlending = 4;
149
+
150
+ /**
151
+ * Represents custom blending.
152
+ *
153
+ * @type {number}
154
+ * @constant
155
+ */
21
156
  export const CustomBlending = 5;
157
+
158
+ /**
159
+ * A `source + destination` blending equation.
160
+ *
161
+ * @type {number}
162
+ * @constant
163
+ */
22
164
  export const AddEquation = 100;
165
+
166
+ /**
167
+ * A `source - destination` blending equation.
168
+ *
169
+ * @type {number}
170
+ * @constant
171
+ */
23
172
  export const SubtractEquation = 101;
173
+
174
+ /**
175
+ * A `destination - source` blending equation.
176
+ *
177
+ * @type {number}
178
+ * @constant
179
+ */
24
180
  export const ReverseSubtractEquation = 102;
181
+
182
+ /**
183
+ * A blend equation that uses the minimum of source and destination.
184
+ *
185
+ * @type {number}
186
+ * @constant
187
+ */
25
188
  export const MinEquation = 103;
189
+
190
+ /**
191
+ * A blend equation that uses the maximum of source and destination.
192
+ *
193
+ * @type {number}
194
+ * @constant
195
+ */
26
196
  export const MaxEquation = 104;
197
+
198
+ /**
199
+ * Multiplies all colors by `0`.
200
+ *
201
+ * @type {number}
202
+ * @constant
203
+ */
27
204
  export const ZeroFactor = 200;
205
+
206
+ /**
207
+ * Multiplies all colors by `1`.
208
+ *
209
+ * @type {number}
210
+ * @constant
211
+ */
28
212
  export const OneFactor = 201;
213
+
214
+ /**
215
+ * Multiplies all colors by the source colors.
216
+ *
217
+ * @type {number}
218
+ * @constant
219
+ */
29
220
  export const SrcColorFactor = 202;
221
+
222
+ /**
223
+ * Multiplies all colors by `1` minus each source color.
224
+ *
225
+ * @type {number}
226
+ * @constant
227
+ */
30
228
  export const OneMinusSrcColorFactor = 203;
229
+
230
+ /**
231
+ * Multiplies all colors by the source alpha value.
232
+ *
233
+ * @type {number}
234
+ * @constant
235
+ */
31
236
  export const SrcAlphaFactor = 204;
237
+
238
+ /**
239
+ * Multiplies all colors by 1 minus the source alpha value.
240
+ *
241
+ * @type {number}
242
+ * @constant
243
+ */
32
244
  export const OneMinusSrcAlphaFactor = 205;
245
+
246
+ /**
247
+ * Multiplies all colors by the destination alpha value.
248
+ *
249
+ * @type {number}
250
+ * @constant
251
+ */
33
252
  export const DstAlphaFactor = 206;
253
+
254
+ /**
255
+ * Multiplies all colors by `1` minus the destination alpha value.
256
+ *
257
+ * @type {number}
258
+ * @constant
259
+ */
34
260
  export const OneMinusDstAlphaFactor = 207;
261
+
262
+ /**
263
+ * Multiplies all colors by the destination color.
264
+ *
265
+ * @type {number}
266
+ * @constant
267
+ */
35
268
  export const DstColorFactor = 208;
269
+
270
+ /**
271
+ * Multiplies all colors by `1` minus each destination color.
272
+ *
273
+ * @type {number}
274
+ * @constant
275
+ */
36
276
  export const OneMinusDstColorFactor = 209;
277
+
278
+ /**
279
+ * Multiplies the RGB colors by the smaller of either the source alpha
280
+ * value or the value of `1` minus the destination alpha value. The alpha
281
+ * value is multiplied by `1`.
282
+ *
283
+ * @type {number}
284
+ * @constant
285
+ */
37
286
  export const SrcAlphaSaturateFactor = 210;
287
+
288
+ /**
289
+ * Multiplies all colors by a constant color.
290
+ *
291
+ * @type {number}
292
+ * @constant
293
+ */
38
294
  export const ConstantColorFactor = 211;
295
+
296
+ /**
297
+ * Multiplies all colors by `1` minus a constant color.
298
+ *
299
+ * @type {number}
300
+ * @constant
301
+ */
39
302
  export const OneMinusConstantColorFactor = 212;
303
+
304
+ /**
305
+ * Multiplies all colors by a constant alpha value.
306
+ *
307
+ * @type {number}
308
+ * @constant
309
+ */
40
310
  export const ConstantAlphaFactor = 213;
311
+
312
+ /**
313
+ * Multiplies all colors by 1 minus a constant alpha value.
314
+ *
315
+ * @type {number}
316
+ * @constant
317
+ */
41
318
  export const OneMinusConstantAlphaFactor = 214;
319
+
320
+ /**
321
+ * Never pass.
322
+ *
323
+ * @type {number}
324
+ * @constant
325
+ */
42
326
  export const NeverDepth = 0;
327
+
328
+ /**
329
+ * Always pass.
330
+ *
331
+ * @type {number}
332
+ * @constant
333
+ */
43
334
  export const AlwaysDepth = 1;
335
+
336
+ /**
337
+ * Pass if the incoming value is less than the depth buffer value.
338
+ *
339
+ * @type {number}
340
+ * @constant
341
+ */
44
342
  export const LessDepth = 2;
343
+
344
+ /**
345
+ * Pass if the incoming value is less than or equal to the depth buffer value.
346
+ *
347
+ * @type {number}
348
+ * @constant
349
+ */
45
350
  export const LessEqualDepth = 3;
351
+
352
+ /**
353
+ * Pass if the incoming value equals the depth buffer value.
354
+ *
355
+ * @type {number}
356
+ * @constant
357
+ */
46
358
  export const EqualDepth = 4;
359
+
360
+ /**
361
+ * Pass if the incoming value is greater than or equal to the depth buffer value.
362
+ *
363
+ * @type {number}
364
+ * @constant
365
+ */
47
366
  export const GreaterEqualDepth = 5;
367
+
368
+ /**
369
+ * Pass if the incoming value is greater than the depth buffer value.
370
+ *
371
+ * @type {number}
372
+ * @constant
373
+ */
48
374
  export const GreaterDepth = 6;
375
+
376
+ /**
377
+ * Pass if the incoming value is not equal to the depth buffer value.
378
+ *
379
+ * @type {number}
380
+ * @constant
381
+ */
49
382
  export const NotEqualDepth = 7;
383
+
384
+ /**
385
+ * Multiplies the environment map color with the surface color.
386
+ *
387
+ * @type {number}
388
+ * @constant
389
+ */
50
390
  export const MultiplyOperation = 0;
391
+
392
+ /**
393
+ * Uses reflectivity to blend between the two colors.
394
+ *
395
+ * @type {number}
396
+ * @constant
397
+ */
51
398
  export const MixOperation = 1;
399
+
400
+ /**
401
+ * Adds the two colors.
402
+ *
403
+ * @type {number}
404
+ * @constant
405
+ */
52
406
  export const AddOperation = 2;
407
+
408
+ /**
409
+ * No tone mapping is applied.
410
+ *
411
+ * @type {number}
412
+ * @constant
413
+ */
53
414
  export const NoToneMapping = 0;
415
+
416
+ /**
417
+ * Linear tone mapping.
418
+ *
419
+ * @type {number}
420
+ * @constant
421
+ */
54
422
  export const LinearToneMapping = 1;
423
+
424
+ /**
425
+ * Reinhard tone mapping.
426
+ *
427
+ * @type {number}
428
+ * @constant
429
+ */
55
430
  export const ReinhardToneMapping = 2;
431
+
432
+ /**
433
+ * Cineon tone mapping.
434
+ *
435
+ * @type {number}
436
+ * @constant
437
+ */
56
438
  export const CineonToneMapping = 3;
439
+
440
+ /**
441
+ * ACES Filmic tone mapping.
442
+ *
443
+ * @type {number}
444
+ * @constant
445
+ */
57
446
  export const ACESFilmicToneMapping = 4;
447
+
448
+ /**
449
+ * Custom tone mapping.
450
+ *
451
+ * Expects a custom implementation by modifying shader code of the material's fragment shader.
452
+ *
453
+ * @type {number}
454
+ * @constant
455
+ */
58
456
  export const CustomToneMapping = 5;
457
+
458
+ /**
459
+ * AgX tone mapping.
460
+ *
461
+ * @type {number}
462
+ * @constant
463
+ */
59
464
  export const AgXToneMapping = 6;
465
+
466
+ /**
467
+ * Neutral tone mapping.
468
+ *
469
+ * Implementation based on the Khronos 3D Commerce Group standard tone mapping.
470
+ *
471
+ * @type {number}
472
+ * @constant
473
+ */
60
474
  export const NeutralToneMapping = 7;
475
+
476
+ /**
477
+ * The skinned mesh shares the same world space as the skeleton.
478
+ *
479
+ * @type {string}
480
+ * @constant
481
+ */
61
482
  export const AttachedBindMode = 'attached';
483
+
484
+ /**
485
+ * The skinned mesh does not share the same world space as the skeleton.
486
+ * This is useful when a skeleton is shared across multiple skinned meshes.
487
+ *
488
+ * @type {string}
489
+ * @constant
490
+ */
62
491
  export const DetachedBindMode = 'detached';
63
492
 
493
+ /**
494
+ * Maps textures using the geometry's UV coordinates.
495
+ *
496
+ * @type {number}
497
+ * @constant
498
+ */
64
499
  export const UVMapping = 300;
500
+
501
+ /**
502
+ * Reflection mapping for cube textures.
503
+ *
504
+ * @type {number}
505
+ * @constant
506
+ */
65
507
  export const CubeReflectionMapping = 301;
508
+
509
+ /**
510
+ * Refraction mapping for cube textures.
511
+ *
512
+ * @type {number}
513
+ * @constant
514
+ */
66
515
  export const CubeRefractionMapping = 302;
516
+
517
+ /**
518
+ * Reflection mapping for equirectangular textures.
519
+ *
520
+ * @type {number}
521
+ * @constant
522
+ */
67
523
  export const EquirectangularReflectionMapping = 303;
524
+
525
+ /**
526
+ * Refraction mapping for equirectangular textures.
527
+ *
528
+ * @type {number}
529
+ * @constant
530
+ */
68
531
  export const EquirectangularRefractionMapping = 304;
532
+
533
+ /**
534
+ * Reflection mapping for PMREM textures.
535
+ *
536
+ * @type {number}
537
+ * @constant
538
+ */
69
539
  export const CubeUVReflectionMapping = 306;
540
+
541
+ /**
542
+ * The texture will simply repeat to infinity.
543
+ *
544
+ * @type {number}
545
+ * @constant
546
+ */
70
547
  export const RepeatWrapping = 1000;
548
+
549
+ /**
550
+ * The last pixel of the texture stretches to the edge of the mesh.
551
+ *
552
+ * @type {number}
553
+ * @constant
554
+ */
71
555
  export const ClampToEdgeWrapping = 1001;
556
+
557
+ /**
558
+ * The texture will repeats to infinity, mirroring on each repeat.
559
+ *
560
+ * @type {number}
561
+ * @constant
562
+ */
72
563
  export const MirroredRepeatWrapping = 1002;
564
+
565
+ /**
566
+ * Returns the value of the texture element that is nearest (in Manhattan distance)
567
+ * to the specified texture coordinates.
568
+ *
569
+ * @type {number}
570
+ * @constant
571
+ */
73
572
  export const NearestFilter = 1003;
573
+
574
+ /**
575
+ * Chooses the mipmap that most closely matches the size of the pixel being textured
576
+ * and uses the `NearestFilter` criterion (the texel nearest to the center of the pixel)
577
+ * to produce a texture value.
578
+ *
579
+ * @type {number}
580
+ * @constant
581
+ */
74
582
  export const NearestMipmapNearestFilter = 1004;
75
- export const NearestMipMapNearestFilter = 1004;
583
+ export const NearestMipMapNearestFilter = 1004; // legacy
584
+
585
+ /**
586
+ * Chooses the two mipmaps that most closely match the size of the pixel being textured and
587
+ * uses the `NearestFilter` criterion to produce a texture value from each mipmap.
588
+ * The final texture value is a weighted average of those two values.
589
+ *
590
+ * @type {number}
591
+ * @constant
592
+ */
76
593
  export const NearestMipmapLinearFilter = 1005;
77
- export const NearestMipMapLinearFilter = 1005;
594
+ export const NearestMipMapLinearFilter = 1005; // legacy
595
+
596
+ /**
597
+ * Returns the weighted average of the four texture elements that are closest to the specified
598
+ * texture coordinates, and can include items wrapped or repeated from other parts of a texture,
599
+ * depending on the values of `wrapS` and `wrapT`, and on the exact mapping.
600
+ *
601
+ * @type {number}
602
+ * @constant
603
+ */
78
604
  export const LinearFilter = 1006;
605
+
606
+ /**
607
+ * Chooses the mipmap that most closely matches the size of the pixel being textured and uses
608
+ * the `LinearFilter` criterion (a weighted average of the four texels that are closest to the
609
+ * center of the pixel) to produce a texture value.
610
+ *
611
+ * @type {number}
612
+ * @constant
613
+ */
79
614
  export const LinearMipmapNearestFilter = 1007;
80
- export const LinearMipMapNearestFilter = 1007;
615
+ export const LinearMipMapNearestFilter = 1007; // legacy
616
+
617
+ /**
618
+ * Chooses the two mipmaps that most closely match the size of the pixel being textured and uses
619
+ * the `LinearFilter` criterion to produce a texture value from each mipmap. The final texture value
620
+ * is a weighted average of those two values.
621
+ *
622
+ * @type {number}
623
+ * @constant
624
+ */
81
625
  export const LinearMipmapLinearFilter = 1008;
82
- export const LinearMipMapLinearFilter = 1008;
626
+ export const LinearMipMapLinearFilter = 1008; // legacy
627
+
628
+ /**
629
+ * An unsigned byte data type for textures.
630
+ *
631
+ * @type {number}
632
+ * @constant
633
+ */
83
634
  export const UnsignedByteType = 1009;
635
+
636
+ /**
637
+ * A byte data type for textures.
638
+ *
639
+ * @type {number}
640
+ * @constant
641
+ */
84
642
  export const ByteType = 1010;
643
+
644
+ /**
645
+ * A short data type for textures.
646
+ *
647
+ * @type {number}
648
+ * @constant
649
+ */
85
650
  export const ShortType = 1011;
651
+
652
+ /**
653
+ * An unsigned short data type for textures.
654
+ *
655
+ * @type {number}
656
+ * @constant
657
+ */
86
658
  export const UnsignedShortType = 1012;
659
+
660
+ /**
661
+ * An int data type for textures.
662
+ *
663
+ * @type {number}
664
+ * @constant
665
+ */
87
666
  export const IntType = 1013;
667
+
668
+ /**
669
+ * An unsigned int data type for textures.
670
+ *
671
+ * @type {number}
672
+ * @constant
673
+ */
88
674
  export const UnsignedIntType = 1014;
675
+
676
+ /**
677
+ * A float data type for textures.
678
+ *
679
+ * @type {number}
680
+ * @constant
681
+ */
89
682
  export const FloatType = 1015;
683
+
684
+ /**
685
+ * A half float data type for textures.
686
+ *
687
+ * @type {number}
688
+ * @constant
689
+ */
90
690
  export const HalfFloatType = 1016;
691
+
692
+ /**
693
+ * An unsigned short 4_4_4_4 (packed) data type for textures.
694
+ *
695
+ * @type {number}
696
+ * @constant
697
+ */
91
698
  export const UnsignedShort4444Type = 1017;
699
+
700
+ /**
701
+ * An unsigned short 5_5_5_1 (packed) data type for textures.
702
+ *
703
+ * @type {number}
704
+ * @constant
705
+ */
92
706
  export const UnsignedShort5551Type = 1018;
707
+
708
+ /**
709
+ * An unsigned int 24_8 data type for textures.
710
+ *
711
+ * @type {number}
712
+ * @constant
713
+ */
93
714
  export const UnsignedInt248Type = 1020;
715
+
716
+ /**
717
+ * An unsigned int 5_9_9_9 (packed) data type for textures.
718
+ *
719
+ * @type {number}
720
+ * @constant
721
+ */
94
722
  export const UnsignedInt5999Type = 35902;
723
+
724
+ /**
725
+ * Discards the red, green and blue components and reads just the alpha component.
726
+ *
727
+ * @type {number}
728
+ * @constant
729
+ */
95
730
  export const AlphaFormat = 1021;
731
+
732
+ /**
733
+ * Discards the alpha component and reads the red, green and blue component.
734
+ *
735
+ * @type {number}
736
+ * @constant
737
+ */
96
738
  export const RGBFormat = 1022;
739
+
740
+ /**
741
+ * Reads the red, green, blue and alpha components.
742
+ *
743
+ * @type {number}
744
+ * @constant
745
+ */
97
746
  export const RGBAFormat = 1023;
747
+
748
+ /**
749
+ * reads each element as a single luminance component. This is then converted to a floating point,
750
+ * clamped to the range `[0,1]`, and then assembled into an RGBA element by placing the luminance value
751
+ * in the red, green and blue channels, and attaching 1.0 to the alpha channel.
752
+ *
753
+ * @type {number}
754
+ * @constant
755
+ */
98
756
  export const LuminanceFormat = 1024;
757
+
758
+ /**
759
+ * Reads each element as a luminance/alpha double. The same process occurs as for the `LuminanceFormat`,
760
+ * except that the alpha channel may have values other than `1.0`.
761
+ *
762
+ * @type {number}
763
+ * @constant
764
+ */
99
765
  export const LuminanceAlphaFormat = 1025;
766
+
767
+ /**
768
+ * Reads each element as a single depth value, converts it to floating point, and clamps to the range `[0,1]`.
769
+ *
770
+ * @type {number}
771
+ * @constant
772
+ */
100
773
  export const DepthFormat = 1026;
774
+
775
+ /**
776
+ * Reads each element is a pair of depth and stencil values. The depth component of the pair is interpreted as
777
+ * in `DepthFormat`. The stencil component is interpreted based on the depth + stencil internal format.
778
+ *
779
+ * @type {number}
780
+ * @constant
781
+ */
101
782
  export const DepthStencilFormat = 1027;
783
+
784
+ /**
785
+ * Discards the green, blue and alpha components and reads just the red component.
786
+ *
787
+ * @type {number}
788
+ * @constant
789
+ */
102
790
  export const RedFormat = 1028;
791
+
792
+ /**
793
+ * Discards the green, blue and alpha components and reads just the red component. The texels are read as integers instead of floating point.
794
+ *
795
+ * @type {number}
796
+ * @constant
797
+ */
103
798
  export const RedIntegerFormat = 1029;
799
+
800
+ /**
801
+ * Discards the alpha, and blue components and reads the red, and green components.
802
+ *
803
+ * @type {number}
804
+ * @constant
805
+ */
104
806
  export const RGFormat = 1030;
807
+
808
+ /**
809
+ * Discards the alpha, and blue components and reads the red, and green components. The texels are read as integers instead of floating point.
810
+ *
811
+ * @type {number}
812
+ * @constant
813
+ */
105
814
  export const RGIntegerFormat = 1031;
815
+
816
+ /**
817
+ * Discards the alpha component and reads the red, green and blue component. The texels are read as integers instead of floating point.
818
+ *
819
+ * @type {number}
820
+ * @constant
821
+ */
106
822
  export const RGBIntegerFormat = 1032;
823
+
824
+ /**
825
+ * Reads the red, green, blue and alpha components. The texels are read as integers instead of floating point.
826
+ *
827
+ * @type {number}
828
+ * @constant
829
+ */
107
830
  export const RGBAIntegerFormat = 1033;
108
831
 
832
+ /**
833
+ * A DXT1-compressed image in an RGB image format.
834
+ *
835
+ * @type {number}
836
+ * @constant
837
+ */
109
838
  export const RGB_S3TC_DXT1_Format = 33776;
839
+
840
+ /**
841
+ * A DXT1-compressed image in an RGB image format with a simple on/off alpha value.
842
+ *
843
+ * @type {number}
844
+ * @constant
845
+ */
110
846
  export const RGBA_S3TC_DXT1_Format = 33777;
847
+
848
+ /**
849
+ * A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression.
850
+ *
851
+ * @type {number}
852
+ * @constant
853
+ */
111
854
  export const RGBA_S3TC_DXT3_Format = 33778;
855
+
856
+ /**
857
+ * A DXT5-compressed image in an RGBA image format. It also provides a 4:1 compression, but differs to the DXT3
858
+ * compression in how the alpha compression is done.
859
+ *
860
+ * @type {number}
861
+ * @constant
862
+ */
112
863
  export const RGBA_S3TC_DXT5_Format = 33779;
864
+
865
+ /**
866
+ * PVRTC RGB compression in 4-bit mode. One block for each 4×4 pixels.
867
+ *
868
+ * @type {number}
869
+ * @constant
870
+ */
113
871
  export const RGB_PVRTC_4BPPV1_Format = 35840;
872
+
873
+ /**
874
+ * PVRTC RGB compression in 2-bit mode. One block for each 8×4 pixels.
875
+ *
876
+ * @type {number}
877
+ * @constant
878
+ */
114
879
  export const RGB_PVRTC_2BPPV1_Format = 35841;
880
+
881
+ /**
882
+ * PVRTC RGBA compression in 4-bit mode. One block for each 4×4 pixels.
883
+ *
884
+ * @type {number}
885
+ * @constant
886
+ */
115
887
  export const RGBA_PVRTC_4BPPV1_Format = 35842;
888
+
889
+ /**
890
+ * PVRTC RGBA compression in 2-bit mode. One block for each 8×4 pixels.
891
+ *
892
+ * @type {number}
893
+ * @constant
894
+ */
116
895
  export const RGBA_PVRTC_2BPPV1_Format = 35843;
896
+
897
+ /**
898
+ * ETC1 RGB format.
899
+ *
900
+ * @type {number}
901
+ * @constant
902
+ */
117
903
  export const RGB_ETC1_Format = 36196;
904
+
905
+ /**
906
+ * ETC2 RGB format.
907
+ *
908
+ * @type {number}
909
+ * @constant
910
+ */
118
911
  export const RGB_ETC2_Format = 37492;
912
+
913
+ /**
914
+ * ETC2 RGBA format.
915
+ *
916
+ * @type {number}
917
+ * @constant
918
+ */
119
919
  export const RGBA_ETC2_EAC_Format = 37496;
920
+
921
+ /**
922
+ * ASTC RGBA 4x4 format.
923
+ *
924
+ * @type {number}
925
+ * @constant
926
+ */
120
927
  export const RGBA_ASTC_4x4_Format = 37808;
928
+
929
+ /**
930
+ * ASTC RGBA 5x4 format.
931
+ *
932
+ * @type {number}
933
+ * @constant
934
+ */
121
935
  export const RGBA_ASTC_5x4_Format = 37809;
936
+
937
+ /**
938
+ * ASTC RGBA 5x5 format.
939
+ *
940
+ * @type {number}
941
+ * @constant
942
+ */
122
943
  export const RGBA_ASTC_5x5_Format = 37810;
944
+
945
+ /**
946
+ * ASTC RGBA 6x5 format.
947
+ *
948
+ * @type {number}
949
+ * @constant
950
+ */
123
951
  export const RGBA_ASTC_6x5_Format = 37811;
952
+
953
+ /**
954
+ * ASTC RGBA 6x6 format.
955
+ *
956
+ * @type {number}
957
+ * @constant
958
+ */
124
959
  export const RGBA_ASTC_6x6_Format = 37812;
960
+
961
+ /**
962
+ * ASTC RGBA 8x5 format.
963
+ *
964
+ * @type {number}
965
+ * @constant
966
+ */
125
967
  export const RGBA_ASTC_8x5_Format = 37813;
968
+
969
+ /**
970
+ * ASTC RGBA 8x6 format.
971
+ *
972
+ * @type {number}
973
+ * @constant
974
+ */
126
975
  export const RGBA_ASTC_8x6_Format = 37814;
976
+
977
+ /**
978
+ * ASTC RGBA 8x8 format.
979
+ *
980
+ * @type {number}
981
+ * @constant
982
+ */
127
983
  export const RGBA_ASTC_8x8_Format = 37815;
984
+
985
+ /**
986
+ * ASTC RGBA 10x5 format.
987
+ *
988
+ * @type {number}
989
+ * @constant
990
+ */
128
991
  export const RGBA_ASTC_10x5_Format = 37816;
992
+
993
+ /**
994
+ * ASTC RGBA 10x6 format.
995
+ *
996
+ * @type {number}
997
+ * @constant
998
+ */
129
999
  export const RGBA_ASTC_10x6_Format = 37817;
1000
+
1001
+ /**
1002
+ * ASTC RGBA 10x8 format.
1003
+ *
1004
+ * @type {number}
1005
+ * @constant
1006
+ */
130
1007
  export const RGBA_ASTC_10x8_Format = 37818;
1008
+
1009
+ /**
1010
+ * ASTC RGBA 10x10 format.
1011
+ *
1012
+ * @type {number}
1013
+ * @constant
1014
+ */
131
1015
  export const RGBA_ASTC_10x10_Format = 37819;
1016
+
1017
+ /**
1018
+ * ASTC RGBA 12x10 format.
1019
+ *
1020
+ * @type {number}
1021
+ * @constant
1022
+ */
132
1023
  export const RGBA_ASTC_12x10_Format = 37820;
1024
+
1025
+ /**
1026
+ * ASTC RGBA 12x12 format.
1027
+ *
1028
+ * @type {number}
1029
+ * @constant
1030
+ */
133
1031
  export const RGBA_ASTC_12x12_Format = 37821;
1032
+
1033
+ /**
1034
+ * BPTC RGBA format.
1035
+ *
1036
+ * @type {number}
1037
+ * @constant
1038
+ */
134
1039
  export const RGBA_BPTC_Format = 36492;
1040
+
1041
+ /**
1042
+ * BPTC Signed RGB format.
1043
+ *
1044
+ * @type {number}
1045
+ * @constant
1046
+ */
135
1047
  export const RGB_BPTC_SIGNED_Format = 36494;
1048
+
1049
+ /**
1050
+ * BPTC Unsigned RGB format.
1051
+ *
1052
+ * @type {number}
1053
+ * @constant
1054
+ */
136
1055
  export const RGB_BPTC_UNSIGNED_Format = 36495;
1056
+
1057
+ /**
1058
+ * RGTC1 Red format.
1059
+ *
1060
+ * @type {number}
1061
+ * @constant
1062
+ */
137
1063
  export const RED_RGTC1_Format = 36283;
1064
+
1065
+ /**
1066
+ * RGTC1 Signed Red format.
1067
+ *
1068
+ * @type {number}
1069
+ * @constant
1070
+ */
138
1071
  export const SIGNED_RED_RGTC1_Format = 36284;
1072
+
1073
+ /**
1074
+ * RGTC2 Red Green format.
1075
+ *
1076
+ * @type {number}
1077
+ * @constant
1078
+ */
139
1079
  export const RED_GREEN_RGTC2_Format = 36285;
1080
+
1081
+ /**
1082
+ * RGTC2 Signed Red Green format.
1083
+ *
1084
+ * @type {number}
1085
+ * @constant
1086
+ */
140
1087
  export const SIGNED_RED_GREEN_RGTC2_Format = 36286;
1088
+
1089
+ /**
1090
+ * Animations are played once.
1091
+ *
1092
+ * @type {number}
1093
+ * @constant
1094
+ */
141
1095
  export const LoopOnce = 2200;
1096
+
1097
+ /**
1098
+ * Animations are played with a chosen number of repetitions, each time jumping from
1099
+ * the end of the clip directly to its beginning.
1100
+ *
1101
+ * @type {number}
1102
+ * @constant
1103
+ */
142
1104
  export const LoopRepeat = 2201;
1105
+
1106
+ /**
1107
+ * Animations are played with a chosen number of repetitions, alternately playing forward
1108
+ * and backward.
1109
+ *
1110
+ * @type {number}
1111
+ * @constant
1112
+ */
143
1113
  export const LoopPingPong = 2202;
1114
+
1115
+ /**
1116
+ * Discrete interpolation mode for keyframe tracks.
1117
+ *
1118
+ * @type {number}
1119
+ * @constant
1120
+ */
144
1121
  export const InterpolateDiscrete = 2300;
1122
+
1123
+ /**
1124
+ * Linear interpolation mode for keyframe tracks.
1125
+ *
1126
+ * @type {number}
1127
+ * @constant
1128
+ */
145
1129
  export const InterpolateLinear = 2301;
1130
+
1131
+ /**
1132
+ * Smooth interpolation mode for keyframe tracks.
1133
+ *
1134
+ * @type {number}
1135
+ * @constant
1136
+ */
146
1137
  export const InterpolateSmooth = 2302;
1138
+
1139
+ /**
1140
+ * Zero curvature ending for animations.
1141
+ *
1142
+ * @type {number}
1143
+ * @constant
1144
+ */
147
1145
  export const ZeroCurvatureEnding = 2400;
1146
+
1147
+ /**
1148
+ * Zero slope ending for animations.
1149
+ *
1150
+ * @type {number}
1151
+ * @constant
1152
+ */
148
1153
  export const ZeroSlopeEnding = 2401;
1154
+
1155
+ /**
1156
+ * Wrap around ending for animations.
1157
+ *
1158
+ * @type {number}
1159
+ * @constant
1160
+ */
149
1161
  export const WrapAroundEnding = 2402;
1162
+
1163
+ /**
1164
+ * Default animation blend mode.
1165
+ *
1166
+ * @type {number}
1167
+ * @constant
1168
+ */
150
1169
  export const NormalAnimationBlendMode = 2500;
1170
+
1171
+ /**
1172
+ * Additive animation blend mode. Can be used to layer motions on top of
1173
+ * each other to build complex performances from smaller re-usable assets.
1174
+ *
1175
+ * @type {number}
1176
+ * @constant
1177
+ */
151
1178
  export const AdditiveAnimationBlendMode = 2501;
1179
+
1180
+ /**
1181
+ * For every three vertices draw a single triangle.
1182
+ *
1183
+ * @type {number}
1184
+ * @constant
1185
+ */
152
1186
  export const TrianglesDrawMode = 0;
1187
+
1188
+ /**
1189
+ * For each vertex draw a triangle from the last three vertices.
1190
+ *
1191
+ * @type {number}
1192
+ * @constant
1193
+ */
153
1194
  export const TriangleStripDrawMode = 1;
1195
+
1196
+ /**
1197
+ * For each vertex draw a triangle from the first vertex and the last two vertices.
1198
+ *
1199
+ * @type {number}
1200
+ * @constant
1201
+ */
154
1202
  export const TriangleFanDrawMode = 2;
1203
+
1204
+ /**
1205
+ * Basic depth packing.
1206
+ *
1207
+ * @type {number}
1208
+ * @constant
1209
+ */
155
1210
  export const BasicDepthPacking = 3200;
1211
+
1212
+ /**
1213
+ * A depth value is packed into 32 bit RGBA.
1214
+ *
1215
+ * @type {number}
1216
+ * @constant
1217
+ */
156
1218
  export const RGBADepthPacking = 3201;
1219
+
1220
+ /**
1221
+ * A depth value is packed into 24 bit RGB.
1222
+ *
1223
+ * @type {number}
1224
+ * @constant
1225
+ */
157
1226
  export const RGBDepthPacking = 3202;
1227
+
1228
+ /**
1229
+ * A depth value is packed into 16 bit RG.
1230
+ *
1231
+ * @type {number}
1232
+ * @constant
1233
+ */
158
1234
  export const RGDepthPacking = 3203;
1235
+
1236
+ /**
1237
+ * Normal information is relative to the underlying surface.
1238
+ *
1239
+ * @type {number}
1240
+ * @constant
1241
+ */
159
1242
  export const TangentSpaceNormalMap = 0;
1243
+
1244
+ /**
1245
+ * Normal information is relative to the object orientation.
1246
+ *
1247
+ * @type {number}
1248
+ * @constant
1249
+ */
160
1250
  export const ObjectSpaceNormalMap = 1;
161
1251
 
162
1252
  // Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.
1253
+
1254
+ /**
1255
+ * No color space.
1256
+ *
1257
+ * @type {string}
1258
+ * @constant
1259
+ */
163
1260
  export const NoColorSpace = '';
1261
+
1262
+ /**
1263
+ * sRGB color space.
1264
+ *
1265
+ * @type {string}
1266
+ * @constant
1267
+ */
164
1268
  export const SRGBColorSpace = 'srgb';
1269
+
1270
+ /**
1271
+ * sRGB-linear color space.
1272
+ *
1273
+ * @type {string}
1274
+ * @constant
1275
+ */
165
1276
  export const LinearSRGBColorSpace = 'srgb-linear';
166
1277
 
1278
+ /**
1279
+ * Linear transfer function.
1280
+ *
1281
+ * @type {string}
1282
+ * @constant
1283
+ */
167
1284
  export const LinearTransfer = 'linear';
1285
+
1286
+ /**
1287
+ * sRGB transfer function.
1288
+ *
1289
+ * @type {string}
1290
+ * @constant
1291
+ */
168
1292
  export const SRGBTransfer = 'srgb';
169
1293
 
1294
+ /**
1295
+ * Sets the stencil buffer value to `0`.
1296
+ *
1297
+ * @type {number}
1298
+ * @constant
1299
+ */
170
1300
  export const ZeroStencilOp = 0;
1301
+
1302
+ /**
1303
+ * Keeps the current value.
1304
+ *
1305
+ * @type {number}
1306
+ * @constant
1307
+ */
171
1308
  export const KeepStencilOp = 7680;
1309
+
1310
+ /**
1311
+ * Sets the stencil buffer value to the specified reference value.
1312
+ *
1313
+ * @type {number}
1314
+ * @constant
1315
+ */
172
1316
  export const ReplaceStencilOp = 7681;
1317
+
1318
+ /**
1319
+ * Increments the current stencil buffer value. Clamps to the maximum representable unsigned value.
1320
+ *
1321
+ * @type {number}
1322
+ * @constant
1323
+ */
173
1324
  export const IncrementStencilOp = 7682;
1325
+
1326
+ /**
1327
+ * Decrements the current stencil buffer value. Clamps to `0`.
1328
+ *
1329
+ * @type {number}
1330
+ * @constant
1331
+ */
174
1332
  export const DecrementStencilOp = 7683;
1333
+
1334
+ /**
1335
+ * Increments the current stencil buffer value. Wraps stencil buffer value to zero when incrementing
1336
+ * the maximum representable unsigned value.
1337
+ *
1338
+ * @type {number}
1339
+ * @constant
1340
+ */
175
1341
  export const IncrementWrapStencilOp = 34055;
1342
+
1343
+ /**
1344
+ * Decrements the current stencil buffer value. Wraps stencil buffer value to the maximum representable
1345
+ * unsigned value when decrementing a stencil buffer value of `0`.
1346
+ *
1347
+ * @type {number}
1348
+ * @constant
1349
+ */
176
1350
  export const DecrementWrapStencilOp = 34056;
1351
+
1352
+ /**
1353
+ * Inverts the current stencil buffer value bitwise.
1354
+ *
1355
+ * @type {number}
1356
+ * @constant
1357
+ */
177
1358
  export const InvertStencilOp = 5386;
178
1359
 
1360
+ /**
1361
+ * Will never return true.
1362
+ *
1363
+ * @type {number}
1364
+ * @constant
1365
+ */
179
1366
  export const NeverStencilFunc = 512;
1367
+
1368
+ /**
1369
+ * Will return true if the stencil reference value is less than the current stencil value.
1370
+ *
1371
+ * @type {number}
1372
+ * @constant
1373
+ */
180
1374
  export const LessStencilFunc = 513;
1375
+
1376
+ /**
1377
+ * Will return true if the stencil reference value is equal to the current stencil value.
1378
+ *
1379
+ * @type {number}
1380
+ * @constant
1381
+ */
181
1382
  export const EqualStencilFunc = 514;
1383
+
1384
+ /**
1385
+ * Will return true if the stencil reference value is less than or equal to the current stencil value.
1386
+ *
1387
+ * @type {number}
1388
+ * @constant
1389
+ */
182
1390
  export const LessEqualStencilFunc = 515;
1391
+
1392
+ /**
1393
+ * Will return true if the stencil reference value is greater than the current stencil value.
1394
+ *
1395
+ * @type {number}
1396
+ * @constant
1397
+ */
183
1398
  export const GreaterStencilFunc = 516;
1399
+
1400
+ /**
1401
+ * Will return true if the stencil reference value is not equal to the current stencil value.
1402
+ *
1403
+ * @type {number}
1404
+ * @constant
1405
+ */
184
1406
  export const NotEqualStencilFunc = 517;
1407
+
1408
+ /**
1409
+ * Will return true if the stencil reference value is greater than or equal to the current stencil value.
1410
+ *
1411
+ * @type {number}
1412
+ * @constant
1413
+ */
185
1414
  export const GreaterEqualStencilFunc = 518;
1415
+
1416
+ /**
1417
+ * Will always return true.
1418
+ *
1419
+ * @type {number}
1420
+ * @constant
1421
+ */
186
1422
  export const AlwaysStencilFunc = 519;
187
1423
 
1424
+ /**
1425
+ * Never pass.
1426
+ *
1427
+ * @type {number}
1428
+ * @constant
1429
+ */
188
1430
  export const NeverCompare = 512;
1431
+
1432
+ /**
1433
+ * Pass if the incoming value is less than the texture value.
1434
+ *
1435
+ * @type {number}
1436
+ * @constant
1437
+ */
189
1438
  export const LessCompare = 513;
1439
+
1440
+ /**
1441
+ * Pass if the incoming value equals the texture value.
1442
+ *
1443
+ * @type {number}
1444
+ * @constant
1445
+ */
190
1446
  export const EqualCompare = 514;
1447
+
1448
+ /**
1449
+ * Pass if the incoming value is less than or equal to the texture value.
1450
+ *
1451
+ * @type {number}
1452
+ * @constant
1453
+ */
191
1454
  export const LessEqualCompare = 515;
1455
+
1456
+ /**
1457
+ * Pass if the incoming value is greater than the texture value.
1458
+ *
1459
+ * @type {number}
1460
+ * @constant
1461
+ */
192
1462
  export const GreaterCompare = 516;
1463
+
1464
+ /**
1465
+ * Pass if the incoming value is not equal to the texture value.
1466
+ *
1467
+ * @type {number}
1468
+ * @constant
1469
+ */
193
1470
  export const NotEqualCompare = 517;
1471
+
1472
+ /**
1473
+ * Pass if the incoming value is greater than or equal to the texture value.
1474
+ *
1475
+ * @type {number}
1476
+ * @constant
1477
+ */
194
1478
  export const GreaterEqualCompare = 518;
1479
+
1480
+ /**
1481
+ * Always pass.
1482
+ *
1483
+ * @type {number}
1484
+ * @constant
1485
+ */
195
1486
  export const AlwaysCompare = 519;
196
1487
 
1488
+ /**
1489
+ * The contents are intended to be specified once by the application, and used many
1490
+ * times as the source for drawing and image specification commands.
1491
+ *
1492
+ * @type {number}
1493
+ * @constant
1494
+ */
197
1495
  export const StaticDrawUsage = 35044;
1496
+
1497
+ /**
1498
+ * The contents are intended to be respecified repeatedly by the application, and
1499
+ * used many times as the source for drawing and image specification commands.
1500
+ *
1501
+ * @type {number}
1502
+ * @constant
1503
+ */
198
1504
  export const DynamicDrawUsage = 35048;
1505
+
1506
+ /**
1507
+ * The contents are intended to be specified once by the application, and used at most
1508
+ * a few times as the source for drawing and image specification commands.
1509
+ *
1510
+ * @type {number}
1511
+ * @constant
1512
+ */
199
1513
  export const StreamDrawUsage = 35040;
1514
+
1515
+ /**
1516
+ * The contents are intended to be specified once by reading data from the 3D API, and queried
1517
+ * many times by the application.
1518
+ *
1519
+ * @type {number}
1520
+ * @constant
1521
+ */
200
1522
  export const StaticReadUsage = 35045;
1523
+
1524
+ /**
1525
+ * The contents are intended to be respecified repeatedly by reading data from the 3D API, and queried
1526
+ * many times by the application.
1527
+ *
1528
+ * @type {number}
1529
+ * @constant
1530
+ */
201
1531
  export const DynamicReadUsage = 35049;
1532
+
1533
+ /**
1534
+ * The contents are intended to be specified once by reading data from the 3D API, and queried at most
1535
+ * a few times by the application
1536
+ *
1537
+ * @type {number}
1538
+ * @constant
1539
+ */
202
1540
  export const StreamReadUsage = 35041;
1541
+
1542
+ /**
1543
+ * The contents are intended to be specified once by reading data from the 3D API, and used many times as
1544
+ * the source for WebGL drawing and image specification commands.
1545
+ *
1546
+ * @type {number}
1547
+ * @constant
1548
+ */
203
1549
  export const StaticCopyUsage = 35046;
1550
+
1551
+ /**
1552
+ * The contents are intended to be respecified repeatedly by reading data from the 3D API, and used many times
1553
+ * as the source for WebGL drawing and image specification commands.
1554
+ *
1555
+ * @type {number}
1556
+ * @constant
1557
+ */
204
1558
  export const DynamicCopyUsage = 35050;
1559
+
1560
+ /**
1561
+ * The contents are intended to be specified once by reading data from the 3D API, and used at most a few times
1562
+ * as the source for WebGL drawing and image specification commands.
1563
+ *
1564
+ * @type {number}
1565
+ * @constant
1566
+ */
205
1567
  export const StreamCopyUsage = 35042;
206
1568
 
1569
+ /**
1570
+ * GLSL 1 shader code.
1571
+ *
1572
+ * @type {string}
1573
+ * @constant
1574
+ */
207
1575
  export const GLSL1 = '100';
1576
+
1577
+ /**
1578
+ * GLSL 3 shader code.
1579
+ *
1580
+ * @type {string}
1581
+ * @constant
1582
+ */
208
1583
  export const GLSL3 = '300 es';
209
1584
 
1585
+ /**
1586
+ * WebGL coordinate system.
1587
+ *
1588
+ * @type {number}
1589
+ * @constant
1590
+ */
210
1591
  export const WebGLCoordinateSystem = 2000;
1592
+
1593
+ /**
1594
+ * WebGPU coordinate system.
1595
+ *
1596
+ * @type {number}
1597
+ * @constant
1598
+ */
211
1599
  export const WebGPUCoordinateSystem = 2001;
212
1600
 
1601
+ /**
1602
+ * Represents the different timestamp query types.
1603
+ *
1604
+ * @type {ConstantsTimestampQuery}
1605
+ * @constant
1606
+ */
213
1607
  export const TimestampQuery = {
214
1608
  COMPUTE: 'compute',
215
1609
  RENDER: 'render'
216
1610
  };
1611
+
1612
+ /**
1613
+ * This type represents mouse buttons and interaction types in context of controls.
1614
+ *
1615
+ * @typedef {Object} ConstantsMouse
1616
+ * @property {number} MIDDLE - The left mouse button.
1617
+ * @property {number} LEFT - The middle mouse button.
1618
+ * @property {number} RIGHT - The right mouse button.
1619
+ * @property {number} ROTATE - A rotate interaction.
1620
+ * @property {number} DOLLY - A dolly interaction.
1621
+ * @property {number} PAN - A pan interaction.
1622
+ **/
1623
+
1624
+ /**
1625
+ * This type represents touch interaction types in context of controls.
1626
+ *
1627
+ * @typedef {Object} ConstantsTouch
1628
+ * @property {number} ROTATE - A rotate interaction.
1629
+ * @property {number} PAN - A pan interaction.
1630
+ * @property {number} DOLLY_PAN - The dolly-pan interaction.
1631
+ * @property {number} DOLLY_ROTATE - A dolly-rotate interaction.
1632
+ **/
1633
+
1634
+ /**
1635
+ * This type represents the different timestamp query types.
1636
+ *
1637
+ * @typedef {Object} ConstantsTimestampQuery
1638
+ * @property {string} COMPUTE - A `compute` timestamp query.
1639
+ * @property {string} RENDER - A `render` timestamp query.
1640
+ **/