super-three 0.181.0 → 0.185.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 (693) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -4
  3. package/build/three.cjs +21332 -19201
  4. package/build/three.core.js +20908 -19853
  5. package/build/three.core.min.js +2 -2
  6. package/build/three.module.js +1947 -862
  7. package/build/three.module.min.js +2 -2
  8. package/build/three.tsl.js +37 -16
  9. package/build/three.tsl.min.js +2 -2
  10. package/build/three.webgpu.js +33628 -25197
  11. package/build/three.webgpu.min.js +2 -2
  12. package/build/three.webgpu.nodes.js +33394 -25000
  13. package/build/three.webgpu.nodes.min.js +2 -2
  14. package/examples/jsm/Addons.js +14 -3
  15. package/examples/jsm/animation/CCDIKSolver.js +7 -3
  16. package/examples/jsm/controls/ArcballControls.js +13 -6
  17. package/examples/jsm/controls/DragControls.js +2 -2
  18. package/examples/jsm/controls/FirstPersonControls.js +127 -86
  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 +102 -17
  24. package/examples/jsm/csm/CSM.js +2 -1
  25. package/examples/jsm/csm/CSMFrustum.js +31 -6
  26. package/examples/jsm/csm/CSMShadowNode.js +10 -3
  27. package/examples/jsm/effects/AnaglyphEffect.js +102 -7
  28. package/examples/jsm/effects/AsciiEffect.js +14 -1
  29. package/examples/jsm/environments/ColorEnvironment.js +59 -0
  30. package/examples/jsm/environments/RoomEnvironment.js +3 -0
  31. package/examples/jsm/exporters/DRACOExporter.js +27 -6
  32. package/examples/jsm/exporters/EXRExporter.js +1 -1
  33. package/examples/jsm/exporters/GLTFExporter.js +266 -21
  34. package/examples/jsm/exporters/PLYExporter.js +286 -73
  35. package/examples/jsm/exporters/USDZExporter.js +353 -99
  36. package/examples/jsm/generators/CityGenerator.js +346 -0
  37. package/examples/jsm/generators/ForestGenerator.js +347 -0
  38. package/examples/jsm/generators/TerrainGenerator.js +504 -0
  39. package/examples/jsm/generators/TreeGenerator.js +377 -0
  40. package/examples/jsm/generators/city/SidewalkGenerator.js +253 -0
  41. package/examples/jsm/generators/city/SkyscraperGenerator.js +1357 -0
  42. package/examples/jsm/geometries/DecalGeometry.js +1 -1
  43. package/examples/jsm/geometries/LoftGeometry.js +355 -0
  44. package/examples/jsm/geometries/TextGeometry.js +18 -0
  45. package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
  46. package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
  47. package/examples/jsm/helpers/LightProbeHelper.js +5 -4
  48. package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
  49. package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
  50. package/examples/jsm/helpers/ViewHelper.js +83 -14
  51. package/examples/jsm/inspector/Extension.js +13 -0
  52. package/examples/jsm/inspector/Inspector.js +244 -91
  53. package/examples/jsm/inspector/RendererInspector.js +165 -39
  54. package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
  55. package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
  56. package/examples/jsm/inspector/tabs/Console.js +241 -25
  57. package/examples/jsm/inspector/tabs/Memory.js +136 -0
  58. package/examples/jsm/inspector/tabs/Parameters.js +115 -7
  59. package/examples/jsm/inspector/tabs/Performance.js +24 -9
  60. package/examples/jsm/inspector/tabs/Settings.js +306 -0
  61. package/examples/jsm/inspector/tabs/Timeline.js +1696 -0
  62. package/examples/jsm/inspector/tabs/Viewer.js +723 -9
  63. package/examples/jsm/inspector/ui/Graph.js +162 -25
  64. package/examples/jsm/inspector/ui/Item.js +92 -13
  65. package/examples/jsm/inspector/ui/List.js +2 -2
  66. package/examples/jsm/inspector/ui/Profiler.js +1991 -44
  67. package/examples/jsm/inspector/ui/Style.js +1943 -543
  68. package/examples/jsm/inspector/ui/Tab.js +226 -5
  69. package/examples/jsm/inspector/ui/Values.js +126 -8
  70. package/examples/jsm/inspector/ui/utils.js +143 -10
  71. package/examples/jsm/interaction/InteractionManager.js +226 -0
  72. package/examples/jsm/libs/basis/README.md +0 -1
  73. package/examples/jsm/libs/demuxer_mp4.js +3 -3
  74. package/examples/jsm/libs/draco/README.md +0 -1
  75. package/examples/jsm/libs/meshopt_clusterizer.module.js +421 -0
  76. package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
  77. package/examples/jsm/libs/meshopt_simplifier.module.js +627 -0
  78. package/examples/jsm/libs/mikktspace.module.js +34 -9
  79. package/examples/jsm/lighting/ClusteredLighting.js +55 -0
  80. package/examples/jsm/lighting/DynamicLighting.js +82 -0
  81. package/examples/jsm/lighting/LightProbeGrid.js +681 -0
  82. package/examples/jsm/lines/LineMaterial.js +45 -16
  83. package/examples/jsm/lines/LineSegments2.js +8 -0
  84. package/examples/jsm/lines/webgpu/LineSegments2.js +8 -0
  85. package/examples/jsm/loaders/3DMLoader.js +6 -5
  86. package/examples/jsm/loaders/3MFLoader.js +2 -2
  87. package/examples/jsm/loaders/AMFLoader.js +2 -2
  88. package/examples/jsm/loaders/ColladaLoader.js +24 -4026
  89. package/examples/jsm/loaders/DRACOLoader.js +51 -18
  90. package/examples/jsm/loaders/EXRLoader.js +701 -90
  91. package/examples/jsm/loaders/FBXLoader.js +235 -37
  92. package/examples/jsm/loaders/GCodeLoader.js +34 -8
  93. package/examples/jsm/loaders/GLTFLoader.js +146 -178
  94. package/examples/jsm/loaders/HDRLoader.js +7 -30
  95. package/examples/jsm/loaders/KMZLoader.js +5 -5
  96. package/examples/jsm/loaders/KTX2Loader.js +58 -17
  97. package/examples/jsm/loaders/LDrawLoader.js +49 -58
  98. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  99. package/examples/jsm/loaders/LUTCubeLoader.js +2 -2
  100. package/examples/jsm/loaders/LWOLoader.js +11 -39
  101. package/examples/jsm/loaders/LottieLoader.js +1 -1
  102. package/examples/jsm/loaders/MaterialXLoader.js +31 -9
  103. package/examples/jsm/loaders/NRRDLoader.js +5 -5
  104. package/examples/jsm/loaders/PCDLoader.js +11 -9
  105. package/examples/jsm/loaders/PLYLoader.js +218 -55
  106. package/examples/jsm/loaders/SVGLoader.js +549 -497
  107. package/examples/jsm/loaders/TDSLoader.js +0 -2
  108. package/examples/jsm/loaders/TGALoader.js +0 -2
  109. package/examples/jsm/loaders/TTFLoader.js +1 -1
  110. package/examples/jsm/loaders/USDLoader.js +127 -43
  111. package/examples/jsm/loaders/UltraHDRLoader.js +285 -160
  112. package/examples/jsm/loaders/VOXLoader.js +660 -117
  113. package/examples/jsm/loaders/VRMLLoader.js +80 -3
  114. package/examples/jsm/loaders/VTKLoader.js +42 -25
  115. package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
  116. package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
  117. package/examples/jsm/loaders/usd/USDAParser.js +504 -344
  118. package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
  119. package/examples/jsm/loaders/usd/USDComposer.js +4627 -0
  120. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
  121. package/examples/jsm/materials/WoodNodeMaterial.js +11 -11
  122. package/examples/jsm/math/Octree.js +131 -1
  123. package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
  124. package/examples/jsm/misc/RollerCoaster.js +42 -4
  125. package/examples/jsm/misc/TileCreasedNormalsPlugin.js +270 -0
  126. package/examples/jsm/misc/Volume.js +2 -3
  127. package/examples/jsm/misc/VolumeSlice.js +0 -1
  128. package/examples/jsm/modifiers/TessellateModifier.js +1 -1
  129. package/examples/jsm/objects/GroundedSkybox.js +1 -1
  130. package/examples/jsm/objects/LensflareMesh.js +1 -1
  131. package/examples/jsm/objects/Reflector.js +72 -25
  132. package/examples/jsm/objects/Sky.js +90 -6
  133. package/examples/jsm/objects/SkyMesh.js +150 -16
  134. package/examples/jsm/objects/Water.js +4 -3
  135. package/examples/jsm/objects/Water2.js +5 -3
  136. package/examples/jsm/objects/Water2Mesh.js +1 -1
  137. package/examples/jsm/objects/WaterMesh.js +5 -7
  138. package/examples/jsm/physics/AmmoPhysics.js +27 -15
  139. package/examples/jsm/physics/JoltPhysics.js +10 -6
  140. package/examples/jsm/physics/RapierPhysics.js +36 -7
  141. package/examples/jsm/postprocessing/EffectComposer.js +7 -5
  142. package/examples/jsm/postprocessing/OutputPass.js +9 -0
  143. package/examples/jsm/postprocessing/RenderPass.js +10 -0
  144. package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
  145. package/examples/jsm/postprocessing/UnrealBloomPass.js +48 -18
  146. package/examples/jsm/renderers/CSS3DRenderer.js +1 -1
  147. package/examples/jsm/renderers/Projector.js +246 -28
  148. package/examples/jsm/renderers/SVGRenderer.js +174 -60
  149. package/examples/jsm/shaders/GTAOShader.js +19 -6
  150. package/examples/jsm/shaders/HalftoneShader.js +12 -1
  151. package/examples/jsm/shaders/PoissonDenoiseShader.js +6 -2
  152. package/examples/jsm/shaders/SAOShader.js +17 -4
  153. package/examples/jsm/shaders/SSAOShader.js +11 -1
  154. package/examples/jsm/shaders/SSRShader.js +6 -5
  155. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -4
  156. package/examples/jsm/shaders/VignetteShader.js +1 -1
  157. package/examples/jsm/shaders/VolumeShader.js +31 -44
  158. package/examples/jsm/transpiler/AST.js +44 -0
  159. package/examples/jsm/transpiler/GLSLDecoder.js +65 -8
  160. package/examples/jsm/transpiler/Linker.js +1 -1
  161. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
  162. package/examples/jsm/transpiler/TSLEncoder.js +46 -3
  163. package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
  164. package/examples/jsm/transpiler/WGSLEncoder.js +27 -0
  165. package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
  166. package/examples/jsm/tsl/display/AfterImageNode.js +11 -1
  167. package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
  168. package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
  169. package/examples/jsm/tsl/display/BloomNode.js +75 -25
  170. package/examples/jsm/tsl/display/CRT.js +150 -0
  171. package/examples/jsm/tsl/display/ChromaticAberrationNode.js +3 -36
  172. package/examples/jsm/tsl/display/DenoiseNode.js +1 -1
  173. package/examples/jsm/tsl/display/DepthOfFieldNode.js +3 -3
  174. package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
  175. package/examples/jsm/tsl/display/FSR1Node.js +477 -0
  176. package/examples/jsm/tsl/display/FXAANode.js +13 -14
  177. package/examples/jsm/tsl/display/GTAONode.js +40 -17
  178. package/examples/jsm/tsl/display/GaussianBlurNode.js +21 -2
  179. package/examples/jsm/tsl/display/GodraysNode.js +615 -0
  180. package/examples/jsm/tsl/display/ImportanceSampledEnvironment.js +560 -0
  181. package/examples/jsm/tsl/display/LensflareNode.js +1 -1
  182. package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
  183. package/examples/jsm/tsl/display/OutlineNode.js +69 -19
  184. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
  185. package/examples/jsm/tsl/display/PixelationPassNode.js +9 -8
  186. package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
  187. package/examples/jsm/tsl/display/RecurrentDenoiseNode.js +912 -0
  188. package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
  189. package/examples/jsm/tsl/display/SMAANode.js +2 -2
  190. package/examples/jsm/tsl/display/SSAAPassNode.js +15 -27
  191. package/examples/jsm/tsl/display/SSGINode.js +96 -62
  192. package/examples/jsm/tsl/display/SSRNode.js +831 -134
  193. package/examples/jsm/tsl/display/SSSNode.js +8 -6
  194. package/examples/jsm/tsl/display/Shape.js +29 -0
  195. package/examples/jsm/tsl/display/SharpenNode.js +283 -0
  196. package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
  197. package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
  198. package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
  199. package/examples/jsm/tsl/display/TAAUNode.js +835 -0
  200. package/examples/jsm/tsl/display/TRAANode.js +315 -126
  201. package/examples/jsm/tsl/display/TemporalReprojectNode.js +1023 -0
  202. package/examples/jsm/tsl/display/TransitionNode.js +1 -1
  203. package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
  204. package/examples/jsm/tsl/display/radialBlur.js +68 -0
  205. package/examples/jsm/tsl/lighting/ClusteredLightsNode.js +622 -0
  206. package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
  207. package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
  208. package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
  209. package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
  210. package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
  211. package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
  212. package/examples/jsm/tsl/math/Bayer.js +53 -3
  213. package/examples/jsm/tsl/math/curlNoise.js +107 -0
  214. package/examples/jsm/tsl/shadows/TileShadowNode.js +1 -1
  215. package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +3 -3
  216. package/examples/jsm/tsl/utils/GroundedSkybox.js +62 -0
  217. package/examples/jsm/tsl/utils/RNoise.js +51 -0
  218. package/examples/jsm/tsl/utils/SpecularHelpers.js +325 -0
  219. package/examples/jsm/utils/BufferGeometryUtils.js +128 -62
  220. package/examples/jsm/utils/ColorUtils.js +76 -0
  221. package/examples/jsm/utils/GeometryCompressionUtils.js +1 -1
  222. package/examples/jsm/utils/LDrawUtils.js +1 -1
  223. package/examples/jsm/utils/SceneOptimizer.js +1 -1
  224. package/examples/jsm/utils/ShadowMapViewer.js +24 -10
  225. package/examples/jsm/utils/ShadowMapViewerGPU.js +1 -1
  226. package/examples/jsm/utils/SkeletonUtils.js +14 -8
  227. package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
  228. package/examples/jsm/webxr/ARButton.js +1 -1
  229. package/examples/jsm/webxr/WebGLXRFallback.js +89 -0
  230. package/examples/jsm/webxr/XRControllerModelFactory.js +2 -2
  231. package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
  232. package/examples/jsm/webxr/XRHandModelFactory.js +2 -1
  233. package/package.json +28 -34
  234. package/src/Three.Core.js +3 -1
  235. package/src/Three.TSL.js +35 -14
  236. package/src/Three.WebGPU.Nodes.js +5 -0
  237. package/src/Three.WebGPU.js +13 -0
  238. package/src/Three.js +1 -0
  239. package/src/animation/AnimationAction.js +18 -4
  240. package/src/animation/AnimationClip.js +0 -139
  241. package/src/animation/AnimationMixer.js +6 -0
  242. package/src/animation/AnimationUtils.js +1 -12
  243. package/src/animation/KeyframeTrack.js +47 -8
  244. package/src/animation/PropertyBinding.js +2 -2
  245. package/src/animation/PropertyMixer.js +4 -4
  246. package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
  247. package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
  248. package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
  249. package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
  250. package/src/animation/tracks/StringKeyframeTrack.js +1 -1
  251. package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
  252. package/src/audio/Audio.js +1 -1
  253. package/src/audio/AudioContext.js +2 -2
  254. package/src/audio/AudioListener.js +5 -3
  255. package/src/cameras/Camera.js +34 -4
  256. package/src/cameras/CubeCamera.js +20 -0
  257. package/src/cameras/StereoCamera.js +5 -2
  258. package/src/constants.js +90 -5
  259. package/src/core/BufferAttribute.js +13 -1
  260. package/src/core/BufferGeometry.js +43 -9
  261. package/src/core/Clock.js +7 -0
  262. package/src/core/Object3D.js +69 -11
  263. package/src/core/Raycaster.js +3 -3
  264. package/src/core/RenderTarget.js +19 -6
  265. package/src/extras/PMREMGenerator.js +13 -22
  266. package/src/extras/TextureUtils.js +6 -2
  267. package/src/extras/core/ShapePath.js +149 -160
  268. package/src/extras/curves/CatmullRomCurve3.js +3 -2
  269. package/src/geometries/ExtrudeGeometry.js +2 -2
  270. package/src/geometries/PolyhedronGeometry.js +1 -1
  271. package/src/geometries/SphereGeometry.js +8 -3
  272. package/src/geometries/TorusGeometry.js +8 -3
  273. package/src/helpers/CameraHelper.js +3 -0
  274. package/src/helpers/DirectionalLightHelper.js +6 -1
  275. package/src/helpers/HemisphereLightHelper.js +5 -0
  276. package/src/helpers/PointLightHelper.js +3 -25
  277. package/src/helpers/SpotLightHelper.js +4 -1
  278. package/src/lights/DirectionalLight.js +13 -0
  279. package/src/lights/HemisphereLight.js +10 -0
  280. package/src/lights/Light.js +1 -11
  281. package/src/lights/LightProbe.js +0 -15
  282. package/src/lights/LightShadow.js +15 -6
  283. package/src/lights/PointLight.js +15 -0
  284. package/src/lights/PointLightShadow.js +0 -86
  285. package/src/lights/SpotLight.js +22 -1
  286. package/src/lights/webgpu/IESSpotLight.js +2 -1
  287. package/src/loaders/AudioLoader.js +11 -1
  288. package/src/loaders/Cache.js +28 -0
  289. package/src/loaders/DataTextureLoader.js +75 -42
  290. package/src/loaders/FileLoader.js +2 -3
  291. package/src/loaders/ImageBitmapLoader.js +12 -9
  292. package/src/loaders/Loader.js +6 -0
  293. package/src/loaders/LoadingManager.js +5 -0
  294. package/src/loaders/MaterialLoader.js +37 -266
  295. package/src/loaders/ObjectLoader.js +48 -6
  296. package/src/loaders/nodes/NodeLoader.js +2 -2
  297. package/src/loaders/nodes/NodeObjectLoader.js +18 -0
  298. package/src/materials/LineBasicMaterial.js +4 -0
  299. package/src/materials/Material.js +198 -1
  300. package/src/materials/MeshBasicMaterial.js +24 -0
  301. package/src/materials/MeshDepthMaterial.js +10 -0
  302. package/src/materials/MeshDistanceMaterial.js +10 -0
  303. package/src/materials/MeshLambertMaterial.js +49 -1
  304. package/src/materials/MeshMatcapMaterial.js +25 -1
  305. package/src/materials/MeshNormalMaterial.js +9 -1
  306. package/src/materials/MeshPhongMaterial.js +49 -1
  307. package/src/materials/MeshPhysicalMaterial.js +38 -0
  308. package/src/materials/MeshStandardMaterial.js +42 -1
  309. package/src/materials/MeshToonMaterial.js +35 -2
  310. package/src/materials/PointsMaterial.js +7 -0
  311. package/src/materials/ShaderMaterial.js +106 -1
  312. package/src/materials/SpriteMaterial.js +7 -0
  313. package/src/materials/nodes/Line2NodeMaterial.js +380 -297
  314. package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
  315. package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
  316. package/src/materials/nodes/MeshPhongNodeMaterial.js +0 -9
  317. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +3 -30
  318. package/src/materials/nodes/MeshSSSNodeMaterial.js +0 -13
  319. package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -15
  320. package/src/materials/nodes/NodeMaterial.js +153 -89
  321. package/src/materials/nodes/SpriteNodeMaterial.js +0 -10
  322. package/src/materials/nodes/manager/NodeMaterialObserver.js +234 -100
  323. package/src/math/Box3.js +5 -0
  324. package/src/math/FrustumArray.js +103 -133
  325. package/src/math/Interpolant.js +1 -1
  326. package/src/math/Line3.js +6 -5
  327. package/src/math/MathUtils.js +12 -12
  328. package/src/math/Matrix2.js +13 -9
  329. package/src/math/Matrix3.js +24 -9
  330. package/src/math/Matrix4.js +112 -74
  331. package/src/math/Plane.js +4 -3
  332. package/src/math/Quaternion.js +3 -29
  333. package/src/math/Sphere.js +1 -1
  334. package/src/math/Triangle.js +1 -1
  335. package/src/math/Vector2.js +13 -9
  336. package/src/math/Vector3.js +17 -15
  337. package/src/math/Vector4.js +15 -11
  338. package/src/math/interpolants/BezierInterpolant.js +106 -0
  339. package/src/nodes/Nodes.js +86 -71
  340. package/src/nodes/TSL.js +15 -13
  341. package/src/nodes/accessors/Arrays.js +5 -5
  342. package/src/nodes/accessors/Batch.js +108 -0
  343. package/src/nodes/accessors/Bitangent.js +7 -7
  344. package/src/nodes/accessors/BufferAttributeNode.js +120 -17
  345. package/src/nodes/accessors/BufferNode.js +29 -2
  346. package/src/nodes/accessors/Camera.js +149 -28
  347. package/src/nodes/accessors/ClippingNode.js +5 -5
  348. package/src/nodes/accessors/CubeTextureNode.js +27 -2
  349. package/src/nodes/accessors/Instance.js +264 -0
  350. package/src/nodes/accessors/MaterialNode.js +27 -3
  351. package/src/nodes/accessors/MaterialProperties.js +6 -8
  352. package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
  353. package/src/nodes/accessors/ModelNode.js +1 -1
  354. package/src/nodes/accessors/{MorphNode.js → Morph.js} +99 -112
  355. package/src/nodes/accessors/Normal.js +24 -24
  356. package/src/nodes/accessors/Object3DNode.js +1 -1
  357. package/src/nodes/accessors/Position.js +39 -3
  358. package/src/nodes/accessors/ReferenceBaseNode.js +6 -6
  359. package/src/nodes/accessors/ReferenceNode.js +9 -8
  360. package/src/nodes/accessors/ReflectVector.js +3 -3
  361. package/src/nodes/accessors/RendererReferenceNode.js +1 -2
  362. package/src/nodes/accessors/SceneProperties.js +47 -0
  363. package/src/nodes/accessors/Skinning.js +263 -0
  364. package/src/nodes/accessors/StorageBufferNode.js +16 -27
  365. package/src/nodes/accessors/StorageTexture3DNode.js +100 -0
  366. package/src/nodes/accessors/StorageTextureNode.js +74 -11
  367. package/src/nodes/accessors/Tangent.js +8 -18
  368. package/src/nodes/accessors/Texture3DNode.js +32 -35
  369. package/src/nodes/accessors/TextureNode.js +124 -25
  370. package/src/nodes/accessors/UniformArrayNode.js +6 -4
  371. package/src/nodes/accessors/UserDataNode.js +1 -2
  372. package/src/nodes/accessors/VertexColorNode.js +1 -2
  373. package/src/nodes/code/FunctionCallNode.js +1 -1
  374. package/src/nodes/code/FunctionNode.js +4 -19
  375. package/src/nodes/core/ArrayNode.js +21 -2
  376. package/src/nodes/core/AssignNode.js +3 -3
  377. package/src/nodes/core/AttributeNode.js +3 -3
  378. package/src/nodes/core/BypassNode.js +1 -1
  379. package/src/nodes/core/ContextNode.js +104 -5
  380. package/src/nodes/core/IndexNode.js +2 -1
  381. package/src/nodes/core/InputNode.js +1 -1
  382. package/src/nodes/core/InspectorNode.js +1 -1
  383. package/src/nodes/core/IsolateNode.js +1 -1
  384. package/src/nodes/core/MRTNode.js +55 -4
  385. package/src/nodes/core/Node.js +151 -17
  386. package/src/nodes/core/NodeBuilder.js +479 -101
  387. package/src/nodes/core/NodeError.js +28 -0
  388. package/src/nodes/core/NodeFrame.js +12 -4
  389. package/src/nodes/core/NodeUtils.js +20 -18
  390. package/src/nodes/core/OutputStructNode.js +13 -11
  391. package/src/nodes/core/OverrideContextNode.js +153 -0
  392. package/src/nodes/core/ParameterNode.js +4 -4
  393. package/src/nodes/core/PropertyNode.js +66 -4
  394. package/src/nodes/core/StackNode.js +91 -20
  395. package/src/nodes/core/StackTrace.js +139 -0
  396. package/src/nodes/core/StructNode.js +20 -8
  397. package/src/nodes/core/StructTypeNode.js +17 -23
  398. package/src/nodes/core/SubBuildNode.js +2 -2
  399. package/src/nodes/core/UniformGroupNode.js +36 -6
  400. package/src/nodes/core/UniformNode.js +21 -5
  401. package/src/nodes/core/VarNode.js +56 -23
  402. package/src/nodes/core/VaryingNode.js +14 -21
  403. package/src/nodes/display/BlendModes.js +1 -105
  404. package/src/nodes/display/BumpMapNode.js +6 -1
  405. package/src/nodes/display/ColorAdjustment.js +27 -9
  406. package/src/nodes/display/ColorSpaceNode.js +3 -3
  407. package/src/nodes/display/FrontFacingNode.js +38 -9
  408. package/src/nodes/display/NormalMapNode.js +41 -6
  409. package/src/nodes/display/PassNode.js +157 -56
  410. package/src/nodes/display/PremultiplyAlphaFunctions.js +39 -0
  411. package/src/nodes/display/RenderOutputNode.js +19 -10
  412. package/src/nodes/display/ScreenNode.js +4 -2
  413. package/src/nodes/display/ToneMappingNode.js +1 -1
  414. package/src/nodes/display/ToonOutlinePassNode.js +2 -2
  415. package/src/nodes/display/ViewportDepthNode.js +52 -4
  416. package/src/nodes/display/ViewportDepthTextureNode.js +11 -15
  417. package/src/nodes/display/ViewportTextureNode.js +39 -11
  418. package/src/nodes/fog/Fog.js +18 -35
  419. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +3 -3
  420. package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
  421. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  422. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  423. package/src/nodes/functions/PhysicalLightingModel.js +126 -45
  424. package/src/nodes/functions/VolumetricLightingModel.js +40 -7
  425. package/src/nodes/geometry/RangeNode.js +5 -3
  426. package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
  427. package/src/nodes/gpgpu/BarrierNode.js +9 -0
  428. package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -3
  429. package/src/nodes/gpgpu/ComputeNode.js +74 -48
  430. package/src/nodes/gpgpu/SubgroupFunctionNode.js +2 -2
  431. package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -5
  432. package/src/nodes/lighting/AnalyticLightNode.js +53 -0
  433. package/src/nodes/lighting/EnvironmentNode.js +30 -5
  434. package/src/nodes/lighting/IESSpotLightNode.js +40 -2
  435. package/src/nodes/lighting/LightingContextNode.js +10 -2
  436. package/src/nodes/lighting/LightsNode.js +97 -65
  437. package/src/nodes/lighting/PointShadowNode.js +166 -148
  438. package/src/nodes/lighting/ShadowFilterNode.js +74 -117
  439. package/src/nodes/lighting/ShadowNode.js +149 -51
  440. package/src/nodes/materialx/lib/mx_noise.js +2 -2
  441. package/src/nodes/math/BitcastNode.js +1 -1
  442. package/src/nodes/math/BitcountNode.js +433 -0
  443. package/src/nodes/math/ConditionalNode.js +6 -6
  444. package/src/nodes/math/MathNode.js +115 -52
  445. package/src/nodes/math/OperatorNode.js +24 -23
  446. package/src/nodes/math/PackFloatNode.js +98 -0
  447. package/src/nodes/math/UnpackFloatNode.js +96 -0
  448. package/src/nodes/parsers/GLSLNodeFunction.js +1 -1
  449. package/src/nodes/pmrem/PMREMNode.js +34 -3
  450. package/src/nodes/pmrem/PMREMUtils.js +9 -15
  451. package/src/nodes/tsl/TSLBase.js +1 -1
  452. package/src/nodes/tsl/TSLCore.js +99 -33
  453. package/src/nodes/utils/ArrayElementNode.js +14 -1
  454. package/src/nodes/utils/ConvertNode.js +1 -1
  455. package/src/nodes/utils/DebugNode.js +12 -12
  456. package/src/nodes/utils/EquirectUV.js +30 -5
  457. package/src/nodes/utils/EventNode.js +31 -2
  458. package/src/nodes/utils/FlipNode.js +1 -1
  459. package/src/nodes/utils/FunctionOverloadingNode.js +2 -2
  460. package/src/nodes/utils/JoinNode.js +3 -3
  461. package/src/nodes/utils/LoopNode.js +1 -1
  462. package/src/nodes/utils/MemberNode.js +2 -2
  463. package/src/nodes/utils/Packing.js +48 -5
  464. package/src/nodes/utils/PostProcessingUtils.js +33 -1
  465. package/src/nodes/utils/RTTNode.js +41 -25
  466. package/src/nodes/utils/ReflectorNode.js +4 -4
  467. package/src/nodes/utils/Remap.js +48 -0
  468. package/src/nodes/utils/RotateNode.js +1 -1
  469. package/src/nodes/utils/SampleNode.js +1 -1
  470. package/src/nodes/utils/SetNode.js +1 -1
  471. package/src/nodes/utils/SplitNode.js +1 -1
  472. package/src/nodes/utils/SpriteSheetUV.js +35 -0
  473. package/src/nodes/utils/StorageArrayElementNode.js +1 -1
  474. package/src/nodes/utils/UVUtils.js +28 -0
  475. package/src/objects/BatchedMesh.js +66 -30
  476. package/src/objects/InstancedMesh.js +19 -3
  477. package/src/objects/Line.js +1 -1
  478. package/src/objects/Mesh.js +1 -1
  479. package/src/objects/Points.js +1 -1
  480. package/src/objects/SkinnedMesh.js +26 -9
  481. package/src/renderers/WebGLRenderer.js +344 -156
  482. package/src/renderers/common/Animation.js +3 -3
  483. package/src/renderers/common/Attributes.js +15 -1
  484. package/src/renderers/common/Backend.js +78 -13
  485. package/src/renderers/common/Background.js +26 -13
  486. package/src/renderers/common/BindGroup.js +1 -16
  487. package/src/renderers/common/Binding.js +11 -0
  488. package/src/renderers/common/Bindings.js +141 -57
  489. package/src/renderers/common/BlendMode.js +143 -0
  490. package/src/renderers/common/Buffer.js +49 -0
  491. package/src/renderers/common/BundleGroup.js +1 -1
  492. package/src/renderers/common/ChainMap.js +30 -6
  493. package/src/renderers/common/ClippingContext.js +10 -2
  494. package/src/renderers/common/ComputePipeline.js +1 -1
  495. package/src/renderers/common/CubeRenderTarget.js +51 -7
  496. package/src/renderers/common/Geometries.js +29 -3
  497. package/src/renderers/common/Info.js +374 -4
  498. package/src/renderers/common/InspectorBase.js +6 -1
  499. package/src/renderers/common/Lighting.js +51 -19
  500. package/src/renderers/common/Pipelines.js +40 -7
  501. package/src/renderers/common/PostProcessing.js +8 -206
  502. package/src/renderers/common/ReadbackBuffer.js +78 -0
  503. package/src/renderers/common/RenderBundle.js +3 -1
  504. package/src/renderers/common/RenderBundles.js +7 -3
  505. package/src/renderers/common/RenderContext.js +16 -0
  506. package/src/renderers/common/RenderContexts.js +33 -49
  507. package/src/renderers/common/RenderList.js +41 -4
  508. package/src/renderers/common/RenderLists.js +2 -1
  509. package/src/renderers/common/RenderObject.js +88 -16
  510. package/src/renderers/common/RenderObjectPipeline.js +40 -0
  511. package/src/renderers/common/RenderObjects.js +21 -5
  512. package/src/renderers/common/RenderPipeline.js +232 -17
  513. package/src/renderers/common/Renderer.js +700 -163
  514. package/src/renderers/common/Sampler.js +16 -48
  515. package/src/renderers/common/StorageBuffer.js +13 -1
  516. package/src/renderers/common/Textures.js +121 -9
  517. package/src/renderers/common/TimestampQueryPool.js +6 -4
  518. package/src/renderers/common/Uniform.js +8 -0
  519. package/src/renderers/common/UniformsGroup.js +84 -1
  520. package/src/renderers/common/XRManager.js +377 -51
  521. package/src/renderers/common/extras/PMREMGenerator.js +40 -61
  522. package/src/renderers/common/nodes/NodeBuilderState.js +10 -2
  523. package/src/renderers/common/nodes/NodeLibrary.js +4 -4
  524. package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +298 -106
  525. package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
  526. package/src/renderers/common/nodes/NodeUniformBuffer.js +65 -0
  527. package/src/renderers/shaders/DFGLUTData.js +19 -34
  528. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
  529. package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
  530. package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
  531. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
  532. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
  533. package/src/renderers/shaders/ShaderChunk/common.glsl.js +13 -4
  534. package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +0 -6
  535. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
  536. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +9 -13
  537. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +2 -2
  538. package/src/renderers/shaders/ShaderChunk/envmap_vertex.glsl.js +1 -1
  539. package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
  540. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
  541. package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
  542. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
  543. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +3 -1
  544. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
  545. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +112 -53
  546. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -2
  547. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
  548. package/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +6 -0
  549. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
  550. package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
  551. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +225 -186
  552. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
  553. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  554. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +2 -2
  555. package/src/renderers/shaders/ShaderChunk.js +5 -3
  556. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
  557. package/src/renderers/shaders/ShaderLib/depth.glsl.js +3 -0
  558. package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +2 -3
  559. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
  560. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
  561. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
  562. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
  563. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
  564. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
  565. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
  566. package/src/renderers/shaders/ShaderLib.js +7 -6
  567. package/src/renderers/shaders/UniformsLib.js +7 -5
  568. package/src/renderers/shaders/UniformsUtils.js +27 -5
  569. package/src/renderers/webgl/WebGLAnimation.js +2 -1
  570. package/src/renderers/webgl/WebGLBackground.js +15 -15
  571. package/src/renderers/webgl/WebGLBindingStates.js +99 -27
  572. package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
  573. package/src/renderers/webgl/WebGLCapabilities.js +9 -4
  574. package/src/renderers/webgl/WebGLEnvironments.js +228 -0
  575. package/src/renderers/webgl/WebGLGeometries.js +10 -7
  576. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
  577. package/src/renderers/webgl/WebGLLights.js +18 -1
  578. package/src/renderers/webgl/WebGLMaterials.js +24 -13
  579. package/src/renderers/webgl/WebGLObjects.js +3 -1
  580. package/src/renderers/webgl/WebGLOutput.js +271 -0
  581. package/src/renderers/webgl/WebGLProgram.js +54 -113
  582. package/src/renderers/webgl/WebGLPrograms.js +74 -55
  583. package/src/renderers/webgl/WebGLRenderLists.js +24 -1
  584. package/src/renderers/webgl/WebGLRenderStates.js +13 -2
  585. package/src/renderers/webgl/WebGLShaderCache.js +5 -11
  586. package/src/renderers/webgl/WebGLShadowMap.js +188 -24
  587. package/src/renderers/webgl/WebGLState.js +75 -37
  588. package/src/renderers/webgl/WebGLTextures.js +230 -56
  589. package/src/renderers/webgl/WebGLUniforms.js +40 -3
  590. package/src/renderers/webgl/WebGLUniformsGroups.js +82 -35
  591. package/src/renderers/webgl/WebGLUtils.js +6 -2
  592. package/src/renderers/webgl-fallback/WebGLBackend.js +322 -92
  593. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
  594. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +295 -66
  595. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
  596. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
  597. package/src/renderers/webgl-fallback/utils/WebGLState.js +223 -6
  598. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +118 -73
  599. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +10 -10
  600. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +9 -3
  601. package/src/renderers/webgpu/WebGPUBackend.js +733 -302
  602. package/src/renderers/webgpu/WebGPURenderer.js +2 -1
  603. package/src/renderers/webgpu/descriptors/GPUBindGroupDescriptor.js +48 -0
  604. package/src/renderers/webgpu/descriptors/GPUBufferDescriptor.js +57 -0
  605. package/src/renderers/webgpu/descriptors/GPUCommandEncoderDescriptor.js +30 -0
  606. package/src/renderers/webgpu/descriptors/GPUComputePassDescriptor.js +38 -0
  607. package/src/renderers/webgpu/descriptors/GPUComputePipelineDescriptor.js +48 -0
  608. package/src/renderers/webgpu/descriptors/GPUCopyExternalImageDestInfo.js +47 -0
  609. package/src/renderers/webgpu/descriptors/GPUCopyExternalImageSourceInfo.js +50 -0
  610. package/src/renderers/webgpu/descriptors/GPUExtent3D.js +51 -0
  611. package/src/renderers/webgpu/descriptors/GPUPipelineLayoutDescriptor.js +39 -0
  612. package/src/renderers/webgpu/descriptors/GPUQuerySetDescriptor.js +47 -0
  613. package/src/renderers/webgpu/descriptors/GPURenderBundleEncoderDescriptor.js +74 -0
  614. package/src/renderers/webgpu/descriptors/GPURenderPassColorAttachment.js +72 -0
  615. package/src/renderers/webgpu/descriptors/GPURenderPassDepthStencilAttachment.js +99 -0
  616. package/src/renderers/webgpu/descriptors/GPURenderPassDescriptor.js +72 -0
  617. package/src/renderers/webgpu/descriptors/GPURenderPassTimestampWrites.js +49 -0
  618. package/src/renderers/webgpu/descriptors/GPURenderPipelineDescriptor.js +130 -0
  619. package/src/renderers/webgpu/descriptors/GPUSamplerDescriptor.js +119 -0
  620. package/src/renderers/webgpu/descriptors/GPUShaderModuleDescriptor.js +46 -0
  621. package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferInfo.js +57 -0
  622. package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferLayout.js +48 -0
  623. package/src/renderers/webgpu/descriptors/GPUTexelCopyTextureInfo.js +61 -0
  624. package/src/renderers/webgpu/descriptors/GPUTextureDescriptor.js +99 -0
  625. package/src/renderers/webgpu/descriptors/GPUTextureViewDescriptor.js +108 -0
  626. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +0 -1
  627. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +526 -93
  628. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +1 -1
  629. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +194 -61
  630. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +395 -234
  631. package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
  632. package/src/renderers/webgpu/utils/WebGPUConstants.js +10 -0
  633. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +224 -91
  634. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +228 -213
  635. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +428 -175
  636. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +40 -25
  637. package/src/renderers/webgpu/utils/WebGPUUtils.js +70 -13
  638. package/src/renderers/webxr/WebXRController.js +12 -0
  639. package/src/renderers/webxr/WebXRManager.js +4 -2
  640. package/src/textures/CubeDepthTexture.js +76 -0
  641. package/src/textures/DepthTexture.js +1 -1
  642. package/src/textures/ExternalTexture.js +0 -3
  643. package/src/textures/HTMLTexture.js +74 -0
  644. package/src/textures/Source.js +2 -2
  645. package/src/textures/Texture.js +16 -5
  646. package/src/utils.js +280 -3
  647. package/examples/fonts/LICENSE +0 -13
  648. package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
  649. package/examples/fonts/MPLUSRounded1c/OFL.txt +0 -91
  650. package/examples/fonts/README.md +0 -11
  651. package/examples/fonts/droid/NOTICE +0 -190
  652. package/examples/fonts/droid/README.txt +0 -18
  653. package/examples/fonts/droid/droid_sans_bold.typeface.json +0 -1
  654. package/examples/fonts/droid/droid_sans_mono_regular.typeface.json +0 -1
  655. package/examples/fonts/droid/droid_sans_regular.typeface.json +0 -1
  656. package/examples/fonts/droid/droid_serif_bold.typeface.json +0 -1
  657. package/examples/fonts/droid/droid_serif_regular.typeface.json +0 -1
  658. package/examples/fonts/gentilis_bold.typeface.json +0 -1
  659. package/examples/fonts/gentilis_regular.typeface.json +0 -1
  660. package/examples/fonts/helvetiker_bold.typeface.json +0 -1
  661. package/examples/fonts/helvetiker_regular.typeface.json +0 -1
  662. package/examples/fonts/optimer_bold.typeface.json +0 -1
  663. package/examples/fonts/optimer_regular.typeface.json +0 -1
  664. package/examples/fonts/ttf/README.md +0 -9
  665. package/examples/fonts/ttf/kenpixel.ttf +0 -0
  666. package/examples/jsm/libs/ammo.wasm.js +0 -822
  667. package/examples/jsm/libs/ammo.wasm.wasm +0 -0
  668. package/examples/jsm/libs/draco/draco_encoder.js +0 -33
  669. package/examples/jsm/libs/draco/gltf/draco_encoder.js +0 -33
  670. package/examples/jsm/libs/lottie_canvas.module.js +0 -14849
  671. package/examples/jsm/libs/opentype.module.js +0 -14506
  672. package/examples/jsm/libs/rhino3dm/rhino3dm.js +0 -21
  673. package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +0 -16
  674. package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
  675. package/examples/jsm/lighting/TiledLighting.js +0 -42
  676. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
  677. package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
  678. package/examples/jsm/shaders/GodRaysShader.js +0 -333
  679. package/examples/jsm/tsl/display/AnamorphicNode.js +0 -282
  680. package/examples/jsm/tsl/lighting/TiledLightsNode.js +0 -442
  681. package/src/nodes/accessors/BatchNode.js +0 -163
  682. package/src/nodes/accessors/InstanceNode.js +0 -244
  683. package/src/nodes/accessors/InstancedMeshNode.js +0 -50
  684. package/src/nodes/accessors/SceneNode.js +0 -145
  685. package/src/nodes/accessors/SkinningNode.js +0 -327
  686. package/src/nodes/code/ScriptableNode.js +0 -726
  687. package/src/nodes/code/ScriptableValueNode.js +0 -253
  688. package/src/nodes/display/PosterizeNode.js +0 -65
  689. package/src/nodes/functions/BSDF/DFGApprox.js +0 -71
  690. package/src/nodes/utils/RemapNode.js +0 -125
  691. package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
  692. package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
  693. 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;
@@ -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,12 +40,14 @@ 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;
47
47
  export const agxToneMapping = TSL.agxToneMapping;
48
48
  export const all = TSL.all;
49
49
  export const alphaT = TSL.alphaT;
50
+ export const ambientOcclusion = TSL.ambientOcclusion;
50
51
  export const and = TSL.and;
51
52
  export const anisotropy = TSL.anisotropy;
52
53
  export const anisotropyB = TSL.anisotropyB;
@@ -54,11 +55,11 @@ export const anisotropyT = TSL.anisotropyT;
54
55
  export const any = TSL.any;
55
56
  export const append = TSL.append;
56
57
  export const array = TSL.array;
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,17 @@ 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;
180
+ export const equirectDirection = TSL.equirectDirection;
176
181
  export const equirectUV = TSL.equirectUV;
177
182
  export const exp = TSL.exp;
178
183
  export const exp2 = TSL.exp2;
184
+ export const exponentialHeightFogFactor = TSL.exponentialHeightFogFactor;
179
185
  export const expression = TSL.expression;
180
186
  export const faceDirection = TSL.faceDirection;
181
187
  export const faceForward = TSL.faceForward;
@@ -199,6 +205,7 @@ export const getDistanceAttenuation = TSL.getDistanceAttenuation;
199
205
  export const getGeometryRoughness = TSL.getGeometryRoughness;
200
206
  export const getNormalFromDepth = TSL.getNormalFromDepth;
201
207
  export const interleavedGradientNoise = TSL.interleavedGradientNoise;
208
+ export const vogelDiskSample = TSL.vogelDiskSample;
202
209
  export const getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;
203
210
  export const getRoughness = TSL.getRoughness;
204
211
  export const getScreenPosition = TSL.getScreenPosition;
@@ -314,7 +321,6 @@ export const min = TSL.min;
314
321
  export const mix = TSL.mix;
315
322
  export const mixElement = TSL.mixElement;
316
323
  export const mod = TSL.mod;
317
- export const modInt = TSL.modInt;
318
324
  export const modelDirection = TSL.modelDirection;
319
325
  export const modelNormalMatrix = TSL.modelNormalMatrix;
320
326
  export const modelPosition = TSL.modelPosition;
@@ -372,6 +378,7 @@ export const mx_worley_noise_float = TSL.mx_worley_noise_float;
372
378
  export const mx_worley_noise_vec2 = TSL.mx_worley_noise_vec2;
373
379
  export const mx_worley_noise_vec3 = TSL.mx_worley_noise_vec3;
374
380
  export const negate = TSL.negate;
381
+ export const negateOnBackSide = TSL.negateOnBackSide;
375
382
  export const neutralToneMapping = TSL.neutralToneMapping;
376
383
  export const nodeArray = TSL.nodeArray;
377
384
  export const nodeImmutable = TSL.nodeImmutable;
@@ -412,8 +419,13 @@ export const oscSquare = TSL.oscSquare;
412
419
  export const oscTriangle = TSL.oscTriangle;
413
420
  export const output = TSL.output;
414
421
  export const outputStruct = TSL.outputStruct;
415
- export const overlay = TSL.overlay;
416
422
  export const overloadingFn = TSL.overloadingFn;
423
+ export const overrideNode = TSL.overrideNode;
424
+ export const overrideNodes = TSL.overrideNodes;
425
+ export const packHalf2x16 = TSL.packHalf2x16;
426
+ export const packSnorm2x16 = TSL.packSnorm2x16;
427
+ export const packUnorm2x16 = TSL.packUnorm2x16;
428
+ export const packNormalToRGB = TSL.packNormalToRGB;
417
429
  export const parabola = TSL.parabola;
418
430
  export const parallaxDirection = TSL.parallaxDirection;
419
431
  export const parallaxUV = TSL.parallaxUV;
@@ -461,6 +473,7 @@ export const remapClamp = TSL.remapClamp;
461
473
  export const renderGroup = TSL.renderGroup;
462
474
  export const renderOutput = TSL.renderOutput;
463
475
  export const rendererReference = TSL.rendererReference;
476
+ export const replaceDefaultUV = TSL.replaceDefaultUV;
464
477
  export const rotate = TSL.rotate;
465
478
  export const rotateUV = TSL.rotateUV;
466
479
  export const roughness = TSL.roughness;
@@ -478,8 +491,6 @@ export const screenCoordinate = TSL.screenCoordinate;
478
491
  export const screenDPR = TSL.screenDPR;
479
492
  export const screenSize = TSL.screenSize;
480
493
  export const screenUV = TSL.screenUV;
481
- export const scriptable = TSL.scriptable;
482
- export const scriptableValue = TSL.scriptableValue;
483
494
  export const select = TSL.select;
484
495
  export const setCurrentStack = TSL.setCurrentStack;
485
496
  export const setName = TSL.setName;
@@ -495,6 +506,7 @@ export const shiftRight = TSL.shiftRight;
495
506
  export const shininess = TSL.shininess;
496
507
  export const sign = TSL.sign;
497
508
  export const sin = TSL.sin;
509
+ export const sinh = TSL.sinh;
498
510
  export const sinc = TSL.sinc;
499
511
  export const skinning = TSL.skinning;
500
512
  export const smoothstep = TSL.smoothstep;
@@ -510,9 +522,8 @@ export const step = TSL.step;
510
522
  export const stepElement = TSL.stepElement;
511
523
  export const storage = TSL.storage;
512
524
  export const storageBarrier = TSL.storageBarrier;
513
- export const storageObject = TSL.storageObject;
514
525
  export const storageTexture = TSL.storageTexture;
515
- export const string = TSL.string;
526
+ export const storageTexture3D = TSL.storageTexture3D;
516
527
  export const struct = TSL.struct;
517
528
  export const sub = TSL.sub;
518
529
  export const subgroupAdd = TSL.subgroupAdd;
@@ -540,6 +551,7 @@ export const subgroupShuffleXor = TSL.subgroupShuffleXor;
540
551
  export const subgroupSize = TSL.subgroupSize;
541
552
  export const subgroupXor = TSL.subgroupXor;
542
553
  export const tan = TSL.tan;
554
+ export const tanh = TSL.tanh;
543
555
  export const tangentGeometry = TSL.tangentGeometry;
544
556
  export const tangentLocal = TSL.tangentLocal;
545
557
  export const tangentView = TSL.tangentView;
@@ -561,6 +573,8 @@ export const toneMappingExposure = TSL.toneMappingExposure;
561
573
  export const toonOutlinePass = TSL.toonOutlinePass;
562
574
  export const transformDirection = TSL.transformDirection;
563
575
  export const transformNormal = TSL.transformNormal;
576
+ export const transformNormalByInverseViewMatrix = TSL.transformNormalByInverseViewMatrix;
577
+ export const transformNormalByViewMatrix = TSL.transformNormalByViewMatrix;
564
578
  export const transformNormalToView = TSL.transformNormalToView;
565
579
  export const transformedClearcoatNormalView = TSL.transformedClearcoatNormalView;
566
580
  export const transformedNormalView = TSL.transformedNormalView;
@@ -579,6 +593,10 @@ export const uniformCubeTexture = TSL.uniformCubeTexture;
579
593
  export const uniformGroup = TSL.uniformGroup;
580
594
  export const uniformFlow = TSL.uniformFlow;
581
595
  export const uniformTexture = TSL.uniformTexture;
596
+ export const unpackHalf2x16 = TSL.unpackHalf2x16;
597
+ export const unpackSnorm2x16 = TSL.unpackSnorm2x16;
598
+ export const unpackUnorm2x16 = TSL.unpackUnorm2x16;
599
+ export const unpackRGBToNormal = TSL.unpackRGBToNormal;
582
600
  export const unpremultiplyAlpha = TSL.unpremultiplyAlpha;
583
601
  export const userData = TSL.userData;
584
602
  export const uv = TSL.uv;
@@ -599,11 +617,14 @@ export const vibrance = TSL.vibrance;
599
617
  export const viewZToLogarithmicDepth = TSL.viewZToLogarithmicDepth;
600
618
  export const viewZToOrthographicDepth = TSL.viewZToOrthographicDepth;
601
619
  export const viewZToPerspectiveDepth = TSL.viewZToPerspectiveDepth;
620
+ export const viewZToReversedOrthographicDepth = TSL.viewZToReversedOrthographicDepth;
621
+ export const viewZToReversedPerspectiveDepth = TSL.viewZToReversedPerspectiveDepth;
602
622
  export const viewport = TSL.viewport;
603
623
  export const viewportCoordinate = TSL.viewportCoordinate;
604
624
  export const viewportDepthTexture = TSL.viewportDepthTexture;
605
625
  export const viewportLinearDepth = TSL.viewportLinearDepth;
606
626
  export const viewportMipTexture = TSL.viewportMipTexture;
627
+ export const viewportOpaqueMipTexture = TSL.viewportOpaqueMipTexture;
607
628
  export const viewportResolution = TSL.viewportResolution;
608
629
  export const viewportSafeUV = TSL.viewportSafeUV;
609
630
  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,21 @@ 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 Renderer } from './renderers/common/Renderer.js';
8
+ export { default as Backend } from './renderers/common/Backend.js';
9
+ export { default as WebGLCapabilities } from './renderers/webgl-fallback/utils/WebGLCapabilities.js';
5
10
  export { default as Lighting } from './renderers/common/Lighting.js';
6
11
  export { default as BundleGroup } from './renderers/common/BundleGroup.js';
7
12
  export { default as QuadMesh } from './renderers/common/QuadMesh.js';
8
13
  export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
14
+ export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
9
15
  export { default as PostProcessing } from './renderers/common/PostProcessing.js';
16
+ export { default as ReadbackBuffer } from './renderers/common/ReadbackBuffer.js';
10
17
  import * as RendererUtils from './renderers/common/RendererUtils.js';
11
18
  export { RendererUtils };
19
+ export { default as CubeRenderTarget } from './renderers/common/CubeRenderTarget.js';
12
20
  export { default as StorageTexture } from './renderers/common/StorageTexture.js';
13
21
  export { default as Storage3DTexture } from './renderers/common/Storage3DTexture.js';
14
22
  export { default as StorageArrayTexture } from './renderers/common/StorageArrayTexture.js';
@@ -22,6 +30,11 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
22
30
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
23
31
  export { default as InspectorBase } from './renderers/common/InspectorBase.js';
24
32
  export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
33
+ export { default as BlendMode } from './renderers/common/BlendMode.js';
34
+ export { default as GLSLNodeBuilder } from './renderers/webgl-fallback/nodes/GLSLNodeBuilder.js';
35
+ export { default as BasicNodeLibrary } from './renderers/webgpu/nodes/BasicNodeLibrary.js';
36
+ export { default as StandardNodeLibrary } from './renderers/webgpu/nodes/StandardNodeLibrary.js';
37
+ export { default as WGSLNodeBuilder } from './renderers/webgpu/nodes/WGSLNodeBuilder.js';
25
38
  export { ClippingGroup } from './objects/ClippingGroup.js';
26
39
  export * from './nodes/Nodes.js';
27
40
  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';
@@ -56,6 +56,7 @@ class AnimationAction {
56
56
  this._byClipCacheIndex = null; // for the memory manager
57
57
 
58
58
  this._timeScaleInterpolant = null;
59
+ this._restoreTimeScale = null;
59
60
  this._weightInterpolant = null;
60
61
 
61
62
  /**
@@ -343,6 +344,10 @@ class AnimationAction {
343
344
  startEndRatio = fadeOutDuration / fadeInDuration,
344
345
  endStartRatio = fadeInDuration / fadeOutDuration;
345
346
 
347
+
348
+ fadeOutAction._restoreTimeScale = fadeOutAction.timeScale;
349
+ this._restoreTimeScale = this.timeScale;
350
+
346
351
  fadeOutAction.warp( 1.0, startEndRatio, duration );
347
352
  this.warp( endStartRatio, 1.0, duration );
348
353
 
@@ -511,6 +516,8 @@ class AnimationAction {
511
516
 
512
517
  }
513
518
 
519
+ this._restoreTimeScale = null;
520
+
514
521
  return this;
515
522
 
516
523
  }
@@ -548,7 +555,7 @@ class AnimationAction {
548
555
 
549
556
  }
550
557
 
551
- // Interna
558
+ // Internal
552
559
 
553
560
  _update( time, deltaTime, timeDirection, accuIndex ) {
554
561
 
@@ -683,8 +690,6 @@ class AnimationAction {
683
690
 
684
691
  if ( time > interpolant.parameterPositions[ 1 ] ) {
685
692
 
686
- this.stopWarping();
687
-
688
693
  if ( timeScale === 0 ) {
689
694
 
690
695
  // motion has halted, pause
@@ -692,11 +697,19 @@ class AnimationAction {
692
697
 
693
698
  } else {
694
699
 
700
+ if ( this._restoreTimeScale !== null ) {
701
+
702
+ timeScale = this._restoreTimeScale;
703
+
704
+ }
705
+
695
706
  // warp done - apply final time scale
696
707
  this.timeScale = timeScale;
697
708
 
698
709
  }
699
710
 
711
+ this.stopWarping();
712
+
700
713
  }
701
714
 
702
715
  }
@@ -847,6 +860,7 @@ class AnimationAction {
847
860
 
848
861
  } else {
849
862
 
863
+ this._loopCount = loopCount;
850
864
  this.time = time;
851
865
 
852
866
  }
@@ -894,7 +908,7 @@ class AnimationAction {
894
908
 
895
909
  } else {
896
910
 
897
- settings.endingEnd = WrapAroundEnding;
911
+ settings.endingEnd = WrapAroundEnding;
898
912
 
899
913
  }
900
914
 
@@ -8,7 +8,6 @@ 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';
12
11
 
13
12
  /**
14
13
  * A reusable set of keyframe tracks which represent an animation.
@@ -295,144 +294,6 @@ class AnimationClip {
295
294
 
296
295
  }
297
296
 
298
- /**
299
- * Parses the `animation.hierarchy` format and returns a new animation clip.
300
- *
301
- * @static
302
- * @deprecated since r175.
303
- * @param {Object} animation - A serialized animation clip as JSON.
304
- * @param {Array<Bones>} bones - An array of bones.
305
- * @return {?AnimationClip} The new animation clip.
306
- */
307
- static parseAnimation( animation, bones ) {
308
-
309
- warn( 'AnimationClip: parseAnimation() is deprecated and will be removed with r185' );
310
-
311
- if ( ! animation ) {
312
-
313
- error( 'AnimationClip: No animation in JSONLoader data.' );
314
- return null;
315
-
316
- }
317
-
318
- const addNonemptyTrack = function ( trackType, trackName, animationKeys, propertyName, destTracks ) {
319
-
320
- // only return track if there are actually keys.
321
- if ( animationKeys.length !== 0 ) {
322
-
323
- const times = [];
324
- const values = [];
325
-
326
- AnimationUtils.flattenJSON( animationKeys, times, values, propertyName );
327
-
328
- // empty keys are filtered out, so check again
329
- if ( times.length !== 0 ) {
330
-
331
- destTracks.push( new trackType( trackName, times, values ) );
332
-
333
- }
334
-
335
- }
336
-
337
- };
338
-
339
- const tracks = [];
340
-
341
- const clipName = animation.name || 'default';
342
- const fps = animation.fps || 30;
343
- const blendMode = animation.blendMode;
344
-
345
- // automatic length determination in AnimationClip.
346
- let duration = animation.length || - 1;
347
-
348
- const hierarchyTracks = animation.hierarchy || [];
349
-
350
- for ( let h = 0; h < hierarchyTracks.length; h ++ ) {
351
-
352
- const animationKeys = hierarchyTracks[ h ].keys;
353
-
354
- // skip empty tracks
355
- if ( ! animationKeys || animationKeys.length === 0 ) continue;
356
-
357
- // process morph targets
358
- if ( animationKeys[ 0 ].morphTargets ) {
359
-
360
- // figure out all morph targets used in this track
361
- const morphTargetNames = {};
362
-
363
- let k;
364
-
365
- for ( k = 0; k < animationKeys.length; k ++ ) {
366
-
367
- if ( animationKeys[ k ].morphTargets ) {
368
-
369
- for ( let m = 0; m < animationKeys[ k ].morphTargets.length; m ++ ) {
370
-
371
- morphTargetNames[ animationKeys[ k ].morphTargets[ m ] ] = - 1;
372
-
373
- }
374
-
375
- }
376
-
377
- }
378
-
379
- // create a track for each morph target with all zero
380
- // morphTargetInfluences except for the keys in which
381
- // the morphTarget is named.
382
- for ( const morphTargetName in morphTargetNames ) {
383
-
384
- const times = [];
385
- const values = [];
386
-
387
- for ( let m = 0; m !== animationKeys[ k ].morphTargets.length; ++ m ) {
388
-
389
- const animationKey = animationKeys[ k ];
390
-
391
- times.push( animationKey.time );
392
- values.push( ( animationKey.morphTarget === morphTargetName ) ? 1 : 0 );
393
-
394
- }
395
-
396
- tracks.push( new NumberKeyframeTrack( '.morphTargetInfluence[' + morphTargetName + ']', times, values ) );
397
-
398
- }
399
-
400
- duration = morphTargetNames.length * fps;
401
-
402
- } else {
403
-
404
- // ...assume skeletal animation
405
-
406
- const boneName = '.bones[' + bones[ h ].name + ']';
407
-
408
- addNonemptyTrack(
409
- VectorKeyframeTrack, boneName + '.position',
410
- animationKeys, 'pos', tracks );
411
-
412
- addNonemptyTrack(
413
- QuaternionKeyframeTrack, boneName + '.quaternion',
414
- animationKeys, 'rot', tracks );
415
-
416
- addNonemptyTrack(
417
- VectorKeyframeTrack, boneName + '.scale',
418
- animationKeys, 'scl', tracks );
419
-
420
- }
421
-
422
- }
423
-
424
- if ( tracks.length === 0 ) {
425
-
426
- return null;
427
-
428
- }
429
-
430
- const clip = new this( clipName, duration, tracks, blendMode );
431
-
432
- return clip;
433
-
434
- }
435
-
436
297
  /**
437
298
  * Sets the duration of this clip to the duration of its longest keyframe track.
438
299
  *
@@ -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
+ if ( this.settings ) {
162
+
163
+ interpolant.inTangents = this.settings.inTangents;
164
+ interpolant.outTangents = this.settings.outTangents;
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;