super-three 0.181.0 → 0.184.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 (539) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -4
  3. package/build/three.cjs +13152 -11354
  4. package/build/three.core.js +12319 -11539
  5. package/build/three.core.min.js +2 -2
  6. package/build/three.module.js +1808 -781
  7. package/build/three.module.min.js +2 -2
  8. package/build/three.tsl.js +27 -13
  9. package/build/three.tsl.min.js +2 -2
  10. package/build/three.webgpu.js +10523 -6263
  11. package/build/three.webgpu.min.js +2 -2
  12. package/build/three.webgpu.nodes.js +10484 -6262
  13. package/build/three.webgpu.nodes.min.js +2 -2
  14. package/examples/jsm/Addons.js +11 -3
  15. package/examples/jsm/animation/CCDIKSolver.js +7 -3
  16. package/examples/jsm/controls/ArcballControls.js +7 -4
  17. package/examples/jsm/controls/DragControls.js +2 -2
  18. package/examples/jsm/controls/FirstPersonControls.js +58 -54
  19. package/examples/jsm/controls/FlyControls.js +4 -0
  20. package/examples/jsm/controls/MapControls.js +55 -1
  21. package/examples/jsm/controls/OrbitControls.js +111 -8
  22. package/examples/jsm/controls/TrackballControls.js +8 -8
  23. package/examples/jsm/controls/TransformControls.js +34 -2
  24. package/examples/jsm/csm/CSM.js +2 -1
  25. package/examples/jsm/csm/CSMShadowNode.js +6 -2
  26. package/examples/jsm/effects/AnaglyphEffect.js +102 -7
  27. package/examples/jsm/environments/ColorEnvironment.js +59 -0
  28. package/examples/jsm/environments/RoomEnvironment.js +3 -0
  29. package/examples/jsm/exporters/EXRExporter.js +1 -1
  30. package/examples/jsm/exporters/GLTFExporter.js +152 -9
  31. package/examples/jsm/exporters/USDZExporter.js +22 -3
  32. package/examples/jsm/geometries/DecalGeometry.js +1 -1
  33. package/examples/jsm/geometries/TextGeometry.js +18 -0
  34. package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
  35. package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
  36. package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
  37. package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
  38. package/examples/jsm/helpers/ViewHelper.js +67 -8
  39. package/examples/jsm/inspector/Extension.js +13 -0
  40. package/examples/jsm/inspector/Inspector.js +203 -88
  41. package/examples/jsm/inspector/RendererInspector.js +14 -4
  42. package/examples/jsm/inspector/extensions/extensions.json +6 -0
  43. package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
  44. package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
  45. package/examples/jsm/inspector/tabs/Console.js +41 -7
  46. package/examples/jsm/inspector/tabs/Memory.js +128 -0
  47. package/examples/jsm/inspector/tabs/Parameters.js +51 -3
  48. package/examples/jsm/inspector/tabs/Performance.js +4 -4
  49. package/examples/jsm/inspector/tabs/Settings.js +264 -0
  50. package/examples/jsm/inspector/tabs/Timeline.js +1611 -0
  51. package/examples/jsm/inspector/tabs/Viewer.js +107 -5
  52. package/examples/jsm/inspector/ui/Graph.js +2 -2
  53. package/examples/jsm/inspector/ui/List.js +1 -1
  54. package/examples/jsm/inspector/ui/Profiler.js +1936 -34
  55. package/examples/jsm/inspector/ui/Style.js +1044 -31
  56. package/examples/jsm/inspector/ui/Tab.js +222 -3
  57. package/examples/jsm/inspector/ui/Values.js +55 -2
  58. package/examples/jsm/inspector/ui/utils.js +13 -0
  59. package/examples/jsm/interaction/InteractionManager.js +226 -0
  60. package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
  61. package/examples/jsm/lighting/DynamicLighting.js +82 -0
  62. package/examples/jsm/lighting/LightProbeGrid.js +651 -0
  63. package/examples/jsm/lines/LineMaterial.js +7 -1
  64. package/examples/jsm/loaders/3DMLoader.js +5 -4
  65. package/examples/jsm/loaders/3MFLoader.js +2 -2
  66. package/examples/jsm/loaders/AMFLoader.js +2 -2
  67. package/examples/jsm/loaders/ColladaLoader.js +24 -4026
  68. package/examples/jsm/loaders/DRACOLoader.js +5 -5
  69. package/examples/jsm/loaders/EXRLoader.js +687 -48
  70. package/examples/jsm/loaders/FBXLoader.js +235 -37
  71. package/examples/jsm/loaders/GCodeLoader.js +34 -8
  72. package/examples/jsm/loaders/GLTFLoader.js +146 -178
  73. package/examples/jsm/loaders/HDRLoader.js +1 -2
  74. package/examples/jsm/loaders/KMZLoader.js +5 -5
  75. package/examples/jsm/loaders/KTX2Loader.js +27 -5
  76. package/examples/jsm/loaders/LDrawLoader.js +41 -50
  77. package/examples/jsm/loaders/LWOLoader.js +7 -39
  78. package/examples/jsm/loaders/NRRDLoader.js +2 -2
  79. package/examples/jsm/loaders/PCDLoader.js +4 -2
  80. package/examples/jsm/loaders/SVGLoader.js +2 -2
  81. package/examples/jsm/loaders/TDSLoader.js +0 -2
  82. package/examples/jsm/loaders/TGALoader.js +0 -2
  83. package/examples/jsm/loaders/USDLoader.js +100 -40
  84. package/examples/jsm/loaders/UltraHDRLoader.js +285 -160
  85. package/examples/jsm/loaders/VOXLoader.js +660 -117
  86. package/examples/jsm/loaders/VRMLLoader.js +79 -2
  87. package/examples/jsm/loaders/VTKLoader.js +42 -25
  88. package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
  89. package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
  90. package/examples/jsm/loaders/usd/USDAParser.js +450 -363
  91. package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
  92. package/examples/jsm/loaders/usd/USDComposer.js +4594 -0
  93. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
  94. package/examples/jsm/materials/WoodNodeMaterial.js +11 -11
  95. package/examples/jsm/math/Octree.js +131 -1
  96. package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
  97. package/examples/jsm/misc/RollerCoaster.js +42 -4
  98. package/examples/jsm/misc/Volume.js +0 -1
  99. package/examples/jsm/misc/VolumeSlice.js +0 -1
  100. package/examples/jsm/modifiers/TessellateModifier.js +1 -1
  101. package/examples/jsm/objects/LensflareMesh.js +1 -1
  102. package/examples/jsm/objects/Reflector.js +73 -25
  103. package/examples/jsm/objects/Sky.js +90 -6
  104. package/examples/jsm/objects/SkyMesh.js +150 -16
  105. package/examples/jsm/objects/Water.js +4 -3
  106. package/examples/jsm/objects/Water2.js +5 -3
  107. package/examples/jsm/objects/WaterMesh.js +5 -7
  108. package/examples/jsm/physics/AmmoPhysics.js +12 -7
  109. package/examples/jsm/physics/JoltPhysics.js +10 -6
  110. package/examples/jsm/physics/RapierPhysics.js +9 -5
  111. package/examples/jsm/postprocessing/EffectComposer.js +7 -5
  112. package/examples/jsm/postprocessing/OutputPass.js +9 -0
  113. package/examples/jsm/postprocessing/RenderPass.js +10 -0
  114. package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
  115. package/examples/jsm/postprocessing/UnrealBloomPass.js +48 -18
  116. package/examples/jsm/renderers/CSS3DRenderer.js +1 -1
  117. package/examples/jsm/renderers/Projector.js +246 -28
  118. package/examples/jsm/renderers/SVGRenderer.js +174 -60
  119. package/examples/jsm/shaders/GTAOShader.js +19 -6
  120. package/examples/jsm/shaders/HalftoneShader.js +12 -1
  121. package/examples/jsm/shaders/PoissonDenoiseShader.js +6 -2
  122. package/examples/jsm/shaders/SAOShader.js +17 -4
  123. package/examples/jsm/shaders/SSAOShader.js +11 -1
  124. package/examples/jsm/shaders/SSRShader.js +6 -5
  125. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -4
  126. package/examples/jsm/shaders/VignetteShader.js +1 -1
  127. package/examples/jsm/transpiler/AST.js +44 -0
  128. package/examples/jsm/transpiler/GLSLDecoder.js +63 -6
  129. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
  130. package/examples/jsm/transpiler/TSLEncoder.js +46 -3
  131. package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
  132. package/examples/jsm/transpiler/WGSLEncoder.js +27 -0
  133. package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
  134. package/examples/jsm/tsl/display/AfterImageNode.js +11 -1
  135. package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
  136. package/examples/jsm/tsl/display/AnamorphicNode.js +12 -1
  137. package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
  138. package/examples/jsm/tsl/display/BloomNode.js +16 -6
  139. package/examples/jsm/tsl/display/CRT.js +150 -0
  140. package/examples/jsm/tsl/display/ChromaticAberrationNode.js +3 -36
  141. package/examples/jsm/tsl/display/DenoiseNode.js +1 -1
  142. package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -1
  143. package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
  144. package/examples/jsm/tsl/display/FSR1Node.js +477 -0
  145. package/examples/jsm/tsl/display/FXAANode.js +2 -2
  146. package/examples/jsm/tsl/display/GTAONode.js +6 -4
  147. package/examples/jsm/tsl/display/GaussianBlurNode.js +21 -2
  148. package/examples/jsm/tsl/display/GodraysNode.js +615 -0
  149. package/examples/jsm/tsl/display/LensflareNode.js +1 -1
  150. package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
  151. package/examples/jsm/tsl/display/OutlineNode.js +69 -19
  152. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
  153. package/examples/jsm/tsl/display/PixelationPassNode.js +7 -6
  154. package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
  155. package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
  156. package/examples/jsm/tsl/display/SMAANode.js +2 -2
  157. package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
  158. package/examples/jsm/tsl/display/SSGINode.js +8 -24
  159. package/examples/jsm/tsl/display/SSRNode.js +8 -8
  160. package/examples/jsm/tsl/display/SSSNode.js +6 -4
  161. package/examples/jsm/tsl/display/Shape.js +29 -0
  162. package/examples/jsm/tsl/display/SharpenNode.js +283 -0
  163. package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
  164. package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
  165. package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
  166. package/examples/jsm/tsl/display/TAAUNode.js +835 -0
  167. package/examples/jsm/tsl/display/TRAANode.js +315 -126
  168. package/examples/jsm/tsl/display/TransitionNode.js +1 -1
  169. package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
  170. package/examples/jsm/tsl/display/radialBlur.js +68 -0
  171. package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
  172. package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
  173. package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
  174. package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
  175. package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
  176. package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
  177. package/examples/jsm/tsl/math/Bayer.js +53 -3
  178. package/examples/jsm/utils/BufferGeometryUtils.js +2 -3
  179. package/examples/jsm/utils/ColorUtils.js +76 -0
  180. package/examples/jsm/utils/LDrawUtils.js +1 -1
  181. package/examples/jsm/utils/ShadowMapViewer.js +24 -10
  182. package/examples/jsm/utils/ShadowMapViewerGPU.js +1 -1
  183. package/examples/jsm/utils/SkeletonUtils.js +14 -8
  184. package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
  185. package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
  186. package/examples/jsm/webxr/XRHandModelFactory.js +2 -1
  187. package/package.json +24 -30
  188. package/src/Three.Core.js +3 -1
  189. package/src/Three.TSL.js +25 -11
  190. package/src/Three.WebGPU.Nodes.js +5 -0
  191. package/src/Three.WebGPU.js +9 -0
  192. package/src/Three.js +1 -0
  193. package/src/animation/AnimationAction.js +12 -2
  194. package/src/animation/AnimationClip.js +1 -1
  195. package/src/animation/AnimationMixer.js +6 -0
  196. package/src/animation/AnimationUtils.js +1 -12
  197. package/src/animation/KeyframeTrack.js +47 -8
  198. package/src/animation/PropertyMixer.js +4 -4
  199. package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
  200. package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
  201. package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
  202. package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
  203. package/src/animation/tracks/StringKeyframeTrack.js +1 -1
  204. package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
  205. package/src/audio/Audio.js +1 -1
  206. package/src/audio/AudioContext.js +2 -2
  207. package/src/audio/AudioListener.js +5 -3
  208. package/src/cameras/Camera.js +32 -2
  209. package/src/cameras/CubeCamera.js +20 -0
  210. package/src/constants.js +90 -5
  211. package/src/core/BufferAttribute.js +13 -1
  212. package/src/core/BufferGeometry.js +14 -2
  213. package/src/core/Clock.js +7 -0
  214. package/src/core/Object3D.js +52 -4
  215. package/src/core/Raycaster.js +2 -2
  216. package/src/core/RenderTarget.js +4 -4
  217. package/src/extras/PMREMGenerator.js +7 -18
  218. package/src/extras/TextureUtils.js +5 -1
  219. package/src/extras/curves/CatmullRomCurve3.js +3 -2
  220. package/src/geometries/ExtrudeGeometry.js +2 -2
  221. package/src/geometries/PolyhedronGeometry.js +1 -1
  222. package/src/geometries/TorusGeometry.js +8 -3
  223. package/src/helpers/CameraHelper.js +3 -0
  224. package/src/helpers/DirectionalLightHelper.js +4 -1
  225. package/src/helpers/HemisphereLightHelper.js +3 -0
  226. package/src/helpers/PointLightHelper.js +1 -25
  227. package/src/helpers/SpotLightHelper.js +3 -0
  228. package/src/lights/DirectionalLight.js +13 -0
  229. package/src/lights/HemisphereLight.js +10 -0
  230. package/src/lights/Light.js +1 -11
  231. package/src/lights/LightProbe.js +0 -15
  232. package/src/lights/LightShadow.js +15 -6
  233. package/src/lights/PointLight.js +15 -0
  234. package/src/lights/PointLightShadow.js +0 -86
  235. package/src/lights/SpotLight.js +22 -1
  236. package/src/lights/webgpu/IESSpotLight.js +2 -1
  237. package/src/loaders/AudioLoader.js +11 -1
  238. package/src/loaders/Cache.js +28 -0
  239. package/src/loaders/DataTextureLoader.js +6 -4
  240. package/src/loaders/FileLoader.js +2 -3
  241. package/src/loaders/ImageBitmapLoader.js +12 -9
  242. package/src/loaders/Loader.js +6 -0
  243. package/src/loaders/MaterialLoader.js +3 -2
  244. package/src/loaders/ObjectLoader.js +46 -6
  245. package/src/loaders/nodes/NodeLoader.js +2 -2
  246. package/src/loaders/nodes/NodeObjectLoader.js +18 -0
  247. package/src/materials/Material.js +2 -0
  248. package/src/materials/MeshLambertMaterial.js +9 -0
  249. package/src/materials/MeshPhongMaterial.js +9 -0
  250. package/src/materials/MeshToonMaterial.js +1 -1
  251. package/src/materials/ShaderMaterial.js +20 -1
  252. package/src/materials/nodes/Line2NodeMaterial.js +34 -7
  253. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
  254. package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
  255. package/src/materials/nodes/NodeMaterial.js +45 -25
  256. package/src/materials/nodes/manager/NodeMaterialObserver.js +191 -86
  257. package/src/math/Line3.js +6 -5
  258. package/src/math/MathUtils.js +10 -10
  259. package/src/math/Matrix2.js +13 -9
  260. package/src/math/Matrix3.js +13 -9
  261. package/src/math/Matrix4.js +87 -74
  262. package/src/math/Plane.js +4 -3
  263. package/src/math/Quaternion.js +3 -29
  264. package/src/math/Sphere.js +1 -1
  265. package/src/math/Triangle.js +1 -1
  266. package/src/math/Vector2.js +11 -7
  267. package/src/math/Vector3.js +15 -13
  268. package/src/math/Vector4.js +13 -9
  269. package/src/math/interpolants/BezierInterpolant.js +108 -0
  270. package/src/nodes/Nodes.js +86 -68
  271. package/src/nodes/TSL.js +7 -7
  272. package/src/nodes/accessors/Arrays.js +1 -1
  273. package/src/nodes/accessors/BatchNode.js +10 -10
  274. package/src/nodes/accessors/Bitangent.js +5 -5
  275. package/src/nodes/accessors/BufferAttributeNode.js +107 -15
  276. package/src/nodes/accessors/BufferNode.js +29 -2
  277. package/src/nodes/accessors/Camera.js +149 -28
  278. package/src/nodes/accessors/ClippingNode.js +4 -4
  279. package/src/nodes/accessors/CubeTextureNode.js +27 -2
  280. package/src/nodes/accessors/InstanceNode.js +148 -43
  281. package/src/nodes/accessors/MaterialNode.js +9 -1
  282. package/src/nodes/accessors/MaterialProperties.js +2 -5
  283. package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
  284. package/src/nodes/accessors/ModelNode.js +1 -1
  285. package/src/nodes/accessors/Normal.js +11 -11
  286. package/src/nodes/accessors/Object3DNode.js +1 -1
  287. package/src/nodes/accessors/Position.js +34 -2
  288. package/src/nodes/accessors/ReferenceBaseNode.js +6 -6
  289. package/src/nodes/accessors/ReferenceNode.js +8 -8
  290. package/src/nodes/accessors/RendererReferenceNode.js +1 -2
  291. package/src/nodes/accessors/SceneProperties.js +47 -0
  292. package/src/nodes/accessors/SkinningNode.js +27 -26
  293. package/src/nodes/accessors/StorageBufferNode.js +14 -25
  294. package/src/nodes/accessors/StorageTextureNode.js +40 -9
  295. package/src/nodes/accessors/Tangent.js +4 -14
  296. package/src/nodes/accessors/Texture3DNode.js +32 -35
  297. package/src/nodes/accessors/TextureNode.js +67 -23
  298. package/src/nodes/accessors/UniformArrayNode.js +6 -4
  299. package/src/nodes/accessors/UserDataNode.js +1 -2
  300. package/src/nodes/accessors/VertexColorNode.js +1 -2
  301. package/src/nodes/code/FunctionCallNode.js +1 -1
  302. package/src/nodes/code/FunctionNode.js +2 -3
  303. package/src/nodes/core/ArrayNode.js +21 -2
  304. package/src/nodes/core/AssignNode.js +3 -3
  305. package/src/nodes/core/AttributeNode.js +3 -3
  306. package/src/nodes/core/BypassNode.js +1 -1
  307. package/src/nodes/core/ContextNode.js +104 -5
  308. package/src/nodes/core/IndexNode.js +2 -1
  309. package/src/nodes/core/InputNode.js +1 -1
  310. package/src/nodes/core/InspectorNode.js +1 -1
  311. package/src/nodes/core/IsolateNode.js +1 -1
  312. package/src/nodes/core/MRTNode.js +48 -2
  313. package/src/nodes/core/Node.js +112 -15
  314. package/src/nodes/core/NodeBuilder.js +284 -66
  315. package/src/nodes/core/NodeError.js +28 -0
  316. package/src/nodes/core/NodeFrame.js +12 -4
  317. package/src/nodes/core/NodeUtils.js +11 -9
  318. package/src/nodes/core/OutputStructNode.js +12 -10
  319. package/src/nodes/core/ParameterNode.js +4 -4
  320. package/src/nodes/core/PropertyNode.js +19 -3
  321. package/src/nodes/core/StackNode.js +66 -17
  322. package/src/nodes/core/StackTrace.js +139 -0
  323. package/src/nodes/core/StructNode.js +17 -3
  324. package/src/nodes/core/StructTypeNode.js +12 -18
  325. package/src/nodes/core/SubBuildNode.js +2 -2
  326. package/src/nodes/core/UniformGroupNode.js +36 -6
  327. package/src/nodes/core/UniformNode.js +21 -5
  328. package/src/nodes/core/VarNode.js +48 -23
  329. package/src/nodes/core/VaryingNode.js +2 -19
  330. package/src/nodes/display/BlendModes.js +0 -64
  331. package/src/nodes/display/ColorAdjustment.js +17 -0
  332. package/src/nodes/display/ColorSpaceNode.js +3 -3
  333. package/src/nodes/display/NormalMapNode.js +39 -4
  334. package/src/nodes/display/PassNode.js +125 -16
  335. package/src/nodes/display/RenderOutputNode.js +7 -7
  336. package/src/nodes/display/ScreenNode.js +4 -2
  337. package/src/nodes/display/ToneMappingNode.js +1 -1
  338. package/src/nodes/display/ToonOutlinePassNode.js +2 -2
  339. package/src/nodes/display/ViewportDepthNode.js +52 -4
  340. package/src/nodes/display/ViewportDepthTextureNode.js +11 -15
  341. package/src/nodes/display/ViewportTextureNode.js +39 -11
  342. package/src/nodes/fog/Fog.js +18 -35
  343. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +3 -3
  344. package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
  345. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  346. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  347. package/src/nodes/functions/PhysicalLightingModel.js +126 -45
  348. package/src/nodes/geometry/RangeNode.js +5 -3
  349. package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
  350. package/src/nodes/gpgpu/BarrierNode.js +9 -0
  351. package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -3
  352. package/src/nodes/gpgpu/ComputeNode.js +74 -48
  353. package/src/nodes/gpgpu/SubgroupFunctionNode.js +2 -2
  354. package/src/nodes/gpgpu/WorkgroupInfoNode.js +4 -4
  355. package/src/nodes/lighting/AnalyticLightNode.js +53 -0
  356. package/src/nodes/lighting/EnvironmentNode.js +28 -3
  357. package/src/nodes/lighting/LightsNode.js +7 -28
  358. package/src/nodes/lighting/PointShadowNode.js +162 -149
  359. package/src/nodes/lighting/ShadowFilterNode.js +53 -65
  360. package/src/nodes/lighting/ShadowNode.js +120 -42
  361. package/src/nodes/math/BitcastNode.js +1 -1
  362. package/src/nodes/math/BitcountNode.js +433 -0
  363. package/src/nodes/math/ConditionalNode.js +3 -3
  364. package/src/nodes/math/MathNode.js +76 -41
  365. package/src/nodes/math/OperatorNode.js +3 -2
  366. package/src/nodes/math/PackFloatNode.js +98 -0
  367. package/src/nodes/math/UnpackFloatNode.js +96 -0
  368. package/src/nodes/pmrem/PMREMNode.js +1 -1
  369. package/src/nodes/pmrem/PMREMUtils.js +9 -15
  370. package/src/nodes/tsl/TSLBase.js +1 -1
  371. package/src/nodes/tsl/TSLCore.js +38 -17
  372. package/src/nodes/utils/ArrayElementNode.js +14 -1
  373. package/src/nodes/utils/ConvertNode.js +1 -1
  374. package/src/nodes/utils/DebugNode.js +12 -12
  375. package/src/nodes/utils/EventNode.js +31 -2
  376. package/src/nodes/utils/FlipNode.js +1 -1
  377. package/src/nodes/utils/FunctionOverloadingNode.js +1 -1
  378. package/src/nodes/utils/JoinNode.js +3 -3
  379. package/src/nodes/utils/LoopNode.js +1 -1
  380. package/src/nodes/utils/MemberNode.js +2 -2
  381. package/src/nodes/utils/Packing.js +13 -1
  382. package/src/nodes/utils/PostProcessingUtils.js +33 -1
  383. package/src/nodes/utils/RTTNode.js +1 -1
  384. package/src/nodes/utils/ReflectorNode.js +3 -4
  385. package/src/nodes/utils/Remap.js +48 -0
  386. package/src/nodes/utils/RotateNode.js +1 -1
  387. package/src/nodes/utils/SampleNode.js +1 -1
  388. package/src/nodes/utils/SetNode.js +1 -1
  389. package/src/nodes/utils/SplitNode.js +1 -1
  390. package/src/nodes/utils/SpriteSheetUV.js +35 -0
  391. package/src/nodes/utils/UVUtils.js +28 -0
  392. package/src/objects/BatchedMesh.js +44 -16
  393. package/src/objects/InstancedMesh.js +30 -3
  394. package/src/objects/Line.js +1 -1
  395. package/src/objects/Mesh.js +1 -1
  396. package/src/objects/Points.js +1 -1
  397. package/src/objects/Skeleton.js +9 -0
  398. package/src/objects/SkinnedMesh.js +26 -9
  399. package/src/renderers/WebGLRenderer.js +329 -145
  400. package/src/renderers/common/Animation.js +3 -3
  401. package/src/renderers/common/Attributes.js +15 -1
  402. package/src/renderers/common/Backend.js +29 -8
  403. package/src/renderers/common/Background.js +26 -13
  404. package/src/renderers/common/BindGroup.js +1 -16
  405. package/src/renderers/common/Binding.js +11 -0
  406. package/src/renderers/common/Bindings.js +29 -14
  407. package/src/renderers/common/BlendMode.js +143 -0
  408. package/src/renderers/common/Buffer.js +40 -0
  409. package/src/renderers/common/BundleGroup.js +1 -1
  410. package/src/renderers/common/ChainMap.js +30 -6
  411. package/src/renderers/common/ComputePipeline.js +1 -1
  412. package/src/renderers/common/CubeRenderTarget.js +51 -7
  413. package/src/renderers/common/Geometries.js +29 -3
  414. package/src/renderers/common/Info.js +333 -4
  415. package/src/renderers/common/InspectorBase.js +6 -1
  416. package/src/renderers/common/Lighting.js +5 -21
  417. package/src/renderers/common/Pipelines.js +40 -7
  418. package/src/renderers/common/PostProcessing.js +8 -206
  419. package/src/renderers/common/ReadbackBuffer.js +78 -0
  420. package/src/renderers/common/RenderBundle.js +3 -1
  421. package/src/renderers/common/RenderBundles.js +7 -3
  422. package/src/renderers/common/RenderContext.js +16 -0
  423. package/src/renderers/common/RenderContexts.js +33 -49
  424. package/src/renderers/common/RenderLists.js +2 -1
  425. package/src/renderers/common/RenderObject.js +17 -5
  426. package/src/renderers/common/RenderObjectPipeline.js +40 -0
  427. package/src/renderers/common/RenderObjects.js +21 -5
  428. package/src/renderers/common/RenderPipeline.js +232 -17
  429. package/src/renderers/common/Renderer.js +481 -117
  430. package/src/renderers/common/Sampler.js +4 -4
  431. package/src/renderers/common/StorageBuffer.js +13 -1
  432. package/src/renderers/common/Textures.js +89 -4
  433. package/src/renderers/common/TimestampQueryPool.js +5 -3
  434. package/src/renderers/common/Uniform.js +8 -0
  435. package/src/renderers/common/UniformsGroup.js +62 -1
  436. package/src/renderers/common/XRManager.js +37 -29
  437. package/src/renderers/common/extras/PMREMGenerator.js +25 -23
  438. package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
  439. package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +242 -99
  440. package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
  441. package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
  442. package/src/renderers/shaders/DFGLUTData.js +19 -34
  443. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
  444. package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
  445. package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
  446. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
  447. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
  448. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
  449. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +8 -12
  450. package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
  451. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
  452. package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
  453. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
  454. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +2 -0
  455. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
  456. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +112 -53
  457. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
  458. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
  459. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
  460. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +225 -186
  461. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
  462. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  463. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  464. package/src/renderers/shaders/ShaderChunk.js +5 -3
  465. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
  466. package/src/renderers/shaders/ShaderLib/depth.glsl.js +3 -0
  467. package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
  468. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
  469. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
  470. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
  471. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
  472. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
  473. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
  474. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
  475. package/src/renderers/shaders/ShaderLib.js +7 -6
  476. package/src/renderers/shaders/UniformsLib.js +7 -5
  477. package/src/renderers/shaders/UniformsUtils.js +27 -5
  478. package/src/renderers/webgl/WebGLAnimation.js +2 -1
  479. package/src/renderers/webgl/WebGLBackground.js +15 -15
  480. package/src/renderers/webgl/WebGLBindingStates.js +99 -27
  481. package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
  482. package/src/renderers/webgl/WebGLCapabilities.js +9 -4
  483. package/src/renderers/webgl/WebGLEnvironments.js +228 -0
  484. package/src/renderers/webgl/WebGLGeometries.js +10 -7
  485. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
  486. package/src/renderers/webgl/WebGLLights.js +18 -1
  487. package/src/renderers/webgl/WebGLMaterials.js +24 -13
  488. package/src/renderers/webgl/WebGLObjects.js +3 -1
  489. package/src/renderers/webgl/WebGLOutput.js +270 -0
  490. package/src/renderers/webgl/WebGLProgram.js +49 -109
  491. package/src/renderers/webgl/WebGLPrograms.js +63 -51
  492. package/src/renderers/webgl/WebGLRenderLists.js +15 -0
  493. package/src/renderers/webgl/WebGLRenderStates.js +13 -2
  494. package/src/renderers/webgl/WebGLShadowMap.js +188 -24
  495. package/src/renderers/webgl/WebGLState.js +75 -37
  496. package/src/renderers/webgl/WebGLTextures.js +215 -54
  497. package/src/renderers/webgl/WebGLUniforms.js +40 -3
  498. package/src/renderers/webgl/WebGLUniformsGroups.js +19 -0
  499. package/src/renderers/webgl/WebGLUtils.js +6 -2
  500. package/src/renderers/webgl-fallback/WebGLBackend.js +253 -82
  501. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
  502. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +173 -74
  503. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
  504. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
  505. package/src/renderers/webgl-fallback/utils/WebGLState.js +223 -6
  506. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +68 -53
  507. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +10 -10
  508. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +6 -2
  509. package/src/renderers/webgpu/WebGPUBackend.js +260 -140
  510. package/src/renderers/webgpu/WebGPURenderer.js +2 -1
  511. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +366 -90
  512. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +107 -34
  513. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +357 -200
  514. package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
  515. package/src/renderers/webgpu/utils/WebGPUConstants.js +10 -0
  516. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +61 -23
  517. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +152 -200
  518. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +156 -59
  519. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +7 -7
  520. package/src/renderers/webgpu/utils/WebGPUUtils.js +33 -11
  521. package/src/renderers/webxr/WebXRController.js +12 -0
  522. package/src/renderers/webxr/WebXRManager.js +4 -2
  523. package/src/textures/CubeDepthTexture.js +76 -0
  524. package/src/textures/HTMLTexture.js +74 -0
  525. package/src/textures/Source.js +2 -2
  526. package/src/textures/Texture.js +16 -5
  527. package/src/utils.js +280 -3
  528. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
  529. package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
  530. package/examples/jsm/shaders/GodRaysShader.js +0 -333
  531. package/src/nodes/accessors/SceneNode.js +0 -145
  532. package/src/nodes/code/ScriptableNode.js +0 -726
  533. package/src/nodes/code/ScriptableValueNode.js +0 -253
  534. package/src/nodes/display/PosterizeNode.js +0 -65
  535. package/src/nodes/functions/BSDF/DFGApprox.js +0 -71
  536. package/src/nodes/utils/RemapNode.js +0 -125
  537. package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
  538. package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
  539. package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
@@ -1,4 +1,5 @@
1
1
  import { GLTFLoader } from '../loaders/GLTFLoader.js';
2
+ import { clone } from '../utils/SkeletonUtils.js';
2
3
 
3
4
  const DEFAULT_HAND_PROFILE_PATH = 'https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/';
4
5
 
@@ -20,8 +21,9 @@ class XRHandMeshModel {
20
21
  * @param {XRHandedness} handedness - The handedness of the XR input source.
21
22
  * @param {?Loader} [loader=null] - The loader. If not provided, an instance of `GLTFLoader` will be used to load models.
22
23
  * @param {?Function} [onLoad=null] - A callback that is executed when a controller model has been loaded.
24
+ * @param {?Object} [customCache=null] - An optional shared cache object for storing and reusing loaded assets across instances.
23
25
  */
24
- constructor( handModel, controller, path, handedness, loader = null, onLoad = null ) {
26
+ constructor( handModel, controller, path, handedness, loader = null, onLoad = null, customCache = null ) {
25
27
 
26
28
  /**
27
29
  * The WebXR controller.
@@ -45,16 +47,11 @@ class XRHandMeshModel {
45
47
  */
46
48
  this.bones = [];
47
49
 
48
- if ( loader === null ) {
50
+ const pathToUse = path || DEFAULT_HAND_PROFILE_PATH;
49
51
 
50
- loader = new GLTFLoader();
51
- loader.setPath( path || DEFAULT_HAND_PROFILE_PATH );
52
+ const processAsset = ( gltf ) => {
52
53
 
53
- }
54
-
55
- loader.load( `${handedness}.glb`, gltf => {
56
-
57
- const object = gltf.scene.children[ 0 ];
54
+ const object = clone( gltf.scene.children[ 0 ] );
58
55
  this.handModel.add( object );
59
56
 
60
57
  const mesh = object.getObjectByProperty( 'type', 'SkinnedMesh' );
@@ -110,7 +107,36 @@ class XRHandMeshModel {
110
107
 
111
108
  if ( onLoad ) onLoad( object );
112
109
 
113
- } );
110
+ };
111
+
112
+ const assetUrl = `${pathToUse}${handedness}.glb`;
113
+
114
+ if ( customCache && customCache[ assetUrl ] ) {
115
+
116
+ processAsset( customCache[ assetUrl ] );
117
+
118
+ } else {
119
+
120
+ if ( loader === null ) {
121
+
122
+ loader = new GLTFLoader();
123
+ loader.setPath( pathToUse );
124
+
125
+ }
126
+
127
+ loader.load( `${handedness}.glb`, gltf => {
128
+
129
+ if ( customCache ) {
130
+
131
+ customCache[ assetUrl ] = gltf;
132
+
133
+ }
134
+
135
+ processAsset( gltf );
136
+
137
+ } );
138
+
139
+ }
114
140
 
115
141
  }
116
142
 
@@ -118,6 +118,7 @@ class XRHandModelFactory {
118
118
  * @default null
119
119
  */
120
120
  this.path = null;
121
+ this._assetCache = {};
121
122
 
122
123
  /**
123
124
  * A callback that is executed when a hand model has been loaded.
@@ -173,7 +174,7 @@ class XRHandModelFactory {
173
174
 
174
175
  } else if ( profile === 'mesh' ) {
175
176
 
176
- handModel.motionController = new XRHandMeshModel( handModel, controller, this.path, xrInputSource.handedness, this.gltfLoader, this.onLoad );
177
+ handModel.motionController = new XRHandMeshModel( handModel, controller, this.path, xrInputSource.handedness, this.gltfLoader, this.onLoad, this._assetCache );
177
178
 
178
179
  }
179
180
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-three",
3
- "version": "0.181.0",
3
+ "version": "0.184.0",
4
4
  "description": "JavaScript 3D library",
5
5
  "type": "module",
6
6
  "main": "./build/three.cjs",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "repository": {
22
22
  "type": "git",
23
- "url": "supermedium/three.js"
23
+ "url": "https://github.com/supermedium/three.js"
24
24
  },
25
25
  "sideEffects": [
26
26
  "./src/nodes/**/*"
@@ -46,23 +46,20 @@
46
46
  "start": "npm run dev",
47
47
  "test": "npm run lint && npm run test-unit && npm run test-unit-addons",
48
48
  "build": "rollup -c utils/build/rollup.config.js",
49
+ "build-docs": "jsdoc -c utils/docs/jsdoc.config.json && npm run build-llms",
50
+ "build-llms": "node utils/llms/build.js",
49
51
  "build-module": "rollup -c utils/build/rollup.config.js --configOnlyModule",
50
- "build-docs": "jsdoc -c utils/docs/jsdoc.config.json",
51
- "dev": "node utils/build/dev.js && servez -p 8080",
52
- "dev-ssl": "node utils/build/dev.js && servez -p 8080 --ssl",
53
- "preview": "concurrently --names \"ROLLUP,HTTP\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080\"",
54
- "preview-ssl": "concurrently --names \"ROLLUP,HTTPS\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080 --ssl\"",
52
+ "dev": "node utils/build/dev.js && node utils/server.js -p 8080",
53
+ "preview": "node utils/build/preview.js",
55
54
  "lint-core": "eslint src",
56
- "lint-addons": "eslint examples/jsm --ext .js --ignore-pattern libs --ignore-pattern ifc",
57
- "lint-examples": "eslint examples --ext .html",
58
- "lint-docs": "eslint docs --ignore-pattern prettify.js",
59
- "lint-editor": "eslint editor --ignore-pattern libs",
60
- "lint-playground": "eslint playground --ignore-pattern libs",
61
- "lint-manual": "eslint manual --ignore-pattern 3rdparty --ignore-pattern prettify.js --ignore-pattern shapefile.js",
62
- "lint-test": "eslint test --ignore-pattern vendor",
63
- "lint-utils": "eslint utils --ignore-pattern prettify --ignore-pattern fuse",
55
+ "lint-addons": "eslint examples/jsm",
56
+ "lint-examples": "eslint examples",
57
+ "lint-editor": "eslint editor",
58
+ "lint-manual": "eslint manual",
59
+ "lint-test": "eslint test",
60
+ "lint-utils": "eslint utils",
64
61
  "lint": "npm run lint-core",
65
- "lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-docs -- --fix && npm run lint-editor -- --fix && npm run lint-playground -- --fix && npm run lint-manual -- --fix && npm run lint-test -- --fix && npm run lint-utils -- --fix",
62
+ "lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-editor -- --fix && npm run lint-manual -- --fix && npm run lint-test -- --fix && npm run lint-utils -- --fix",
66
63
  "test-unit": "qunit test/unit/three.source.unit.js",
67
64
  "test-unit-addons": "qunit test/unit/three.addons.unit.js",
68
65
  "test-e2e": "node test/e2e/puppeteer.js",
@@ -94,26 +91,23 @@
94
91
  },
95
92
  "homepage": "https://threejs.org/",
96
93
  "devDependencies": {
94
+ "@eslint/js": "^9.0.0",
97
95
  "@rollup/plugin-node-resolve": "^16.0.0",
98
- "@rollup/plugin-terser": "^0.4.0",
99
- "concurrently": "^9.0.0",
100
- "eslint": "^8.37.0",
96
+ "@rollup/plugin-terser": "^1.0.0",
97
+ "eslint": "^9.0.0",
101
98
  "eslint-config-mdcs": "^5.0.0",
102
- "eslint-plugin-compat": "^6.0.0",
103
- "eslint-plugin-html": "^8.0.0",
104
- "eslint-plugin-import": "^2.27.5",
105
- "jimp": "^1.6.0",
99
+ "eslint-plugin-compat": "^7.0.0",
100
+ "eslint-plugin-html": "^8.1.3",
101
+ "eslint-plugin-jsdoc": "^62.0.0",
102
+ "globals": "^17.0.0",
103
+ "jpeg-js": "^0.4.4",
106
104
  "jsdoc": "^4.0.5",
107
105
  "magic-string": "^0.30.0",
108
- "pixelmatch": "^7.0.0",
109
- "puppeteer": "^24.25.0",
106
+ "pngjs": "^7.0.0",
107
+ "puppeteer": "^24.40.0",
110
108
  "qunit": "^2.19.4",
111
109
  "rollup": "^4.6.0",
112
- "rollup-plugin-filesize": "^10.0.0",
113
- "servez": "^2.2.4"
114
- },
115
- "overrides": {
116
- "jpeg-js": "^0.4.4"
110
+ "turndown": "^7.2.2"
117
111
  },
118
112
  "jspm": {
119
113
  "files": [
package/src/Three.Core.js CHANGED
@@ -3,7 +3,6 @@ import { warn } from './utils.js';
3
3
 
4
4
  export { WebGLArrayRenderTarget } from './renderers/WebGLArrayRenderTarget.js';
5
5
  export { WebGL3DRenderTarget } from './renderers/WebGL3DRenderTarget.js';
6
- export { WebGLCubeRenderTarget } from './renderers/WebGLCubeRenderTarget.js';
7
6
  export { WebGLRenderTarget } from './renderers/WebGLRenderTarget.js';
8
7
  export { WebXRController } from './renderers/webxr/WebXRController.js';
9
8
  export { FogExp2 } from './scenes/FogExp2.js';
@@ -34,7 +33,9 @@ export { CompressedArrayTexture } from './textures/CompressedArrayTexture.js';
34
33
  export { CompressedCubeTexture } from './textures/CompressedCubeTexture.js';
35
34
  export { CubeTexture } from './textures/CubeTexture.js';
36
35
  export { CanvasTexture } from './textures/CanvasTexture.js';
36
+ export { HTMLTexture } from './textures/HTMLTexture.js';
37
37
  export { DepthTexture } from './textures/DepthTexture.js';
38
+ export { CubeDepthTexture } from './textures/CubeDepthTexture.js';
38
39
  export { ExternalTexture } from './textures/ExternalTexture.js';
39
40
  export { Texture } from './textures/Texture.js';
40
41
  export * from './geometries/Geometries.js';
@@ -110,6 +111,7 @@ export { QuaternionLinearInterpolant } from './math/interpolants/QuaternionLinea
110
111
  export { LinearInterpolant } from './math/interpolants/LinearInterpolant.js';
111
112
  export { DiscreteInterpolant } from './math/interpolants/DiscreteInterpolant.js';
112
113
  export { CubicInterpolant } from './math/interpolants/CubicInterpolant.js';
114
+ export { BezierInterpolant } from './math/interpolants/BezierInterpolant.js';
113
115
  export { Interpolant } from './math/Interpolant.js';
114
116
  export { Triangle } from './math/Triangle.js';
115
117
  export { MathUtils } from './math/MathUtils.js';
package/src/Three.TSL.js CHANGED
@@ -7,7 +7,7 @@ export const BasicShadowFilter = TSL.BasicShadowFilter;
7
7
  export const Break = TSL.Break;
8
8
  export const Const = TSL.Const;
9
9
  export const Continue = TSL.Continue;
10
- export const DFGApprox = TSL.DFGApprox;
10
+ export const DFGLUT = TSL.DFGLUT;
11
11
  export const D_GGX = TSL.D_GGX;
12
12
  export const Discard = TSL.Discard;
13
13
  export const EPSILON = TSL.EPSILON;
@@ -29,7 +29,6 @@ export const HALF_PI = TSL.HALF_PI;
29
29
  export const PointShadowFilter = TSL.PointShadowFilter;
30
30
  export const Return = TSL.Return;
31
31
  export const Schlick_to_F0 = TSL.Schlick_to_F0;
32
- export const ScriptableNodeResources = TSL.ScriptableNodeResources;
33
32
  export const ShaderNode = TSL.ShaderNode;
34
33
  export const Stack = TSL.Stack;
35
34
  export const Switch = TSL.Switch;
@@ -41,6 +40,7 @@ export const VarIntent = TSL.VarIntent;
41
40
  export const abs = TSL.abs;
42
41
  export const acesFilmicToneMapping = TSL.acesFilmicToneMapping;
43
42
  export const acos = TSL.acos;
43
+ export const acosh = TSL.acosh;
44
44
  export const add = TSL.add;
45
45
  export const addMethodChaining = TSL.addMethodChaining;
46
46
  export const addNodeElement = TSL.addNodeElement;
@@ -56,9 +56,10 @@ export const append = TSL.append;
56
56
  export const array = TSL.array;
57
57
  export const arrayBuffer = TSL.arrayBuffer;
58
58
  export const asin = TSL.asin;
59
+ export const asinh = TSL.asinh;
59
60
  export const assign = TSL.assign;
60
61
  export const atan = TSL.atan;
61
- export const atan2 = TSL.atan2;
62
+ export const atanh = TSL.atanh;
62
63
  export const atomicAdd = TSL.atomicAdd;
63
64
  export const atomicAnd = TSL.atomicAnd;
64
65
  export const atomicFunc = TSL.atomicFunc;
@@ -98,8 +99,9 @@ export const bool = TSL.bool;
98
99
  export const buffer = TSL.buffer;
99
100
  export const bufferAttribute = TSL.bufferAttribute;
100
101
  export const bumpMap = TSL.bumpMap;
101
- export const burn = TSL.burn;
102
102
  export const builtin = TSL.builtin;
103
+ export const builtinAOContext = TSL.builtinAOContext;
104
+ export const builtinShadowContext = TSL.builtinShadowContext;
103
105
  export const bvec2 = TSL.bvec2;
104
106
  export const bvec3 = TSL.bvec3;
105
107
  export const bvec4 = TSL.bvec4;
@@ -125,6 +127,7 @@ export const clamp = TSL.clamp;
125
127
  export const clearcoat = TSL.clearcoat;
126
128
  export const clearcoatNormalView = TSL.clearcoatNormalView;
127
129
  export const clearcoatRoughness = TSL.clearcoatRoughness;
130
+ export const clipSpace = TSL.clipSpace;
128
131
  export const code = TSL.code;
129
132
  export const color = TSL.color;
130
133
  export const colorSpaceToWorking = TSL.colorSpaceToWorking;
@@ -136,11 +139,14 @@ export const context = TSL.context;
136
139
  export const convert = TSL.convert;
137
140
  export const convertColorSpace = TSL.convertColorSpace;
138
141
  export const convertToTexture = TSL.convertToTexture;
142
+ export const countLeadingZeros = TSL.countLeadingZeros;
143
+ export const countOneBits = TSL.countOneBits;
144
+ export const countTrailingZeros = TSL.countTrailingZeros;
139
145
  export const cos = TSL.cos;
146
+ export const cosh = TSL.cosh;
140
147
  export const cross = TSL.cross;
141
148
  export const cubeTexture = TSL.cubeTexture;
142
149
  export const cubeTextureBase = TSL.cubeTextureBase;
143
- export const cubeToUV = TSL.cubeToUV;
144
150
  export const dFdx = TSL.dFdx;
145
151
  export const dFdy = TSL.dFdy;
146
152
  export const dashSize = TSL.dashSize;
@@ -165,17 +171,16 @@ export const directionToFaceDirection = TSL.directionToFaceDirection;
165
171
  export const dispersion = TSL.dispersion;
166
172
  export const distance = TSL.distance;
167
173
  export const div = TSL.div;
168
- export const dodge = TSL.dodge;
169
174
  export const dot = TSL.dot;
170
175
  export const drawIndex = TSL.drawIndex;
171
176
  export const dynamicBufferAttribute = TSL.dynamicBufferAttribute;
172
177
  export const element = TSL.element;
173
178
  export const emissive = TSL.emissive;
174
179
  export const equal = TSL.equal;
175
- export const equals = TSL.equals;
176
180
  export const equirectUV = TSL.equirectUV;
177
181
  export const exp = TSL.exp;
178
182
  export const exp2 = TSL.exp2;
183
+ export const exponentialHeightFogFactor = TSL.exponentialHeightFogFactor;
179
184
  export const expression = TSL.expression;
180
185
  export const faceDirection = TSL.faceDirection;
181
186
  export const faceForward = TSL.faceForward;
@@ -199,6 +204,7 @@ export const getDistanceAttenuation = TSL.getDistanceAttenuation;
199
204
  export const getGeometryRoughness = TSL.getGeometryRoughness;
200
205
  export const getNormalFromDepth = TSL.getNormalFromDepth;
201
206
  export const interleavedGradientNoise = TSL.interleavedGradientNoise;
207
+ export const vogelDiskSample = TSL.vogelDiskSample;
202
208
  export const getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;
203
209
  export const getRoughness = TSL.getRoughness;
204
210
  export const getScreenPosition = TSL.getScreenPosition;
@@ -412,8 +418,10 @@ export const oscSquare = TSL.oscSquare;
412
418
  export const oscTriangle = TSL.oscTriangle;
413
419
  export const output = TSL.output;
414
420
  export const outputStruct = TSL.outputStruct;
415
- export const overlay = TSL.overlay;
416
421
  export const overloadingFn = TSL.overloadingFn;
422
+ export const packHalf2x16 = TSL.packHalf2x16;
423
+ export const packSnorm2x16 = TSL.packSnorm2x16;
424
+ export const packUnorm2x16 = TSL.packUnorm2x16;
417
425
  export const parabola = TSL.parabola;
418
426
  export const parallaxDirection = TSL.parallaxDirection;
419
427
  export const parallaxUV = TSL.parallaxUV;
@@ -461,6 +469,7 @@ export const remapClamp = TSL.remapClamp;
461
469
  export const renderGroup = TSL.renderGroup;
462
470
  export const renderOutput = TSL.renderOutput;
463
471
  export const rendererReference = TSL.rendererReference;
472
+ export const replaceDefaultUV = TSL.replaceDefaultUV;
464
473
  export const rotate = TSL.rotate;
465
474
  export const rotateUV = TSL.rotateUV;
466
475
  export const roughness = TSL.roughness;
@@ -478,8 +487,6 @@ export const screenCoordinate = TSL.screenCoordinate;
478
487
  export const screenDPR = TSL.screenDPR;
479
488
  export const screenSize = TSL.screenSize;
480
489
  export const screenUV = TSL.screenUV;
481
- export const scriptable = TSL.scriptable;
482
- export const scriptableValue = TSL.scriptableValue;
483
490
  export const select = TSL.select;
484
491
  export const setCurrentStack = TSL.setCurrentStack;
485
492
  export const setName = TSL.setName;
@@ -495,6 +502,7 @@ export const shiftRight = TSL.shiftRight;
495
502
  export const shininess = TSL.shininess;
496
503
  export const sign = TSL.sign;
497
504
  export const sin = TSL.sin;
505
+ export const sinh = TSL.sinh;
498
506
  export const sinc = TSL.sinc;
499
507
  export const skinning = TSL.skinning;
500
508
  export const smoothstep = TSL.smoothstep;
@@ -510,7 +518,6 @@ export const step = TSL.step;
510
518
  export const stepElement = TSL.stepElement;
511
519
  export const storage = TSL.storage;
512
520
  export const storageBarrier = TSL.storageBarrier;
513
- export const storageObject = TSL.storageObject;
514
521
  export const storageTexture = TSL.storageTexture;
515
522
  export const string = TSL.string;
516
523
  export const struct = TSL.struct;
@@ -540,6 +547,7 @@ export const subgroupShuffleXor = TSL.subgroupShuffleXor;
540
547
  export const subgroupSize = TSL.subgroupSize;
541
548
  export const subgroupXor = TSL.subgroupXor;
542
549
  export const tan = TSL.tan;
550
+ export const tanh = TSL.tanh;
543
551
  export const tangentGeometry = TSL.tangentGeometry;
544
552
  export const tangentLocal = TSL.tangentLocal;
545
553
  export const tangentView = TSL.tangentView;
@@ -579,6 +587,9 @@ export const uniformCubeTexture = TSL.uniformCubeTexture;
579
587
  export const uniformGroup = TSL.uniformGroup;
580
588
  export const uniformFlow = TSL.uniformFlow;
581
589
  export const uniformTexture = TSL.uniformTexture;
590
+ export const unpackHalf2x16 = TSL.unpackHalf2x16;
591
+ export const unpackSnorm2x16 = TSL.unpackSnorm2x16;
592
+ export const unpackUnorm2x16 = TSL.unpackUnorm2x16;
582
593
  export const unpremultiplyAlpha = TSL.unpremultiplyAlpha;
583
594
  export const userData = TSL.userData;
584
595
  export const uv = TSL.uv;
@@ -599,11 +610,14 @@ export const vibrance = TSL.vibrance;
599
610
  export const viewZToLogarithmicDepth = TSL.viewZToLogarithmicDepth;
600
611
  export const viewZToOrthographicDepth = TSL.viewZToOrthographicDepth;
601
612
  export const viewZToPerspectiveDepth = TSL.viewZToPerspectiveDepth;
613
+ export const viewZToReversedOrthographicDepth = TSL.viewZToReversedOrthographicDepth;
614
+ export const viewZToReversedPerspectiveDepth = TSL.viewZToReversedPerspectiveDepth;
602
615
  export const viewport = TSL.viewport;
603
616
  export const viewportCoordinate = TSL.viewportCoordinate;
604
617
  export const viewportDepthTexture = TSL.viewportDepthTexture;
605
618
  export const viewportLinearDepth = TSL.viewportLinearDepth;
606
619
  export const viewportMipTexture = TSL.viewportMipTexture;
620
+ export const viewportOpaqueMipTexture = TSL.viewportOpaqueMipTexture;
607
621
  export const viewportResolution = TSL.viewportResolution;
608
622
  export const viewportSafeUV = TSL.viewportSafeUV;
609
623
  export const viewportSharedTexture = TSL.viewportSharedTexture;
@@ -2,11 +2,15 @@ export * from './Three.Core.js';
2
2
 
3
3
  export * from './materials/nodes/NodeMaterials.js';
4
4
  export { default as WebGPURenderer } from './renderers/webgpu/WebGPURenderer.Nodes.js';
5
+ export { default as WebGPUBackend } from './renderers/webgpu/WebGPUBackend.js';
6
+ export { default as WebGLBackend } from './renderers/webgl-fallback/WebGLBackend.js';
5
7
  export { default as Lighting } from './renderers/common/Lighting.js';
6
8
  export { default as BundleGroup } from './renderers/common/BundleGroup.js';
7
9
  export { default as QuadMesh } from './renderers/common/QuadMesh.js';
8
10
  export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
11
+ export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
9
12
  export { default as PostProcessing } from './renderers/common/PostProcessing.js';
13
+ export { default as ReadbackBuffer } from './renderers/common/ReadbackBuffer.js';
10
14
  import * as RendererUtils from './renderers/common/RendererUtils.js';
11
15
  export { RendererUtils };
12
16
  export { default as StorageTexture } from './renderers/common/StorageTexture.js';
@@ -20,6 +24,7 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
20
24
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
21
25
  export { default as InspectorBase } from './renderers/common/InspectorBase.js';
22
26
  export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
27
+ export { default as BlendMode } from './renderers/common/BlendMode.js';
23
28
  export { ClippingGroup } from './objects/ClippingGroup.js';
24
29
  export * from './nodes/Nodes.js';
25
30
  import * as TSL from './nodes/TSL.js';
@@ -2,13 +2,19 @@ export * from './Three.Core.js';
2
2
 
3
3
  export * from './materials/nodes/NodeMaterials.js';
4
4
  export { default as WebGPURenderer } from './renderers/webgpu/WebGPURenderer.js';
5
+ export { default as WebGPUBackend } from './renderers/webgpu/WebGPUBackend.js';
6
+ export { default as WebGLBackend } from './renderers/webgl-fallback/WebGLBackend.js';
7
+ export { default as WebGLCapabilities } from './renderers/webgl-fallback/utils/WebGLCapabilities.js';
5
8
  export { default as Lighting } from './renderers/common/Lighting.js';
6
9
  export { default as BundleGroup } from './renderers/common/BundleGroup.js';
7
10
  export { default as QuadMesh } from './renderers/common/QuadMesh.js';
8
11
  export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
12
+ export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
9
13
  export { default as PostProcessing } from './renderers/common/PostProcessing.js';
14
+ export { default as ReadbackBuffer } from './renderers/common/ReadbackBuffer.js';
10
15
  import * as RendererUtils from './renderers/common/RendererUtils.js';
11
16
  export { RendererUtils };
17
+ export { default as CubeRenderTarget } from './renderers/common/CubeRenderTarget.js';
12
18
  export { default as StorageTexture } from './renderers/common/StorageTexture.js';
13
19
  export { default as Storage3DTexture } from './renderers/common/Storage3DTexture.js';
14
20
  export { default as StorageArrayTexture } from './renderers/common/StorageArrayTexture.js';
@@ -22,6 +28,9 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
22
28
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
23
29
  export { default as InspectorBase } from './renderers/common/InspectorBase.js';
24
30
  export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
31
+ export { default as BlendMode } from './renderers/common/BlendMode.js';
32
+ export { default as GLSLNodeBuilder } from './renderers/webgl-fallback/nodes/GLSLNodeBuilder.js';
33
+ export { default as BasicNodeLibrary } from './renderers/webgpu/nodes/BasicNodeLibrary.js';
25
34
  export { ClippingGroup } from './objects/ClippingGroup.js';
26
35
  export * from './nodes/Nodes.js';
27
36
  import * as TSL from './nodes/TSL.js';
package/src/Three.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './Three.Core.js';
2
2
 
3
3
  export { WebGLRenderer } from './renderers/WebGLRenderer.js';
4
+ export { WebGLCubeRenderTarget } from './renderers/WebGLCubeRenderTarget.js';
4
5
  export { ShaderLib } from './renderers/shaders/ShaderLib.js';
5
6
  export { UniformsLib } from './renderers/shaders/UniformsLib.js';
6
7
  export { UniformsUtils } from './renderers/shaders/UniformsUtils.js';
@@ -41,6 +41,15 @@ class AnimationAction {
41
41
 
42
42
  const interpolant = tracks[ i ].createInterpolant( null );
43
43
  interpolants[ i ] = interpolant;
44
+
45
+ // preserve interpolant settings (like tangent data from BezierInterpolant)
46
+
47
+ if ( interpolant.settings ) {
48
+
49
+ Object.assign( interpolantSettings, interpolant.settings );
50
+
51
+ }
52
+
44
53
  interpolant.settings = interpolantSettings;
45
54
 
46
55
  }
@@ -548,7 +557,7 @@ class AnimationAction {
548
557
 
549
558
  }
550
559
 
551
- // Interna
560
+ // Internal
552
561
 
553
562
  _update( time, deltaTime, timeDirection, accuIndex ) {
554
563
 
@@ -847,6 +856,7 @@ class AnimationAction {
847
856
 
848
857
  } else {
849
858
 
859
+ this._loopCount = loopCount;
850
860
  this.time = time;
851
861
 
852
862
  }
@@ -894,7 +904,7 @@ class AnimationAction {
894
904
 
895
905
  } else {
896
906
 
897
- settings.endingEnd = WrapAroundEnding;
907
+ settings.endingEnd = WrapAroundEnding;
898
908
 
899
909
  }
900
910
 
@@ -301,7 +301,7 @@ class AnimationClip {
301
301
  * @static
302
302
  * @deprecated since r175.
303
303
  * @param {Object} animation - A serialized animation clip as JSON.
304
- * @param {Array<Bones>} bones - An array of bones.
304
+ * @param {Array<Bone>} bones - An array of bones.
305
305
  * @return {?AnimationClip} The new animation clip.
306
306
  */
307
307
  static parseAnimation( animation, bones ) {
@@ -48,6 +48,12 @@ class AnimationMixer extends EventDispatcher {
48
48
  */
49
49
  this.timeScale = 1.0;
50
50
 
51
+ if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
52
+
53
+ __THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );
54
+
55
+ }
56
+
51
57
  }
52
58
 
53
59
  _bindAction( action, prototypeAction ) {
@@ -1,5 +1,6 @@
1
1
  import { Quaternion } from '../math/Quaternion.js';
2
2
  import { AdditiveAnimationBlendMode } from '../constants.js';
3
+ import { isTypedArray } from '../utils.js';
3
4
 
4
5
  /**
5
6
  * Converts an array to a specific type.
@@ -22,18 +23,6 @@ function convertArray( array, type ) {
22
23
 
23
24
  }
24
25
 
25
- /**
26
- * Returns `true` if the given object is a typed array.
27
- *
28
- * @param {any} object - The object to check.
29
- * @return {boolean} Whether the given object is a typed array.
30
- */
31
- function isTypedArray( object ) {
32
-
33
- return ArrayBuffer.isView( object ) && ! ( object instanceof DataView );
34
-
35
- }
36
-
37
26
  /**
38
27
  * Returns an array by which times and values can be sorted.
39
28
  *
@@ -1,16 +1,18 @@
1
1
  import {
2
2
  InterpolateLinear,
3
3
  InterpolateSmooth,
4
- InterpolateDiscrete
4
+ InterpolateDiscrete,
5
+ InterpolateBezier
5
6
  } from '../constants.js';
6
7
  import { CubicInterpolant } from '../math/interpolants/CubicInterpolant.js';
7
8
  import { LinearInterpolant } from '../math/interpolants/LinearInterpolant.js';
8
9
  import { DiscreteInterpolant } from '../math/interpolants/DiscreteInterpolant.js';
10
+ import { BezierInterpolant } from '../math/interpolants/BezierInterpolant.js';
9
11
  import * as AnimationUtils from './AnimationUtils.js';
10
12
  import { warn, error } from '../utils.js';
11
13
 
12
14
  /**
13
- * Represents s a timed sequence of keyframes, which are composed of lists of
15
+ * Represents a timed sequence of keyframes, which are composed of lists of
14
16
  * times and related values, and which are used to animate a specific property
15
17
  * of an object.
16
18
  */
@@ -22,7 +24,7 @@ class KeyframeTrack {
22
24
  * @param {string} name - The keyframe track's name.
23
25
  * @param {Array<number>} times - A list of keyframe times.
24
26
  * @param {Array<number|string|boolean>} values - A list of keyframe values.
25
- * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.
27
+ * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} [interpolation] - The interpolation type.
26
28
  */
27
29
  constructor( name, times, values, interpolation ) {
28
30
 
@@ -140,10 +142,37 @@ class KeyframeTrack {
140
142
 
141
143
  }
142
144
 
145
+ /**
146
+ * Factory method for creating a new Bezier interpolant.
147
+ *
148
+ * The Bezier interpolant requires tangent data to be set via the `settings` property
149
+ * on the track before creating the interpolant. The settings should contain:
150
+ * - `inTangents`: Float32Array with [time, value] pairs per keyframe per component
151
+ * - `outTangents`: Float32Array with [time, value] pairs per keyframe per component
152
+ *
153
+ * @static
154
+ * @param {TypedArray} [result] - The result buffer.
155
+ * @return {BezierInterpolant} The new interpolant.
156
+ */
157
+ InterpolantFactoryMethodBezier( result ) {
158
+
159
+ const interpolant = new BezierInterpolant( this.times, this.values, this.getValueSize(), result );
160
+
161
+ // Pass tangent data from track settings to interpolant
162
+ if ( this.settings ) {
163
+
164
+ interpolant.settings = this.settings;
165
+
166
+ }
167
+
168
+ return interpolant;
169
+
170
+ }
171
+
143
172
  /**
144
173
  * Defines the interpolation factor method for this keyframe track.
145
174
  *
146
- * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} interpolation - The interpolation type.
175
+ * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} interpolation - The interpolation type.
147
176
  * @return {KeyframeTrack} A reference to this keyframe track.
148
177
  */
149
178
  setInterpolation( interpolation ) {
@@ -170,6 +199,12 @@ class KeyframeTrack {
170
199
 
171
200
  break;
172
201
 
202
+ case InterpolateBezier:
203
+
204
+ factoryMethod = this.InterpolantFactoryMethodBezier;
205
+
206
+ break;
207
+
173
208
  }
174
209
 
175
210
  if ( factoryMethod === undefined ) {
@@ -206,7 +241,7 @@ class KeyframeTrack {
206
241
  /**
207
242
  * Returns the current interpolation type.
208
243
  *
209
- * @return {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} The interpolation type.
244
+ * @return {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} The interpolation type.
210
245
  */
211
246
  getInterpolation() {
212
247
 
@@ -224,6 +259,10 @@ class KeyframeTrack {
224
259
 
225
260
  return InterpolateSmooth;
226
261
 
262
+ case this.InterpolantFactoryMethodBezier:
263
+
264
+ return InterpolateBezier;
265
+
227
266
  }
228
267
 
229
268
  }
@@ -425,7 +464,7 @@ class KeyframeTrack {
425
464
  * Optimizes this keyframe track by removing equivalent sequential keys (which are
426
465
  * common in morph target sequences).
427
466
  *
428
- * @return {AnimationClip} A reference to this animation clip.
467
+ * @return {KeyframeTrack} A reference to this keyframe track.
429
468
  */
430
469
  optimize() {
431
470
 
@@ -565,7 +604,7 @@ class KeyframeTrack {
565
604
  /**
566
605
  * The value type name.
567
606
  *
568
- * @type {String}
607
+ * @type {string}
569
608
  * @default ''
570
609
  */
571
610
  KeyframeTrack.prototype.ValueTypeName = '';
@@ -589,7 +628,7 @@ KeyframeTrack.prototype.ValueBufferType = Float32Array;
589
628
  /**
590
629
  * The default interpolation type of this keyframe track.
591
630
  *
592
- * @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}
631
+ * @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)}
593
632
  * @default InterpolateLinear
594
633
  */
595
634
  KeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;