super-three 0.179.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 (696) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -4
  3. package/build/three.cjs +14522 -12207
  4. package/build/three.core.js +12005 -10954
  5. package/build/three.core.min.js +2 -2
  6. package/build/three.module.js +2270 -1005
  7. package/build/three.module.min.js +2 -2
  8. package/build/three.tsl.js +63 -18
  9. package/build/three.tsl.min.js +2 -2
  10. package/build/three.webgpu.js +16573 -7890
  11. package/build/three.webgpu.min.js +2 -2
  12. package/build/three.webgpu.nodes.js +16533 -7888
  13. package/build/three.webgpu.nodes.min.js +2 -2
  14. package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
  15. package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
  16. package/examples/jsm/Addons.js +12 -4
  17. package/examples/jsm/animation/CCDIKSolver.js +8 -4
  18. package/examples/jsm/controls/ArcballControls.js +15 -12
  19. package/examples/jsm/controls/DragControls.js +9 -59
  20. package/examples/jsm/controls/FirstPersonControls.js +61 -57
  21. package/examples/jsm/controls/FlyControls.js +5 -1
  22. package/examples/jsm/controls/MapControls.js +55 -1
  23. package/examples/jsm/controls/OrbitControls.js +113 -10
  24. package/examples/jsm/controls/PointerLockControls.js +2 -10
  25. package/examples/jsm/controls/TrackballControls.js +9 -9
  26. package/examples/jsm/controls/TransformControls.js +35 -3
  27. package/examples/jsm/csm/CSM.js +2 -1
  28. package/examples/jsm/csm/CSMShadowNode.js +6 -2
  29. package/examples/jsm/effects/AnaglyphEffect.js +102 -7
  30. package/examples/jsm/effects/AsciiEffect.js +8 -8
  31. package/examples/jsm/environments/ColorEnvironment.js +59 -0
  32. package/examples/jsm/environments/RoomEnvironment.js +3 -0
  33. package/examples/jsm/exporters/DRACOExporter.js +2 -2
  34. package/examples/jsm/exporters/EXRExporter.js +2 -2
  35. package/examples/jsm/exporters/GLTFExporter.js +185 -34
  36. package/examples/jsm/exporters/KTX2Exporter.js +4 -2
  37. package/examples/jsm/exporters/PLYExporter.js +1 -1
  38. package/examples/jsm/exporters/USDZExporter.js +31 -5
  39. package/examples/jsm/geometries/DecalGeometry.js +3 -3
  40. package/examples/jsm/geometries/ParametricGeometry.js +1 -1
  41. package/examples/jsm/geometries/TeapotGeometry.js +2 -2
  42. package/examples/jsm/geometries/TextGeometry.js +21 -2
  43. package/examples/jsm/gpgpu/BitonicSort.js +715 -0
  44. package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
  45. package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
  46. package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
  47. package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
  48. package/examples/jsm/helpers/ViewHelper.js +110 -13
  49. package/examples/jsm/inspector/Extension.js +13 -0
  50. package/examples/jsm/inspector/Inspector.js +542 -0
  51. package/examples/jsm/inspector/RendererInspector.js +425 -0
  52. package/examples/jsm/inspector/extensions/extensions.json +6 -0
  53. package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
  54. package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
  55. package/examples/jsm/inspector/tabs/Console.js +238 -0
  56. package/examples/jsm/inspector/tabs/Memory.js +128 -0
  57. package/examples/jsm/inspector/tabs/Parameters.js +380 -0
  58. package/examples/jsm/inspector/tabs/Performance.js +268 -0
  59. package/examples/jsm/inspector/tabs/Settings.js +264 -0
  60. package/examples/jsm/inspector/tabs/Timeline.js +1611 -0
  61. package/examples/jsm/inspector/tabs/Viewer.js +268 -0
  62. package/examples/jsm/inspector/ui/Graph.js +95 -0
  63. package/examples/jsm/inspector/ui/Item.js +170 -0
  64. package/examples/jsm/inspector/ui/List.js +75 -0
  65. package/examples/jsm/inspector/ui/Profiler.js +2072 -0
  66. package/examples/jsm/inspector/ui/Style.js +1667 -0
  67. package/examples/jsm/inspector/ui/Tab.js +265 -0
  68. package/examples/jsm/inspector/ui/Values.js +476 -0
  69. package/examples/jsm/inspector/ui/utils.js +69 -0
  70. package/examples/jsm/interaction/InteractionManager.js +226 -0
  71. package/examples/jsm/interactive/HTMLMesh.js +6 -10
  72. package/examples/jsm/interactive/InteractiveGroup.js +1 -1
  73. package/examples/jsm/interactive/SelectionBox.js +30 -0
  74. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  75. package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
  76. package/examples/jsm/lighting/DynamicLighting.js +82 -0
  77. package/examples/jsm/lighting/LightProbeGrid.js +651 -0
  78. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
  79. package/examples/jsm/lines/Line2.js +3 -3
  80. package/examples/jsm/lines/LineGeometry.js +1 -1
  81. package/examples/jsm/lines/LineMaterial.js +7 -1
  82. package/examples/jsm/lines/LineSegments2.js +2 -2
  83. package/examples/jsm/lines/Wireframe.js +2 -2
  84. package/examples/jsm/lines/WireframeGeometry2.js +1 -1
  85. package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
  86. package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
  87. package/examples/jsm/loaders/3DMLoader.js +5 -4
  88. package/examples/jsm/loaders/3MFLoader.js +3 -3
  89. package/examples/jsm/loaders/AMFLoader.js +2 -2
  90. package/examples/jsm/loaders/ColladaLoader.js +27 -4029
  91. package/examples/jsm/loaders/DDSLoader.js +1 -1
  92. package/examples/jsm/loaders/DRACOLoader.js +73 -22
  93. package/examples/jsm/loaders/EXRLoader.js +692 -53
  94. package/examples/jsm/loaders/FBXLoader.js +237 -39
  95. package/examples/jsm/loaders/FontLoader.js +23 -5
  96. package/examples/jsm/loaders/GCodeLoader.js +34 -8
  97. package/examples/jsm/loaders/GLTFLoader.js +159 -185
  98. package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
  99. package/examples/jsm/loaders/HDRLoader.js +485 -0
  100. package/examples/jsm/loaders/KMZLoader.js +5 -5
  101. package/examples/jsm/loaders/KTX2Loader.js +162 -53
  102. package/examples/jsm/loaders/KTXLoader.js +2 -2
  103. package/examples/jsm/loaders/LDrawLoader.js +41 -50
  104. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  105. package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
  106. package/examples/jsm/loaders/LWOLoader.js +9 -41
  107. package/examples/jsm/loaders/MaterialXLoader.js +22 -5
  108. package/examples/jsm/loaders/NRRDLoader.js +2 -2
  109. package/examples/jsm/loaders/OBJLoader.js +1 -1
  110. package/examples/jsm/loaders/PCDLoader.js +4 -2
  111. package/examples/jsm/loaders/PDBLoader.js +1 -1
  112. package/examples/jsm/loaders/RGBELoader.js +7 -473
  113. package/examples/jsm/loaders/SVGLoader.js +4 -4
  114. package/examples/jsm/loaders/TDSLoader.js +0 -2
  115. package/examples/jsm/loaders/TGALoader.js +0 -2
  116. package/examples/jsm/loaders/TTFLoader.js +4 -4
  117. package/examples/jsm/loaders/USDLoader.js +100 -40
  118. package/examples/jsm/loaders/UltraHDRLoader.js +287 -162
  119. package/examples/jsm/loaders/VOXLoader.js +660 -117
  120. package/examples/jsm/loaders/VRMLLoader.js +79 -2
  121. package/examples/jsm/loaders/VTKLoader.js +42 -25
  122. package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
  123. package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
  124. package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
  125. package/examples/jsm/loaders/usd/USDAParser.js +450 -363
  126. package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
  127. package/examples/jsm/loaders/usd/USDComposer.js +4594 -0
  128. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
  129. package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
  130. package/examples/jsm/math/ColorSpaces.js +19 -1
  131. package/examples/jsm/math/ConvexHull.js +3 -3
  132. package/examples/jsm/math/ImprovedNoise.js +1 -1
  133. package/examples/jsm/math/Lut.js +2 -2
  134. package/examples/jsm/math/Octree.js +131 -1
  135. package/examples/jsm/math/SimplexNoise.js +1 -1
  136. package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
  137. package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
  138. package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
  139. package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
  140. package/examples/jsm/misc/RollerCoaster.js +42 -4
  141. package/examples/jsm/misc/TubePainter.js +383 -40
  142. package/examples/jsm/misc/Volume.js +1 -2
  143. package/examples/jsm/misc/VolumeSlice.js +0 -1
  144. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  145. package/examples/jsm/modifiers/TessellateModifier.js +1 -1
  146. package/examples/jsm/objects/LensflareMesh.js +1 -1
  147. package/examples/jsm/objects/Reflector.js +73 -25
  148. package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
  149. package/examples/jsm/objects/Sky.js +91 -7
  150. package/examples/jsm/objects/SkyMesh.js +151 -17
  151. package/examples/jsm/objects/Water.js +7 -6
  152. package/examples/jsm/objects/Water2.js +5 -3
  153. package/examples/jsm/objects/WaterMesh.js +11 -13
  154. package/examples/jsm/physics/AmmoPhysics.js +12 -7
  155. package/examples/jsm/physics/JoltPhysics.js +10 -6
  156. package/examples/jsm/physics/RapierPhysics.js +9 -5
  157. package/examples/jsm/postprocessing/EffectComposer.js +7 -5
  158. package/examples/jsm/postprocessing/GlitchPass.js +2 -2
  159. package/examples/jsm/postprocessing/OutlinePass.js +1 -1
  160. package/examples/jsm/postprocessing/OutputPass.js +9 -0
  161. package/examples/jsm/postprocessing/RenderPass.js +10 -0
  162. package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
  163. package/examples/jsm/postprocessing/SSRPass.js +37 -8
  164. package/examples/jsm/postprocessing/UnrealBloomPass.js +56 -24
  165. package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
  166. package/examples/jsm/renderers/CSS3DRenderer.js +8 -7
  167. package/examples/jsm/renderers/Projector.js +246 -28
  168. package/examples/jsm/renderers/SVGRenderer.js +175 -61
  169. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
  170. package/examples/jsm/shaders/AfterimageShader.js +1 -1
  171. package/examples/jsm/shaders/BleachBypassShader.js +1 -1
  172. package/examples/jsm/shaders/BokehShader.js +1 -1
  173. package/examples/jsm/shaders/BokehShader2.js +1 -1
  174. package/examples/jsm/shaders/DotScreenShader.js +1 -1
  175. package/examples/jsm/shaders/FocusShader.js +1 -1
  176. package/examples/jsm/shaders/GTAOShader.js +21 -8
  177. package/examples/jsm/shaders/HalftoneShader.js +12 -1
  178. package/examples/jsm/shaders/KaleidoShader.js +1 -1
  179. package/examples/jsm/shaders/PoissonDenoiseShader.js +8 -4
  180. package/examples/jsm/shaders/SAOShader.js +17 -4
  181. package/examples/jsm/shaders/SSAOShader.js +11 -1
  182. package/examples/jsm/shaders/SSRShader.js +7 -6
  183. package/examples/jsm/shaders/SepiaShader.js +1 -1
  184. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
  185. package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
  186. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +3 -5
  187. package/examples/jsm/shaders/VignetteShader.js +1 -1
  188. package/examples/jsm/transpiler/AST.js +44 -0
  189. package/examples/jsm/transpiler/GLSLDecoder.js +85 -25
  190. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
  191. package/examples/jsm/transpiler/TSLEncoder.js +52 -10
  192. package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
  193. package/examples/jsm/transpiler/WGSLEncoder.js +51 -0
  194. package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
  195. package/examples/jsm/tsl/display/AfterImageNode.js +36 -24
  196. package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
  197. package/examples/jsm/tsl/display/AnamorphicNode.js +40 -5
  198. package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
  199. package/examples/jsm/tsl/display/BloomNode.js +23 -9
  200. package/examples/jsm/tsl/display/CRT.js +150 -0
  201. package/examples/jsm/tsl/display/ChromaticAberrationNode.js +5 -37
  202. package/examples/jsm/tsl/display/DenoiseNode.js +3 -1
  203. package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
  204. package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
  205. package/examples/jsm/tsl/display/FSR1Node.js +477 -0
  206. package/examples/jsm/tsl/display/FXAANode.js +2 -2
  207. package/examples/jsm/tsl/display/GTAONode.js +59 -9
  208. package/examples/jsm/tsl/display/GaussianBlurNode.js +68 -35
  209. package/examples/jsm/tsl/display/GodraysNode.js +615 -0
  210. package/examples/jsm/tsl/display/LensflareNode.js +1 -1
  211. package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
  212. package/examples/jsm/tsl/display/OutlineNode.js +81 -20
  213. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
  214. package/examples/jsm/tsl/display/PixelationPassNode.js +7 -6
  215. package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
  216. package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
  217. package/examples/jsm/tsl/display/SMAANode.js +2 -2
  218. package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
  219. package/examples/jsm/tsl/display/SSGINode.js +638 -0
  220. package/examples/jsm/tsl/display/SSRNode.js +186 -69
  221. package/examples/jsm/tsl/display/SSSNode.js +490 -0
  222. package/examples/jsm/tsl/display/Shape.js +29 -0
  223. package/examples/jsm/tsl/display/SharpenNode.js +283 -0
  224. package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
  225. package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
  226. package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
  227. package/examples/jsm/tsl/display/TAAUNode.js +835 -0
  228. package/examples/jsm/tsl/display/TRAANode.js +381 -75
  229. package/examples/jsm/tsl/display/TransitionNode.js +1 -1
  230. package/examples/jsm/tsl/display/boxBlur.js +65 -0
  231. package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
  232. package/examples/jsm/tsl/display/hashBlur.js +16 -18
  233. package/examples/jsm/tsl/display/radialBlur.js +68 -0
  234. package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
  235. package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
  236. package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
  237. package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
  238. package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
  239. package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
  240. package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
  241. package/examples/jsm/tsl/math/Bayer.js +53 -3
  242. package/examples/jsm/utils/BufferGeometryUtils.js +3 -4
  243. package/examples/jsm/utils/ColorUtils.js +76 -0
  244. package/examples/jsm/utils/LDrawUtils.js +1 -1
  245. package/examples/jsm/utils/ShadowMapViewer.js +24 -10
  246. package/examples/jsm/utils/ShadowMapViewerGPU.js +13 -6
  247. package/examples/jsm/utils/SkeletonUtils.js +14 -8
  248. package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
  249. package/examples/jsm/webxr/OculusHandModel.js +1 -1
  250. package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
  251. package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
  252. package/examples/jsm/webxr/XRHandModelFactory.js +4 -7
  253. package/package.json +27 -38
  254. package/src/Three.Core.js +7 -3
  255. package/src/Three.TSL.js +61 -16
  256. package/src/Three.WebGPU.Nodes.js +7 -0
  257. package/src/Three.WebGPU.js +11 -0
  258. package/src/Three.js +1 -0
  259. package/src/animation/AnimationAction.js +12 -2
  260. package/src/animation/AnimationClip.js +21 -5
  261. package/src/animation/AnimationMixer.js +9 -3
  262. package/src/animation/AnimationObjectGroup.js +2 -1
  263. package/src/animation/AnimationUtils.js +1 -12
  264. package/src/animation/KeyframeTrack.js +54 -14
  265. package/src/animation/PropertyBinding.js +12 -11
  266. package/src/animation/PropertyMixer.js +4 -4
  267. package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
  268. package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
  269. package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
  270. package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
  271. package/src/animation/tracks/StringKeyframeTrack.js +1 -1
  272. package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
  273. package/src/audio/Audio.js +11 -10
  274. package/src/audio/AudioContext.js +2 -2
  275. package/src/audio/AudioListener.js +5 -3
  276. package/src/audio/PositionalAudio.js +1 -1
  277. package/src/cameras/Camera.js +32 -2
  278. package/src/cameras/CubeCamera.js +20 -0
  279. package/src/cameras/OrthographicCamera.js +1 -1
  280. package/src/cameras/PerspectiveCamera.js +1 -1
  281. package/src/cameras/StereoCamera.js +2 -2
  282. package/src/constants.js +100 -7
  283. package/src/core/BufferAttribute.js +13 -1
  284. package/src/core/BufferGeometry.js +24 -12
  285. package/src/core/Clock.js +7 -0
  286. package/src/core/EventDispatcher.js +1 -1
  287. package/src/core/InterleavedBuffer.js +1 -1
  288. package/src/core/InterleavedBufferAttribute.js +3 -2
  289. package/src/core/Object3D.js +55 -6
  290. package/src/core/Raycaster.js +4 -3
  291. package/src/core/RenderTarget.js +14 -5
  292. package/src/extras/Controls.js +5 -4
  293. package/src/extras/DataUtils.js +2 -1
  294. package/src/extras/Earcut.js +6 -0
  295. package/src/extras/ImageUtils.js +2 -2
  296. package/src/extras/PMREMGenerator.js +259 -57
  297. package/src/extras/TextureUtils.js +6 -1
  298. package/src/extras/core/Curve.js +2 -1
  299. package/src/extras/core/Interpolations.js +7 -1
  300. package/src/extras/core/ShapePath.js +4 -4
  301. package/src/extras/curves/CatmullRomCurve3.js +3 -2
  302. package/src/extras/lib/earcut.js +8 -8
  303. package/src/geometries/BoxGeometry.js +1 -0
  304. package/src/geometries/CapsuleGeometry.js +1 -0
  305. package/src/geometries/CircleGeometry.js +1 -0
  306. package/src/geometries/ConeGeometry.js +1 -0
  307. package/src/geometries/CylinderGeometry.js +1 -0
  308. package/src/geometries/DodecahedronGeometry.js +1 -0
  309. package/src/geometries/ExtrudeGeometry.js +10 -8
  310. package/src/geometries/IcosahedronGeometry.js +1 -0
  311. package/src/geometries/LatheGeometry.js +1 -0
  312. package/src/geometries/OctahedronGeometry.js +1 -0
  313. package/src/geometries/PlaneGeometry.js +1 -0
  314. package/src/geometries/PolyhedronGeometry.js +1 -1
  315. package/src/geometries/RingGeometry.js +1 -0
  316. package/src/geometries/ShapeGeometry.js +1 -0
  317. package/src/geometries/SphereGeometry.js +1 -0
  318. package/src/geometries/TetrahedronGeometry.js +1 -0
  319. package/src/geometries/TorusGeometry.js +9 -3
  320. package/src/geometries/TorusKnotGeometry.js +1 -0
  321. package/src/geometries/TubeGeometry.js +1 -0
  322. package/src/helpers/CameraHelper.js +4 -1
  323. package/src/helpers/DirectionalLightHelper.js +4 -1
  324. package/src/helpers/HemisphereLightHelper.js +3 -0
  325. package/src/helpers/PointLightHelper.js +1 -25
  326. package/src/helpers/SpotLightHelper.js +3 -0
  327. package/src/lights/DirectionalLight.js +13 -0
  328. package/src/lights/HemisphereLight.js +10 -0
  329. package/src/lights/Light.js +1 -11
  330. package/src/lights/LightProbe.js +0 -15
  331. package/src/lights/LightShadow.js +15 -6
  332. package/src/lights/PointLight.js +15 -0
  333. package/src/lights/PointLightShadow.js +0 -86
  334. package/src/lights/SpotLight.js +22 -1
  335. package/src/lights/webgpu/IESSpotLight.js +2 -1
  336. package/src/lights/webgpu/ProjectorLight.js +1 -1
  337. package/src/loaders/AnimationLoader.js +2 -1
  338. package/src/loaders/AudioLoader.js +13 -2
  339. package/src/loaders/BufferGeometryLoader.js +2 -2
  340. package/src/loaders/Cache.js +30 -2
  341. package/src/loaders/DataTextureLoader.js +6 -4
  342. package/src/loaders/FileLoader.js +4 -4
  343. package/src/loaders/ImageBitmapLoader.js +17 -13
  344. package/src/loaders/ImageLoader.js +1 -1
  345. package/src/loaders/Loader.js +9 -3
  346. package/src/loaders/LoadingManager.js +25 -3
  347. package/src/loaders/MaterialLoader.js +6 -4
  348. package/src/loaders/ObjectLoader.js +57 -17
  349. package/src/loaders/TextureLoader.js +1 -1
  350. package/src/loaders/nodes/NodeLoader.js +5 -4
  351. package/src/loaders/nodes/NodeObjectLoader.js +18 -0
  352. package/src/materials/Material.js +18 -3
  353. package/src/materials/MeshBasicMaterial.js +1 -0
  354. package/src/materials/MeshDepthMaterial.js +1 -0
  355. package/src/materials/MeshDistanceMaterial.js +1 -1
  356. package/src/materials/MeshLambertMaterial.js +11 -1
  357. package/src/materials/MeshMatcapMaterial.js +22 -0
  358. package/src/materials/MeshNormalMaterial.js +1 -0
  359. package/src/materials/MeshPhongMaterial.js +11 -1
  360. package/src/materials/MeshPhysicalMaterial.js +2 -1
  361. package/src/materials/MeshStandardMaterial.js +8 -7
  362. package/src/materials/MeshToonMaterial.js +2 -1
  363. package/src/materials/PointsMaterial.js +1 -1
  364. package/src/materials/ShaderMaterial.js +22 -3
  365. package/src/materials/nodes/Line2NodeMaterial.js +36 -9
  366. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
  367. package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
  368. package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
  369. package/src/materials/nodes/NodeMaterial.js +95 -35
  370. package/src/materials/nodes/PointsNodeMaterial.js +81 -28
  371. package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
  372. package/src/materials/nodes/manager/NodeMaterialObserver.js +194 -88
  373. package/src/math/Color.js +6 -5
  374. package/src/math/ColorManagement.js +9 -3
  375. package/src/math/Cylindrical.js +1 -1
  376. package/src/math/Euler.js +2 -1
  377. package/src/math/Line3.js +6 -5
  378. package/src/math/MathUtils.js +23 -21
  379. package/src/math/Matrix2.js +14 -10
  380. package/src/math/Matrix3.js +15 -11
  381. package/src/math/Matrix4.js +94 -81
  382. package/src/math/Plane.js +5 -4
  383. package/src/math/Quaternion.js +60 -84
  384. package/src/math/Sphere.js +1 -1
  385. package/src/math/Spherical.js +1 -1
  386. package/src/math/Triangle.js +1 -1
  387. package/src/math/Vector2.js +11 -7
  388. package/src/math/Vector3.js +15 -13
  389. package/src/math/Vector4.js +13 -9
  390. package/src/math/interpolants/BezierInterpolant.js +108 -0
  391. package/src/nodes/Nodes.js +86 -65
  392. package/src/nodes/TSL.js +11 -8
  393. package/src/nodes/accessors/Arrays.js +1 -1
  394. package/src/nodes/accessors/BatchNode.js +10 -10
  395. package/src/nodes/accessors/Bitangent.js +5 -5
  396. package/src/nodes/accessors/BufferAttributeNode.js +107 -15
  397. package/src/nodes/accessors/BufferNode.js +30 -3
  398. package/src/nodes/accessors/Camera.js +260 -13
  399. package/src/nodes/accessors/ClippingNode.js +10 -9
  400. package/src/nodes/accessors/CubeTextureNode.js +32 -6
  401. package/src/nodes/accessors/InstanceNode.js +164 -39
  402. package/src/nodes/accessors/Lights.js +10 -0
  403. package/src/nodes/accessors/MaterialNode.js +9 -1
  404. package/src/nodes/accessors/MaterialProperties.js +2 -5
  405. package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
  406. package/src/nodes/accessors/ModelNode.js +1 -1
  407. package/src/nodes/accessors/Normal.js +16 -15
  408. package/src/nodes/accessors/Object3DNode.js +2 -2
  409. package/src/nodes/accessors/Position.js +51 -3
  410. package/src/nodes/accessors/ReferenceBaseNode.js +7 -7
  411. package/src/nodes/accessors/ReferenceNode.js +11 -10
  412. package/src/nodes/accessors/RendererReferenceNode.js +1 -2
  413. package/src/nodes/accessors/SceneProperties.js +47 -0
  414. package/src/nodes/accessors/SkinningNode.js +27 -26
  415. package/src/nodes/accessors/StorageBufferNode.js +14 -24
  416. package/src/nodes/accessors/StorageTextureNode.js +62 -9
  417. package/src/nodes/accessors/Tangent.js +4 -14
  418. package/src/nodes/accessors/Texture3DNode.js +41 -31
  419. package/src/nodes/accessors/TextureNode.js +193 -63
  420. package/src/nodes/accessors/UniformArrayNode.js +6 -4
  421. package/src/nodes/accessors/UserDataNode.js +1 -2
  422. package/src/nodes/accessors/VertexColorNode.js +1 -2
  423. package/src/nodes/code/FunctionCallNode.js +25 -5
  424. package/src/nodes/code/FunctionNode.js +25 -3
  425. package/src/nodes/core/ArrayNode.js +22 -2
  426. package/src/nodes/core/AssignNode.js +6 -5
  427. package/src/nodes/core/AttributeNode.js +5 -4
  428. package/src/nodes/core/BypassNode.js +1 -1
  429. package/src/nodes/core/ContextNode.js +133 -15
  430. package/src/nodes/core/IndexNode.js +4 -3
  431. package/src/nodes/core/InputNode.js +3 -2
  432. package/src/nodes/core/InspectorNode.js +128 -0
  433. package/src/nodes/core/{CacheNode.js → IsolateNode.js} +41 -8
  434. package/src/nodes/core/MRTNode.js +48 -2
  435. package/src/nodes/core/Node.js +264 -46
  436. package/src/nodes/core/NodeBuilder.js +453 -87
  437. package/src/nodes/core/NodeError.js +28 -0
  438. package/src/nodes/core/NodeFrame.js +31 -23
  439. package/src/nodes/core/NodeFunction.js +2 -1
  440. package/src/nodes/core/NodeParser.js +2 -1
  441. package/src/nodes/core/NodeUniform.js +1 -1
  442. package/src/nodes/core/NodeUtils.js +25 -97
  443. package/src/nodes/core/OutputStructNode.js +12 -10
  444. package/src/nodes/core/ParameterNode.js +34 -3
  445. package/src/nodes/core/PropertyNode.js +26 -3
  446. package/src/nodes/core/StackNode.js +99 -23
  447. package/src/nodes/core/StackTrace.js +139 -0
  448. package/src/nodes/core/StructNode.js +22 -8
  449. package/src/nodes/core/StructTypeNode.js +13 -18
  450. package/src/nodes/core/SubBuildNode.js +4 -4
  451. package/src/nodes/core/UniformGroupNode.js +36 -6
  452. package/src/nodes/core/UniformNode.js +37 -13
  453. package/src/nodes/core/VarNode.js +96 -34
  454. package/src/nodes/core/VaryingNode.js +2 -18
  455. package/src/nodes/display/BlendModes.js +0 -63
  456. package/src/nodes/display/BumpMapNode.js +1 -1
  457. package/src/nodes/display/ColorAdjustment.js +18 -1
  458. package/src/nodes/display/ColorSpaceNode.js +3 -3
  459. package/src/nodes/display/FrontFacingNode.js +4 -8
  460. package/src/nodes/display/NormalMapNode.js +41 -5
  461. package/src/nodes/display/PassNode.js +175 -25
  462. package/src/nodes/display/RenderOutputNode.js +35 -9
  463. package/src/nodes/display/ScreenNode.js +47 -15
  464. package/src/nodes/display/ToneMappingNode.js +32 -5
  465. package/src/nodes/display/ToonOutlinePassNode.js +10 -2
  466. package/src/nodes/display/ViewportDepthNode.js +52 -4
  467. package/src/nodes/display/ViewportDepthTextureNode.js +14 -6
  468. package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
  469. package/src/nodes/display/ViewportTextureNode.js +72 -14
  470. package/src/nodes/fog/Fog.js +18 -34
  471. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
  472. package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
  473. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  474. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  475. package/src/nodes/functions/BasicLightingModel.js +2 -1
  476. package/src/nodes/functions/PhysicalLightingModel.js +128 -46
  477. package/src/nodes/functions/VolumetricLightingModel.js +5 -5
  478. package/src/nodes/geometry/RangeNode.js +44 -6
  479. package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
  480. package/src/nodes/gpgpu/BarrierNode.js +9 -0
  481. package/src/nodes/gpgpu/ComputeBuiltinNode.js +4 -4
  482. package/src/nodes/gpgpu/ComputeNode.js +76 -38
  483. package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
  484. package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -4
  485. package/src/nodes/lighting/AnalyticLightNode.js +53 -0
  486. package/src/nodes/lighting/EnvironmentNode.js +34 -9
  487. package/src/nodes/lighting/LightsNode.js +10 -32
  488. package/src/nodes/lighting/PointShadowNode.js +167 -148
  489. package/src/nodes/lighting/ShadowFilterNode.js +55 -65
  490. package/src/nodes/lighting/ShadowNode.js +189 -44
  491. package/src/nodes/math/BitcastNode.js +156 -0
  492. package/src/nodes/math/BitcountNode.js +433 -0
  493. package/src/nodes/math/ConditionalNode.js +25 -8
  494. package/src/nodes/math/MathNode.js +98 -57
  495. package/src/nodes/math/OperatorNode.js +8 -5
  496. package/src/nodes/math/PackFloatNode.js +98 -0
  497. package/src/nodes/math/UnpackFloatNode.js +96 -0
  498. package/src/nodes/pmrem/PMREMNode.js +1 -1
  499. package/src/nodes/pmrem/PMREMUtils.js +111 -2
  500. package/src/nodes/shapes/Shapes.js +1 -1
  501. package/src/nodes/tsl/TSLBase.js +6 -3
  502. package/src/nodes/tsl/TSLCore.js +488 -166
  503. package/src/nodes/utils/ArrayElementNode.js +14 -1
  504. package/src/nodes/utils/ConvertNode.js +1 -1
  505. package/src/nodes/utils/DebugNode.js +14 -13
  506. package/src/nodes/utils/EventNode.js +67 -2
  507. package/src/nodes/utils/FlipNode.js +1 -1
  508. package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
  509. package/src/nodes/utils/JoinNode.js +7 -4
  510. package/src/nodes/utils/LoopNode.js +20 -24
  511. package/src/nodes/utils/MemberNode.js +60 -8
  512. package/src/nodes/utils/Packing.js +13 -1
  513. package/src/nodes/utils/PostProcessingUtils.js +60 -1
  514. package/src/nodes/utils/RTTNode.js +14 -4
  515. package/src/nodes/utils/ReflectorNode.js +61 -11
  516. package/src/nodes/utils/Remap.js +48 -0
  517. package/src/nodes/utils/RotateNode.js +1 -1
  518. package/src/nodes/utils/SampleNode.js +12 -2
  519. package/src/nodes/utils/SetNode.js +1 -1
  520. package/src/nodes/utils/SplitNode.js +12 -1
  521. package/src/nodes/utils/SpriteSheetUV.js +35 -0
  522. package/src/nodes/utils/Timer.js +0 -47
  523. package/src/nodes/utils/UVUtils.js +28 -0
  524. package/src/objects/BatchedMesh.js +46 -18
  525. package/src/objects/InstancedMesh.js +30 -3
  526. package/src/objects/LOD.js +1 -1
  527. package/src/objects/Line.js +3 -2
  528. package/src/objects/LineSegments.js +2 -1
  529. package/src/objects/Mesh.js +1 -1
  530. package/src/objects/Points.js +1 -1
  531. package/src/objects/Skeleton.js +12 -2
  532. package/src/objects/SkinnedMesh.js +29 -10
  533. package/src/objects/Sprite.js +4 -3
  534. package/src/renderers/WebGLRenderer.js +372 -179
  535. package/src/renderers/common/Animation.js +16 -4
  536. package/src/renderers/common/Attributes.js +16 -2
  537. package/src/renderers/common/Backend.js +137 -35
  538. package/src/renderers/common/Background.js +28 -14
  539. package/src/renderers/common/BindGroup.js +1 -16
  540. package/src/renderers/common/Binding.js +11 -0
  541. package/src/renderers/common/Bindings.js +83 -12
  542. package/src/renderers/common/BlendMode.js +143 -0
  543. package/src/renderers/common/Buffer.js +40 -0
  544. package/src/renderers/common/BundleGroup.js +1 -1
  545. package/src/renderers/common/CanvasTarget.js +341 -0
  546. package/src/renderers/common/ChainMap.js +30 -6
  547. package/src/renderers/common/ComputePipeline.js +1 -1
  548. package/src/renderers/common/CubeRenderTarget.js +51 -7
  549. package/src/renderers/common/DataMap.js +1 -1
  550. package/src/renderers/common/Geometries.js +55 -3
  551. package/src/renderers/common/Info.js +337 -6
  552. package/src/renderers/common/InspectorBase.js +151 -0
  553. package/src/renderers/common/Lighting.js +5 -21
  554. package/src/renderers/common/Pipelines.js +41 -8
  555. package/src/renderers/common/PostProcessing.js +9 -226
  556. package/src/renderers/common/QuadMesh.js +7 -1
  557. package/src/renderers/common/ReadbackBuffer.js +78 -0
  558. package/src/renderers/common/RenderBundle.js +3 -1
  559. package/src/renderers/common/RenderBundles.js +7 -3
  560. package/src/renderers/common/RenderContext.js +18 -2
  561. package/src/renderers/common/RenderContexts.js +33 -49
  562. package/src/renderers/common/RenderList.js +7 -3
  563. package/src/renderers/common/RenderLists.js +2 -1
  564. package/src/renderers/common/RenderObject.js +32 -6
  565. package/src/renderers/common/RenderObjectPipeline.js +40 -0
  566. package/src/renderers/common/RenderObjects.js +22 -6
  567. package/src/renderers/common/RenderPipeline.js +232 -17
  568. package/src/renderers/common/Renderer.js +927 -335
  569. package/src/renderers/common/RendererUtils.js +9 -0
  570. package/src/renderers/common/SampledTexture.js +9 -1
  571. package/src/renderers/common/Sampler.js +52 -14
  572. package/src/renderers/common/StorageBuffer.js +13 -1
  573. package/src/renderers/common/StorageTexture.js +9 -1
  574. package/src/renderers/common/Textures.js +208 -47
  575. package/src/renderers/common/TimestampQueryPool.js +70 -6
  576. package/src/renderers/common/Uniform.js +8 -0
  577. package/src/renderers/common/UniformsGroup.js +64 -2
  578. package/src/renderers/common/XRManager.js +79 -51
  579. package/src/renderers/common/extras/PMREMGenerator.js +176 -79
  580. package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
  581. package/src/renderers/common/nodes/NodeLibrary.js +9 -7
  582. package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +260 -95
  583. package/src/renderers/common/nodes/NodeSampler.js +13 -1
  584. package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
  585. package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
  586. package/src/renderers/shaders/DFGLUTData.js +49 -0
  587. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
  588. package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
  589. package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
  590. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
  591. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
  592. package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
  593. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -2
  594. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +8 -12
  595. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
  596. package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
  597. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
  598. package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
  599. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
  600. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +2 -0
  601. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
  602. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +152 -59
  603. package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
  604. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
  605. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
  606. package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
  607. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
  608. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
  609. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
  610. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +221 -190
  611. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
  612. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  613. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  614. package/src/renderers/shaders/ShaderChunk.js +5 -3
  615. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
  616. package/src/renderers/shaders/ShaderLib/depth.glsl.js +4 -1
  617. package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
  618. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
  619. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
  620. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
  621. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
  622. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
  623. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
  624. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
  625. package/src/renderers/shaders/ShaderLib.js +7 -6
  626. package/src/renderers/shaders/UniformsLib.js +8 -5
  627. package/src/renderers/shaders/UniformsUtils.js +52 -9
  628. package/src/renderers/webgl/WebGLAnimation.js +2 -1
  629. package/src/renderers/webgl/WebGLBackground.js +15 -15
  630. package/src/renderers/webgl/WebGLBindingStates.js +99 -27
  631. package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
  632. package/src/renderers/webgl/WebGLCapabilities.js +11 -5
  633. package/src/renderers/webgl/WebGLEnvironments.js +228 -0
  634. package/src/renderers/webgl/WebGLExtensions.js +2 -25
  635. package/src/renderers/webgl/WebGLGeometries.js +10 -7
  636. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
  637. package/src/renderers/webgl/WebGLInfo.js +3 -1
  638. package/src/renderers/webgl/WebGLLights.js +18 -1
  639. package/src/renderers/webgl/WebGLMaterials.js +24 -13
  640. package/src/renderers/webgl/WebGLObjects.js +3 -1
  641. package/src/renderers/webgl/WebGLOutput.js +270 -0
  642. package/src/renderers/webgl/WebGLProgram.js +63 -122
  643. package/src/renderers/webgl/WebGLPrograms.js +65 -52
  644. package/src/renderers/webgl/WebGLRenderLists.js +15 -0
  645. package/src/renderers/webgl/WebGLRenderStates.js +13 -2
  646. package/src/renderers/webgl/WebGLShadowMap.js +191 -26
  647. package/src/renderers/webgl/WebGLState.js +79 -40
  648. package/src/renderers/webgl/WebGLTextures.js +234 -68
  649. package/src/renderers/webgl/WebGLUniforms.js +40 -3
  650. package/src/renderers/webgl/WebGLUniformsGroups.js +24 -3
  651. package/src/renderers/webgl/WebGLUtils.js +8 -3
  652. package/src/renderers/webgl-fallback/WebGLBackend.js +438 -235
  653. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
  654. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +339 -84
  655. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
  656. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
  657. package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
  658. package/src/renderers/webgl-fallback/utils/WebGLState.js +229 -11
  659. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +237 -72
  660. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +56 -27
  661. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +8 -3
  662. package/src/renderers/webgpu/WebGPUBackend.js +403 -253
  663. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
  664. package/src/renderers/webgpu/WebGPURenderer.js +5 -3
  665. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +491 -123
  666. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +108 -34
  667. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +360 -201
  668. package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
  669. package/src/renderers/webgpu/utils/WebGPUConstants.js +17 -2
  670. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +111 -54
  671. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +155 -205
  672. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +407 -149
  673. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +36 -13
  674. package/src/renderers/webgpu/utils/WebGPUUtils.js +55 -13
  675. package/src/renderers/webxr/WebXRController.js +12 -0
  676. package/src/renderers/webxr/WebXRManager.js +45 -29
  677. package/src/textures/CubeDepthTexture.js +76 -0
  678. package/src/textures/ExternalTexture.js +15 -4
  679. package/src/textures/HTMLTexture.js +74 -0
  680. package/src/textures/Source.js +5 -4
  681. package/src/textures/Texture.js +19 -7
  682. package/src/textures/VideoTexture.js +2 -3
  683. package/src/utils.js +344 -3
  684. package/examples/jsm/loaders/RGBMLoader.js +0 -1148
  685. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
  686. package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
  687. package/examples/jsm/shaders/GodRaysShader.js +0 -333
  688. package/src/nodes/accessors/SceneNode.js +0 -144
  689. package/src/nodes/code/ScriptableNode.js +0 -726
  690. package/src/nodes/code/ScriptableValueNode.js +0 -253
  691. package/src/nodes/display/PosterizeNode.js +0 -65
  692. package/src/nodes/functions/BSDF/DFGApprox.js +0 -30
  693. package/src/nodes/utils/RemapNode.js +0 -125
  694. package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
  695. package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
  696. package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
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;
@@ -24,10 +24,11 @@ export const PCFShadowFilter = TSL.PCFShadowFilter;
24
24
  export const PCFSoftShadowFilter = TSL.PCFSoftShadowFilter;
25
25
  export const PI = TSL.PI;
26
26
  export const PI2 = TSL.PI2;
27
+ export const TWO_PI = TSL.TWO_PI;
28
+ export const HALF_PI = TSL.HALF_PI;
27
29
  export const PointShadowFilter = TSL.PointShadowFilter;
28
30
  export const Return = TSL.Return;
29
31
  export const Schlick_to_F0 = TSL.Schlick_to_F0;
30
- export const ScriptableNodeResources = TSL.ScriptableNodeResources;
31
32
  export const ShaderNode = TSL.ShaderNode;
32
33
  export const Stack = TSL.Stack;
33
34
  export const Switch = TSL.Switch;
@@ -39,6 +40,7 @@ export const VarIntent = TSL.VarIntent;
39
40
  export const abs = TSL.abs;
40
41
  export const acesFilmicToneMapping = TSL.acesFilmicToneMapping;
41
42
  export const acos = TSL.acos;
43
+ export const acosh = TSL.acosh;
42
44
  export const add = TSL.add;
43
45
  export const addMethodChaining = TSL.addMethodChaining;
44
46
  export const addNodeElement = TSL.addNodeElement;
@@ -54,9 +56,10 @@ export const append = TSL.append;
54
56
  export const array = TSL.array;
55
57
  export const arrayBuffer = TSL.arrayBuffer;
56
58
  export const asin = TSL.asin;
59
+ export const asinh = TSL.asinh;
57
60
  export const assign = TSL.assign;
58
61
  export const atan = TSL.atan;
59
- export const atan2 = TSL.atan2;
62
+ export const atanh = TSL.atanh;
60
63
  export const atomicAdd = TSL.atomicAdd;
61
64
  export const atomicAnd = TSL.atomicAnd;
62
65
  export const atomicFunc = TSL.atomicFunc;
@@ -96,7 +99,9 @@ export const bool = TSL.bool;
96
99
  export const buffer = TSL.buffer;
97
100
  export const bufferAttribute = TSL.bufferAttribute;
98
101
  export const bumpMap = TSL.bumpMap;
99
- export const burn = TSL.burn;
102
+ export const builtin = TSL.builtin;
103
+ export const builtinAOContext = TSL.builtinAOContext;
104
+ export const builtinShadowContext = TSL.builtinShadowContext;
100
105
  export const bvec2 = TSL.bvec2;
101
106
  export const bvec3 = TSL.bvec3;
102
107
  export const bvec4 = TSL.bvec4;
@@ -111,6 +116,7 @@ export const cameraPosition = TSL.cameraPosition;
111
116
  export const cameraProjectionMatrix = TSL.cameraProjectionMatrix;
112
117
  export const cameraProjectionMatrixInverse = TSL.cameraProjectionMatrixInverse;
113
118
  export const cameraViewMatrix = TSL.cameraViewMatrix;
119
+ export const cameraViewport = TSL.cameraViewport;
114
120
  export const cameraWorldMatrix = TSL.cameraWorldMatrix;
115
121
  export const cbrt = TSL.cbrt;
116
122
  export const cdl = TSL.cdl;
@@ -121,6 +127,7 @@ export const clamp = TSL.clamp;
121
127
  export const clearcoat = TSL.clearcoat;
122
128
  export const clearcoatNormalView = TSL.clearcoatNormalView;
123
129
  export const clearcoatRoughness = TSL.clearcoatRoughness;
130
+ export const clipSpace = TSL.clipSpace;
124
131
  export const code = TSL.code;
125
132
  export const color = TSL.color;
126
133
  export const colorSpaceToWorking = TSL.colorSpaceToWorking;
@@ -132,11 +139,14 @@ export const context = TSL.context;
132
139
  export const convert = TSL.convert;
133
140
  export const convertColorSpace = TSL.convertColorSpace;
134
141
  export const convertToTexture = TSL.convertToTexture;
142
+ export const countLeadingZeros = TSL.countLeadingZeros;
143
+ export const countOneBits = TSL.countOneBits;
144
+ export const countTrailingZeros = TSL.countTrailingZeros;
135
145
  export const cos = TSL.cos;
146
+ export const cosh = TSL.cosh;
136
147
  export const cross = TSL.cross;
137
148
  export const cubeTexture = TSL.cubeTexture;
138
149
  export const cubeTextureBase = TSL.cubeTextureBase;
139
- export const cubeToUV = TSL.cubeToUV;
140
150
  export const dFdx = TSL.dFdx;
141
151
  export const dFdy = TSL.dFdy;
142
152
  export const dashSize = TSL.dashSize;
@@ -161,22 +171,23 @@ export const directionToFaceDirection = TSL.directionToFaceDirection;
161
171
  export const dispersion = TSL.dispersion;
162
172
  export const distance = TSL.distance;
163
173
  export const div = TSL.div;
164
- export const dodge = TSL.dodge;
165
174
  export const dot = TSL.dot;
166
175
  export const drawIndex = TSL.drawIndex;
167
176
  export const dynamicBufferAttribute = TSL.dynamicBufferAttribute;
168
177
  export const element = TSL.element;
169
178
  export const emissive = TSL.emissive;
170
179
  export const equal = TSL.equal;
171
- export const equals = TSL.equals;
172
180
  export const equirectUV = TSL.equirectUV;
173
181
  export const exp = TSL.exp;
174
182
  export const exp2 = TSL.exp2;
183
+ export const exponentialHeightFogFactor = TSL.exponentialHeightFogFactor;
175
184
  export const expression = TSL.expression;
176
185
  export const faceDirection = TSL.faceDirection;
177
186
  export const faceForward = TSL.faceForward;
178
187
  export const faceforward = TSL.faceforward;
179
188
  export const float = TSL.float;
189
+ export const floatBitsToInt = TSL.floatBitsToInt;
190
+ export const floatBitsToUint = TSL.floatBitsToUint;
180
191
  export const floor = TSL.floor;
181
192
  export const fog = TSL.fog;
182
193
  export const fract = TSL.fract;
@@ -192,6 +203,8 @@ export const getDirection = TSL.getDirection;
192
203
  export const getDistanceAttenuation = TSL.getDistanceAttenuation;
193
204
  export const getGeometryRoughness = TSL.getGeometryRoughness;
194
205
  export const getNormalFromDepth = TSL.getNormalFromDepth;
206
+ export const interleavedGradientNoise = TSL.interleavedGradientNoise;
207
+ export const vogelDiskSample = TSL.vogelDiskSample;
195
208
  export const getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;
196
209
  export const getRoughness = TSL.getRoughness;
197
210
  export const getScreenPosition = TSL.getScreenPosition;
@@ -219,6 +232,7 @@ export const instancedBufferAttribute = TSL.instancedBufferAttribute;
219
232
  export const instancedDynamicBufferAttribute = TSL.instancedDynamicBufferAttribute;
220
233
  export const instancedMesh = TSL.instancedMesh;
221
234
  export const int = TSL.int;
235
+ export const intBitsToFloat = TSL.intBitsToFloat;
222
236
  export const inverse = TSL.inverse;
223
237
  export const inverseSqrt = TSL.inverseSqrt;
224
238
  export const inversesqrt = TSL.inversesqrt;
@@ -391,6 +405,8 @@ export const objectRadius = TSL.objectRadius;
391
405
  export const objectScale = TSL.objectScale;
392
406
  export const objectViewPosition = TSL.objectViewPosition;
393
407
  export const objectWorldMatrix = TSL.objectWorldMatrix;
408
+ export const OnBeforeObjectUpdate = TSL.OnBeforeObjectUpdate;
409
+ export const OnBeforeMaterialUpdate = TSL.OnBeforeMaterialUpdate;
394
410
  export const OnObjectUpdate = TSL.OnObjectUpdate;
395
411
  export const OnMaterialUpdate = TSL.OnMaterialUpdate;
396
412
  export const oneMinus = TSL.oneMinus;
@@ -402,8 +418,10 @@ export const oscSquare = TSL.oscSquare;
402
418
  export const oscTriangle = TSL.oscTriangle;
403
419
  export const output = TSL.output;
404
420
  export const outputStruct = TSL.outputStruct;
405
- export const overlay = TSL.overlay;
406
421
  export const overloadingFn = TSL.overloadingFn;
422
+ export const packHalf2x16 = TSL.packHalf2x16;
423
+ export const packSnorm2x16 = TSL.packSnorm2x16;
424
+ export const packUnorm2x16 = TSL.packUnorm2x16;
407
425
  export const parabola = TSL.parabola;
408
426
  export const parallaxDirection = TSL.parallaxDirection;
409
427
  export const parallaxUV = TSL.parallaxUV;
@@ -451,6 +469,7 @@ export const remapClamp = TSL.remapClamp;
451
469
  export const renderGroup = TSL.renderGroup;
452
470
  export const renderOutput = TSL.renderOutput;
453
471
  export const rendererReference = TSL.rendererReference;
472
+ export const replaceDefaultUV = TSL.replaceDefaultUV;
454
473
  export const rotate = TSL.rotate;
455
474
  export const rotateUV = TSL.rotateUV;
456
475
  export const roughness = TSL.roughness;
@@ -465,10 +484,9 @@ export const saturate = TSL.saturate;
465
484
  export const saturation = TSL.saturation;
466
485
  export const screen = TSL.screen;
467
486
  export const screenCoordinate = TSL.screenCoordinate;
487
+ export const screenDPR = TSL.screenDPR;
468
488
  export const screenSize = TSL.screenSize;
469
489
  export const screenUV = TSL.screenUV;
470
- export const scriptable = TSL.scriptable;
471
- export const scriptableValue = TSL.scriptableValue;
472
490
  export const select = TSL.select;
473
491
  export const setCurrentStack = TSL.setCurrentStack;
474
492
  export const setName = TSL.setName;
@@ -484,6 +502,7 @@ export const shiftRight = TSL.shiftRight;
484
502
  export const shininess = TSL.shininess;
485
503
  export const sign = TSL.sign;
486
504
  export const sin = TSL.sin;
505
+ export const sinh = TSL.sinh;
487
506
  export const sinc = TSL.sinc;
488
507
  export const skinning = TSL.skinning;
489
508
  export const smoothstep = TSL.smoothstep;
@@ -499,20 +518,40 @@ export const step = TSL.step;
499
518
  export const stepElement = TSL.stepElement;
500
519
  export const storage = TSL.storage;
501
520
  export const storageBarrier = TSL.storageBarrier;
502
- export const storageObject = TSL.storageObject;
503
521
  export const storageTexture = TSL.storageTexture;
504
522
  export const string = TSL.string;
505
523
  export const struct = TSL.struct;
506
524
  export const sub = TSL.sub;
525
+ export const subgroupAdd = TSL.subgroupAdd;
526
+ export const subgroupAll = TSL.subgroupAll;
527
+ export const subgroupAnd = TSL.subgroupAnd;
528
+ export const subgroupAny = TSL.subgroupAny;
529
+ export const subgroupBallot = TSL.subgroupBallot;
530
+ export const subgroupBroadcast = TSL.subgroupBroadcast;
531
+ export const subgroupBroadcastFirst = TSL.subgroupBroadcastFirst;
507
532
  export const subBuild = TSL.subBuild;
533
+ export const subgroupElect = TSL.subgroupElect;
534
+ export const subgroupExclusiveAdd = TSL.subgroupExclusiveAdd;
535
+ export const subgroupExclusiveMul = TSL.subgroupExclusiveMul;
536
+ export const subgroupInclusiveAdd = TSL.subgroupInclusiveAdd;
537
+ export const subgroupInclusiveMul = TSL.subgroupInclusiveMul;
508
538
  export const subgroupIndex = TSL.subgroupIndex;
539
+ export const subgroupMax = TSL.subgroupMax;
540
+ export const subgroupMin = TSL.subgroupMin;
541
+ export const subgroupMul = TSL.subgroupMul;
542
+ export const subgroupOr = TSL.subgroupOr;
543
+ export const subgroupShuffle = TSL.subgroupShuffle;
544
+ export const subgroupShuffleDown = TSL.subgroupShuffleDown;
545
+ export const subgroupShuffleUp = TSL.subgroupShuffleUp;
546
+ export const subgroupShuffleXor = TSL.subgroupShuffleXor;
509
547
  export const subgroupSize = TSL.subgroupSize;
548
+ export const subgroupXor = TSL.subgroupXor;
510
549
  export const tan = TSL.tan;
550
+ export const tanh = TSL.tanh;
511
551
  export const tangentGeometry = TSL.tangentGeometry;
512
552
  export const tangentLocal = TSL.tangentLocal;
513
553
  export const tangentView = TSL.tangentView;
514
554
  export const tangentWorld = TSL.tangentWorld;
515
- export const temp = TSL.temp;
516
555
  export const texture = TSL.texture;
517
556
  export const texture3D = TSL.texture3D;
518
557
  export const textureBarrier = TSL.textureBarrier;
@@ -521,12 +560,10 @@ export const textureBicubicLevel = TSL.textureBicubicLevel;
521
560
  export const textureCubeUV = TSL.textureCubeUV;
522
561
  export const textureLoad = TSL.textureLoad;
523
562
  export const textureSize = TSL.textureSize;
563
+ export const textureLevel = TSL.textureLevel;
524
564
  export const textureStore = TSL.textureStore;
525
565
  export const thickness = TSL.thickness;
526
566
  export const time = TSL.time;
527
- export const timerDelta = TSL.timerDelta;
528
- export const timerGlobal = TSL.timerGlobal;
529
- export const timerLocal = TSL.timerLocal;
530
567
  export const toneMapping = TSL.toneMapping;
531
568
  export const toneMappingExposure = TSL.toneMappingExposure;
532
569
  export const toonOutlinePass = TSL.toonOutlinePass;
@@ -543,11 +580,16 @@ export const triplanarTexture = TSL.triplanarTexture;
543
580
  export const triplanarTextures = TSL.triplanarTextures;
544
581
  export const trunc = TSL.trunc;
545
582
  export const uint = TSL.uint;
583
+ export const uintBitsToFloat = TSL.uintBitsToFloat;
546
584
  export const uniform = TSL.uniform;
547
585
  export const uniformArray = TSL.uniformArray;
548
586
  export const uniformCubeTexture = TSL.uniformCubeTexture;
549
587
  export const uniformGroup = TSL.uniformGroup;
588
+ export const uniformFlow = TSL.uniformFlow;
550
589
  export const uniformTexture = TSL.uniformTexture;
590
+ export const unpackHalf2x16 = TSL.unpackHalf2x16;
591
+ export const unpackSnorm2x16 = TSL.unpackSnorm2x16;
592
+ export const unpackUnorm2x16 = TSL.unpackUnorm2x16;
551
593
  export const unpremultiplyAlpha = TSL.unpremultiplyAlpha;
552
594
  export const userData = TSL.userData;
553
595
  export const uv = TSL.uv;
@@ -568,11 +610,14 @@ export const vibrance = TSL.vibrance;
568
610
  export const viewZToLogarithmicDepth = TSL.viewZToLogarithmicDepth;
569
611
  export const viewZToOrthographicDepth = TSL.viewZToOrthographicDepth;
570
612
  export const viewZToPerspectiveDepth = TSL.viewZToPerspectiveDepth;
613
+ export const viewZToReversedOrthographicDepth = TSL.viewZToReversedOrthographicDepth;
614
+ export const viewZToReversedPerspectiveDepth = TSL.viewZToReversedPerspectiveDepth;
571
615
  export const viewport = TSL.viewport;
572
616
  export const viewportCoordinate = TSL.viewportCoordinate;
573
617
  export const viewportDepthTexture = TSL.viewportDepthTexture;
574
618
  export const viewportLinearDepth = TSL.viewportLinearDepth;
575
619
  export const viewportMipTexture = TSL.viewportMipTexture;
620
+ export const viewportOpaqueMipTexture = TSL.viewportOpaqueMipTexture;
576
621
  export const viewportResolution = TSL.viewportResolution;
577
622
  export const viewportSafeUV = TSL.viewportSafeUV;
578
623
  export const viewportSharedTexture = TSL.viewportSharedTexture;
@@ -598,5 +643,5 @@ for ( const key of Object.keys( THREE.TSL ) ) {
598
643
 
599
644
  }
600
645
 
601
- console.log( code );
646
+ log( code );
602
647
  //*/
@@ -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';
@@ -18,6 +22,9 @@ export { default as ProjectorLight } from './lights/webgpu/ProjectorLight.js';
18
22
  export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
19
23
  export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
20
24
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
25
+ export { default as InspectorBase } from './renderers/common/InspectorBase.js';
26
+ export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
27
+ export { default as BlendMode } from './renderers/common/BlendMode.js';
21
28
  export { ClippingGroup } from './objects/ClippingGroup.js';
22
29
  export * from './nodes/Nodes.js';
23
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';
@@ -20,6 +26,11 @@ export { default as ProjectorLight } from './lights/webgpu/ProjectorLight.js';
20
26
  export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
21
27
  export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
22
28
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
29
+ export { default as InspectorBase } from './renderers/common/InspectorBase.js';
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';
23
34
  export { ClippingGroup } from './objects/ClippingGroup.js';
24
35
  export * from './nodes/Nodes.js';
25
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
 
@@ -8,6 +8,7 @@ import { StringKeyframeTrack } from './tracks/StringKeyframeTrack.js';
8
8
  import { VectorKeyframeTrack } from './tracks/VectorKeyframeTrack.js';
9
9
  import { generateUUID } from '../math/MathUtils.js';
10
10
  import { NormalAnimationBlendMode } from '../constants.js';
11
+ import { warn, error } from '../utils.js';
11
12
 
12
13
  /**
13
14
  * A reusable set of keyframe tracks which represent an animation.
@@ -67,6 +68,14 @@ class AnimationClip {
67
68
  */
68
69
  this.uuid = generateUUID();
69
70
 
71
+ /**
72
+ * An object that can be used to store custom data about the animation clip.
73
+ * It should not hold references to functions as these will not be cloned.
74
+ *
75
+ * @type {Object}
76
+ */
77
+ this.userData = {};
78
+
70
79
  // this means it should figure out its duration by scanning the tracks
71
80
  if ( this.duration < 0 ) {
72
81
 
@@ -98,6 +107,8 @@ class AnimationClip {
98
107
  const clip = new this( json.name, json.duration, tracks, json.blendMode );
99
108
  clip.uuid = json.uuid;
100
109
 
110
+ clip.userData = JSON.parse( json.userData || '{}' );
111
+
101
112
  return clip;
102
113
 
103
114
  }
@@ -120,7 +131,8 @@ class AnimationClip {
120
131
  'duration': clip.duration,
121
132
  'tracks': tracks,
122
133
  'uuid': clip.uuid,
123
- 'blendMode': clip.blendMode
134
+ 'blendMode': clip.blendMode,
135
+ 'userData': JSON.stringify( clip.userData ),
124
136
 
125
137
  };
126
138
 
@@ -289,16 +301,16 @@ class AnimationClip {
289
301
  * @static
290
302
  * @deprecated since r175.
291
303
  * @param {Object} animation - A serialized animation clip as JSON.
292
- * @param {Array<Bones>} bones - An array of bones.
304
+ * @param {Array<Bone>} bones - An array of bones.
293
305
  * @return {?AnimationClip} The new animation clip.
294
306
  */
295
307
  static parseAnimation( animation, bones ) {
296
308
 
297
- console.warn( 'THREE.AnimationClip: parseAnimation() is deprecated and will be removed with r185' );
309
+ warn( 'AnimationClip: parseAnimation() is deprecated and will be removed with r185' );
298
310
 
299
311
  if ( ! animation ) {
300
312
 
301
- console.error( 'THREE.AnimationClip: No animation in JSONLoader data.' );
313
+ error( 'AnimationClip: No animation in JSONLoader data.' );
302
314
  return null;
303
315
 
304
316
  }
@@ -515,7 +527,11 @@ class AnimationClip {
515
527
 
516
528
  }
517
529
 
518
- return new this.constructor( this.name, this.duration, tracks, this.blendMode );
530
+ const clip = new this.constructor( this.name, this.duration, tracks, this.blendMode );
531
+
532
+ clip.userData = JSON.parse( JSON.stringify( this.userData ) );
533
+
534
+ return clip;
519
535
 
520
536
  }
521
537
 
@@ -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 ) {
@@ -641,7 +647,7 @@ class AnimationMixer extends EventDispatcher {
641
647
  /**
642
648
  * Deactivates all previously scheduled actions on this mixer.
643
649
  *
644
- * @return {AnimationMixer} A reference to thi animation mixer.
650
+ * @return {AnimationMixer} A reference to this animation mixer.
645
651
  */
646
652
  stopAllAction() {
647
653
 
@@ -665,7 +671,7 @@ class AnimationMixer extends EventDispatcher {
665
671
  * time from {@link Clock} or {@link Timer}.
666
672
  *
667
673
  * @param {number} deltaTime - The delta time in seconds.
668
- * @return {AnimationMixer} A reference to thi animation mixer.
674
+ * @return {AnimationMixer} A reference to this animation mixer.
669
675
  */
670
676
  update( deltaTime ) {
671
677
 
@@ -711,7 +717,7 @@ class AnimationMixer extends EventDispatcher {
711
717
  * input parameter will be scaled by {@link AnimationMixer#timeScale}
712
718
  *
713
719
  * @param {number} time - The time to set in seconds.
714
- * @return {AnimationMixer} A reference to thi animation mixer.
720
+ * @return {AnimationMixer} A reference to this animation mixer.
715
721
  */
716
722
  setTime( time ) {
717
723
 
@@ -1,5 +1,6 @@
1
1
  import { PropertyBinding } from './PropertyBinding.js';
2
2
  import { generateUUID } from '../math/MathUtils.js';
3
+ import { error } from '../utils.js';
3
4
 
4
5
  /**
5
6
  * A group of objects that receives a shared animation state.
@@ -175,7 +176,7 @@ class AnimationObjectGroup {
175
176
 
176
177
  } else if ( objects[ index ] !== knownObject ) {
177
178
 
178
- console.error( 'THREE.AnimationObjectGroup: Different objects with the same UUID ' +
179
+ error( 'AnimationObjectGroup: Different objects with the same UUID ' +
179
180
  'detected. Clean the caches or recreate your infrastructure when reloading scenes.' );
180
181
 
181
182
  } // else the object is already where we want it to be
@@ -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
  *