@plastic-software/three 0.181.3 → 0.183.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 (437) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -4
  3. package/build/three.cjs +11330 -10017
  4. package/build/three.core.js +10011 -9493
  5. package/build/three.core.min.js +2 -2
  6. package/build/three.module.js +1414 -631
  7. package/build/three.module.min.js +2 -2
  8. package/build/three.tsl.js +21 -13
  9. package/build/three.tsl.min.js +2 -2
  10. package/build/three.webgpu.js +8007 -5427
  11. package/build/three.webgpu.min.js +2 -2
  12. package/build/three.webgpu.nodes.js +8005 -5426
  13. package/build/three.webgpu.nodes.min.js +2 -2
  14. package/examples/jsm/Addons.js +0 -3
  15. package/examples/jsm/animation/CCDIKSolver.js +2 -2
  16. package/examples/jsm/controls/ArcballControls.js +3 -3
  17. package/examples/jsm/controls/MapControls.js +55 -1
  18. package/examples/jsm/controls/OrbitControls.js +109 -6
  19. package/examples/jsm/controls/TrackballControls.js +6 -6
  20. package/examples/jsm/csm/CSM.js +2 -1
  21. package/examples/jsm/effects/AnaglyphEffect.js +102 -7
  22. package/examples/jsm/environments/ColorEnvironment.js +59 -0
  23. package/examples/jsm/environments/RoomEnvironment.js +3 -0
  24. package/examples/jsm/exporters/EXRExporter.js +1 -1
  25. package/examples/jsm/exporters/GLTFExporter.js +131 -4
  26. package/examples/jsm/exporters/USDZExporter.js +22 -3
  27. package/examples/jsm/geometries/DecalGeometry.js +1 -1
  28. package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
  29. package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
  30. package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
  31. package/examples/jsm/helpers/ViewHelper.js +67 -8
  32. package/examples/jsm/inspector/Inspector.js +74 -14
  33. package/examples/jsm/inspector/RendererInspector.js +12 -2
  34. package/examples/jsm/inspector/tabs/Console.js +41 -7
  35. package/examples/jsm/inspector/tabs/Parameters.js +18 -2
  36. package/examples/jsm/inspector/tabs/Performance.js +2 -2
  37. package/examples/jsm/inspector/tabs/Viewer.js +4 -4
  38. package/examples/jsm/inspector/ui/Profiler.js +1836 -31
  39. package/examples/jsm/inspector/ui/Style.js +973 -14
  40. package/examples/jsm/inspector/ui/Tab.js +188 -1
  41. package/examples/jsm/inspector/ui/Values.js +17 -1
  42. package/examples/jsm/libs/meshopt_decoder.module.js +6 -5
  43. package/examples/jsm/lines/LineMaterial.js +6 -0
  44. package/examples/jsm/loaders/3DMLoader.js +5 -4
  45. package/examples/jsm/loaders/3MFLoader.js +2 -2
  46. package/examples/jsm/loaders/AMFLoader.js +2 -2
  47. package/examples/jsm/loaders/ColladaLoader.js +24 -4026
  48. package/examples/jsm/loaders/DRACOLoader.js +5 -5
  49. package/examples/jsm/loaders/EXRLoader.js +5 -5
  50. package/examples/jsm/loaders/FBXLoader.js +2 -4
  51. package/examples/jsm/loaders/GCodeLoader.js +34 -8
  52. package/examples/jsm/loaders/GLTFLoader.js +122 -171
  53. package/examples/jsm/loaders/HDRLoader.js +0 -1
  54. package/examples/jsm/loaders/KMZLoader.js +5 -5
  55. package/examples/jsm/loaders/KTX2Loader.js +19 -3
  56. package/examples/jsm/loaders/LDrawLoader.js +2 -3
  57. package/examples/jsm/loaders/LWOLoader.js +7 -39
  58. package/examples/jsm/loaders/NRRDLoader.js +2 -2
  59. package/examples/jsm/loaders/PCDLoader.js +4 -2
  60. package/examples/jsm/loaders/SVGLoader.js +1 -1
  61. package/examples/jsm/loaders/TDSLoader.js +0 -2
  62. package/examples/jsm/loaders/TGALoader.js +0 -2
  63. package/examples/jsm/loaders/USDLoader.js +100 -40
  64. package/examples/jsm/loaders/UltraHDRLoader.js +285 -160
  65. package/examples/jsm/loaders/VOXLoader.js +660 -117
  66. package/examples/jsm/loaders/VRMLLoader.js +79 -2
  67. package/examples/jsm/loaders/VTKLoader.js +37 -24
  68. package/examples/jsm/loaders/collada/ColladaComposer.js +2950 -0
  69. package/examples/jsm/loaders/collada/ColladaParser.js +1962 -0
  70. package/examples/jsm/loaders/usd/USDAParser.js +447 -366
  71. package/examples/jsm/loaders/usd/USDCParser.js +1841 -6
  72. package/examples/jsm/loaders/usd/USDComposer.js +4041 -0
  73. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
  74. package/examples/jsm/materials/WoodNodeMaterial.js +11 -11
  75. package/examples/jsm/math/Octree.js +131 -1
  76. package/examples/jsm/misc/Volume.js +0 -1
  77. package/examples/jsm/misc/VolumeSlice.js +0 -1
  78. package/examples/jsm/objects/LensflareMesh.js +1 -1
  79. package/examples/jsm/objects/Sky.js +76 -4
  80. package/examples/jsm/objects/SkyMesh.js +127 -10
  81. package/examples/jsm/objects/Water.js +4 -3
  82. package/examples/jsm/objects/Water2.js +5 -3
  83. package/examples/jsm/objects/WaterMesh.js +5 -7
  84. package/examples/jsm/physics/AmmoPhysics.js +12 -7
  85. package/examples/jsm/physics/JoltPhysics.js +10 -6
  86. package/examples/jsm/physics/RapierPhysics.js +9 -5
  87. package/examples/jsm/postprocessing/EffectComposer.js +7 -5
  88. package/examples/jsm/postprocessing/OutputPass.js +9 -0
  89. package/examples/jsm/postprocessing/RenderPass.js +10 -0
  90. package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
  91. package/examples/jsm/postprocessing/UnrealBloomPass.js +48 -18
  92. package/examples/jsm/renderers/CSS3DRenderer.js +1 -1
  93. package/examples/jsm/renderers/Projector.js +268 -30
  94. package/examples/jsm/renderers/SVGRenderer.js +193 -60
  95. package/examples/jsm/shaders/GTAOShader.js +19 -6
  96. package/examples/jsm/shaders/HalftoneShader.js +12 -1
  97. package/examples/jsm/shaders/PoissonDenoiseShader.js +6 -2
  98. package/examples/jsm/shaders/SAOShader.js +17 -4
  99. package/examples/jsm/shaders/SSAOShader.js +11 -1
  100. package/examples/jsm/shaders/SSRShader.js +6 -5
  101. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -4
  102. package/examples/jsm/shaders/VignetteShader.js +1 -1
  103. package/examples/jsm/transpiler/AST.js +44 -0
  104. package/examples/jsm/transpiler/GLSLDecoder.js +61 -4
  105. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
  106. package/examples/jsm/transpiler/TSLEncoder.js +46 -3
  107. package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
  108. package/examples/jsm/transpiler/WGSLEncoder.js +27 -0
  109. package/examples/jsm/tsl/display/AfterImageNode.js +1 -1
  110. package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
  111. package/examples/jsm/tsl/display/AnamorphicNode.js +1 -1
  112. package/examples/jsm/tsl/display/BilateralBlurNode.js +364 -0
  113. package/examples/jsm/tsl/display/BloomNode.js +16 -6
  114. package/examples/jsm/tsl/display/CRT.js +150 -0
  115. package/examples/jsm/tsl/display/DenoiseNode.js +1 -1
  116. package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -1
  117. package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
  118. package/examples/jsm/tsl/display/FXAANode.js +2 -2
  119. package/examples/jsm/tsl/display/GTAONode.js +5 -4
  120. package/examples/jsm/tsl/display/GaussianBlurNode.js +11 -2
  121. package/examples/jsm/tsl/display/GodraysNode.js +624 -0
  122. package/examples/jsm/tsl/display/LensflareNode.js +1 -1
  123. package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
  124. package/examples/jsm/tsl/display/OutlineNode.js +3 -3
  125. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
  126. package/examples/jsm/tsl/display/PixelationPassNode.js +7 -6
  127. package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
  128. package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
  129. package/examples/jsm/tsl/display/SMAANode.js +2 -2
  130. package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
  131. package/examples/jsm/tsl/display/SSGINode.js +8 -20
  132. package/examples/jsm/tsl/display/SSRNode.js +8 -8
  133. package/examples/jsm/tsl/display/SSSNode.js +6 -4
  134. package/examples/jsm/tsl/display/Shape.js +29 -0
  135. package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
  136. package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
  137. package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
  138. package/examples/jsm/tsl/display/TRAANode.js +273 -125
  139. package/examples/jsm/tsl/display/TransitionNode.js +1 -1
  140. package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
  141. package/examples/jsm/tsl/display/radialBlur.js +68 -0
  142. package/examples/jsm/tsl/math/Bayer.js +40 -1
  143. package/examples/jsm/utils/LDrawUtils.js +1 -1
  144. package/examples/jsm/utils/ShadowMapViewer.js +24 -10
  145. package/examples/jsm/utils/ShadowMapViewerGPU.js +1 -1
  146. package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
  147. package/package.json +20 -26
  148. package/src/Three.Core.js +2 -1
  149. package/src/Three.TSL.js +19 -11
  150. package/src/Three.WebGPU.Nodes.js +2 -0
  151. package/src/Three.WebGPU.js +3 -0
  152. package/src/Three.js +1 -0
  153. package/src/animation/AnimationAction.js +1 -1
  154. package/src/animation/AnimationClip.js +1 -1
  155. package/src/animation/AnimationMixer.js +6 -0
  156. package/src/animation/AnimationUtils.js +1 -12
  157. package/src/animation/KeyframeTrack.js +47 -8
  158. package/src/animation/PropertyMixer.js +4 -4
  159. package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
  160. package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
  161. package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
  162. package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
  163. package/src/animation/tracks/StringKeyframeTrack.js +1 -1
  164. package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
  165. package/src/audio/Audio.js +1 -1
  166. package/src/audio/AudioListener.js +5 -3
  167. package/src/cameras/Camera.js +32 -2
  168. package/src/cameras/CubeCamera.js +20 -0
  169. package/src/constants.js +90 -5
  170. package/src/core/BufferGeometry.js +14 -2
  171. package/src/core/Clock.js +7 -0
  172. package/src/core/Object3D.js +56 -4
  173. package/src/core/Raycaster.js +2 -2
  174. package/src/core/RenderTarget.js +3 -4
  175. package/src/extras/PMREMGenerator.js +7 -18
  176. package/src/extras/TextureUtils.js +5 -1
  177. package/src/geometries/ExtrudeGeometry.js +2 -2
  178. package/src/geometries/PolyhedronGeometry.js +1 -1
  179. package/src/geometries/TorusGeometry.js +8 -3
  180. package/src/helpers/CameraHelper.js +3 -0
  181. package/src/helpers/DirectionalLightHelper.js +4 -1
  182. package/src/helpers/HemisphereLightHelper.js +3 -0
  183. package/src/helpers/PointLightHelper.js +1 -25
  184. package/src/helpers/SpotLightHelper.js +3 -0
  185. package/src/lights/DirectionalLight.js +13 -0
  186. package/src/lights/HemisphereLight.js +10 -0
  187. package/src/lights/Light.js +1 -11
  188. package/src/lights/LightProbe.js +0 -15
  189. package/src/lights/LightShadow.js +15 -6
  190. package/src/lights/PointLight.js +15 -0
  191. package/src/lights/PointLightShadow.js +0 -86
  192. package/src/lights/SpotLight.js +22 -1
  193. package/src/lights/webgpu/IESSpotLight.js +2 -1
  194. package/src/loaders/Cache.js +28 -0
  195. package/src/loaders/FileLoader.js +1 -1
  196. package/src/loaders/ImageBitmapLoader.js +8 -3
  197. package/src/loaders/Loader.js +6 -0
  198. package/src/loaders/MaterialLoader.js +2 -1
  199. package/src/loaders/ObjectLoader.js +21 -2
  200. package/src/loaders/nodes/NodeLoader.js +2 -2
  201. package/src/materials/Material.js +2 -0
  202. package/src/materials/MeshLambertMaterial.js +9 -0
  203. package/src/materials/MeshPhongMaterial.js +9 -0
  204. package/src/materials/ShaderMaterial.js +20 -1
  205. package/src/materials/nodes/Line2NodeMaterial.js +7 -7
  206. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
  207. package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
  208. package/src/materials/nodes/NodeMaterial.js +72 -25
  209. package/src/materials/nodes/manager/NodeMaterialObserver.js +10 -4
  210. package/src/math/Line3.js +3 -5
  211. package/src/math/MathUtils.js +10 -10
  212. package/src/math/Matrix4.js +74 -65
  213. package/src/math/Quaternion.js +3 -29
  214. package/src/math/Sphere.js +1 -1
  215. package/src/math/Vector3.js +3 -5
  216. package/src/math/interpolants/BezierInterpolant.js +108 -0
  217. package/src/nodes/Nodes.js +87 -68
  218. package/src/nodes/TSL.js +6 -6
  219. package/src/nodes/accessors/Arrays.js +1 -1
  220. package/src/nodes/accessors/BatchNode.js +10 -10
  221. package/src/nodes/accessors/Bitangent.js +5 -5
  222. package/src/nodes/accessors/BufferAttributeNode.js +98 -12
  223. package/src/nodes/accessors/BufferNode.js +29 -2
  224. package/src/nodes/accessors/Camera.js +149 -28
  225. package/src/nodes/accessors/ClippingNode.js +4 -4
  226. package/src/nodes/accessors/CubeTextureNode.js +20 -1
  227. package/src/nodes/accessors/InstanceNode.js +148 -43
  228. package/src/nodes/accessors/MaterialNode.js +9 -1
  229. package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
  230. package/src/nodes/accessors/ModelNode.js +1 -1
  231. package/src/nodes/accessors/Normal.js +11 -11
  232. package/src/nodes/accessors/Position.js +34 -2
  233. package/src/nodes/accessors/ReferenceBaseNode.js +4 -4
  234. package/src/nodes/accessors/ReferenceNode.js +4 -4
  235. package/src/nodes/accessors/RendererReferenceNode.js +1 -2
  236. package/src/nodes/accessors/SceneProperties.js +53 -0
  237. package/src/nodes/accessors/SkinningNode.js +27 -26
  238. package/src/nodes/accessors/StorageBufferNode.js +4 -21
  239. package/src/nodes/accessors/StorageTextureNode.js +37 -1
  240. package/src/nodes/accessors/Tangent.js +4 -14
  241. package/src/nodes/accessors/Texture3DNode.js +32 -35
  242. package/src/nodes/accessors/TextureNode.js +58 -22
  243. package/src/nodes/accessors/UniformArrayNode.js +4 -2
  244. package/src/nodes/accessors/UserDataNode.js +1 -2
  245. package/src/nodes/accessors/VertexColorNode.js +1 -2
  246. package/src/nodes/code/FunctionNode.js +1 -2
  247. package/src/nodes/core/ArrayNode.js +20 -1
  248. package/src/nodes/core/AssignNode.js +2 -2
  249. package/src/nodes/core/AttributeNode.js +2 -2
  250. package/src/nodes/core/ContextNode.js +103 -4
  251. package/src/nodes/core/MRTNode.js +48 -2
  252. package/src/nodes/core/Node.js +29 -3
  253. package/src/nodes/core/NodeBuilder.js +170 -53
  254. package/src/nodes/core/NodeError.js +28 -0
  255. package/src/nodes/core/NodeFrame.js +12 -4
  256. package/src/nodes/core/NodeUtils.js +10 -8
  257. package/src/nodes/core/OutputStructNode.js +12 -10
  258. package/src/nodes/core/ParameterNode.js +3 -3
  259. package/src/nodes/core/PropertyNode.js +19 -3
  260. package/src/nodes/core/StackNode.js +65 -16
  261. package/src/nodes/core/StackTrace.js +139 -0
  262. package/src/nodes/core/StructNode.js +16 -2
  263. package/src/nodes/core/StructTypeNode.js +11 -17
  264. package/src/nodes/core/SubBuildNode.js +1 -1
  265. package/src/nodes/core/UniformNode.js +21 -5
  266. package/src/nodes/core/VarNode.js +47 -22
  267. package/src/nodes/core/VaryingNode.js +1 -18
  268. package/src/nodes/display/BlendModes.js +0 -64
  269. package/src/nodes/display/ColorAdjustment.js +17 -0
  270. package/src/nodes/display/ColorSpaceNode.js +3 -3
  271. package/src/nodes/display/NormalMapNode.js +39 -4
  272. package/src/nodes/display/PassNode.js +98 -9
  273. package/src/nodes/display/RenderOutputNode.js +3 -3
  274. package/src/nodes/display/ScreenNode.js +3 -1
  275. package/src/nodes/display/ToneMappingNode.js +1 -1
  276. package/src/nodes/display/ToonOutlinePassNode.js +2 -2
  277. package/src/nodes/display/ViewportDepthNode.js +52 -4
  278. package/src/nodes/display/ViewportTextureNode.js +21 -4
  279. package/src/nodes/fog/Fog.js +18 -35
  280. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +3 -3
  281. package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
  282. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  283. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +1 -1
  284. package/src/nodes/functions/PhysicalLightingModel.js +126 -45
  285. package/src/nodes/geometry/RangeNode.js +4 -2
  286. package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -2
  287. package/src/nodes/gpgpu/ComputeNode.js +5 -4
  288. package/src/nodes/gpgpu/SubgroupFunctionNode.js +1 -1
  289. package/src/nodes/gpgpu/WorkgroupInfoNode.js +4 -4
  290. package/src/nodes/lighting/AnalyticLightNode.js +53 -0
  291. package/src/nodes/lighting/EnvironmentNode.js +28 -3
  292. package/src/nodes/lighting/LightsNode.js +2 -2
  293. package/src/nodes/lighting/PointShadowNode.js +162 -149
  294. package/src/nodes/lighting/ShadowFilterNode.js +53 -65
  295. package/src/nodes/lighting/ShadowNode.js +97 -41
  296. package/src/nodes/math/BitcountNode.js +433 -0
  297. package/src/nodes/math/ConditionalNode.js +2 -2
  298. package/src/nodes/math/MathNode.js +3 -40
  299. package/src/nodes/math/OperatorNode.js +2 -1
  300. package/src/nodes/math/PackFloatNode.js +98 -0
  301. package/src/nodes/math/UnpackFloatNode.js +96 -0
  302. package/src/nodes/pmrem/PMREMNode.js +1 -1
  303. package/src/nodes/pmrem/PMREMUtils.js +9 -15
  304. package/src/nodes/tsl/TSLCore.js +17 -14
  305. package/src/nodes/utils/ArrayElementNode.js +13 -0
  306. package/src/nodes/utils/DebugNode.js +11 -11
  307. package/src/nodes/utils/EventNode.js +1 -2
  308. package/src/nodes/utils/JoinNode.js +2 -2
  309. package/src/nodes/utils/LoopNode.js +1 -1
  310. package/src/nodes/utils/MemberNode.js +1 -1
  311. package/src/nodes/utils/Packing.js +13 -1
  312. package/src/nodes/utils/PostProcessingUtils.js +33 -1
  313. package/src/nodes/utils/RTTNode.js +1 -1
  314. package/src/nodes/utils/ReflectorNode.js +3 -4
  315. package/src/nodes/utils/SampleNode.js +1 -1
  316. package/src/nodes/utils/SpriteSheetUV.js +35 -0
  317. package/src/nodes/utils/UVUtils.js +28 -0
  318. package/src/objects/BatchedMesh.js +27 -14
  319. package/src/objects/InstancedMesh.js +11 -0
  320. package/src/objects/Line.js +1 -1
  321. package/src/objects/Mesh.js +1 -1
  322. package/src/objects/Points.js +1 -1
  323. package/src/objects/Skeleton.js +9 -0
  324. package/src/renderers/WebGLRenderer.js +178 -92
  325. package/src/renderers/common/Backend.js +29 -0
  326. package/src/renderers/common/Background.js +24 -11
  327. package/src/renderers/common/BindGroup.js +1 -9
  328. package/src/renderers/common/Binding.js +11 -0
  329. package/src/renderers/common/Bindings.js +27 -12
  330. package/src/renderers/common/BlendMode.js +143 -0
  331. package/src/renderers/common/Buffer.js +40 -0
  332. package/src/renderers/common/BundleGroup.js +1 -1
  333. package/src/renderers/common/ChainMap.js +30 -6
  334. package/src/renderers/common/CubeRenderTarget.js +50 -6
  335. package/src/renderers/common/Geometries.js +29 -3
  336. package/src/renderers/common/Lighting.js +5 -21
  337. package/src/renderers/common/Pipelines.js +4 -4
  338. package/src/renderers/common/PostProcessing.js +8 -206
  339. package/src/renderers/common/RenderBundles.js +2 -1
  340. package/src/renderers/common/RenderContext.js +16 -0
  341. package/src/renderers/common/RenderContexts.js +33 -49
  342. package/src/renderers/common/RenderLists.js +2 -1
  343. package/src/renderers/common/RenderObject.js +15 -3
  344. package/src/renderers/common/RenderObjectPipeline.js +40 -0
  345. package/src/renderers/common/RenderObjects.js +18 -2
  346. package/src/renderers/common/RenderPipeline.js +203 -17
  347. package/src/renderers/common/Renderer.js +257 -72
  348. package/src/renderers/common/Sampler.js +4 -4
  349. package/src/renderers/common/StorageBuffer.js +13 -1
  350. package/src/renderers/common/Textures.js +17 -1
  351. package/src/renderers/common/TimestampQueryPool.js +5 -3
  352. package/src/renderers/common/Uniform.js +8 -0
  353. package/src/renderers/common/UniformsGroup.js +61 -0
  354. package/src/renderers/common/XRManager.js +3 -2
  355. package/src/renderers/common/extras/PMREMGenerator.js +2 -8
  356. package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
  357. package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +18 -6
  358. package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
  359. package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
  360. package/src/renderers/shaders/DFGLUTData.js +19 -34
  361. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
  362. package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
  363. package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
  364. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
  365. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
  366. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +7 -11
  367. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +5 -2
  368. package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
  369. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
  370. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
  371. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +112 -51
  372. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
  373. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +225 -186
  374. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  375. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  376. package/src/renderers/shaders/ShaderChunk.js +3 -3
  377. package/src/renderers/shaders/ShaderLib/depth.glsl.js +3 -0
  378. package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
  379. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
  380. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
  381. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
  382. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
  383. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
  384. package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
  385. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
  386. package/src/renderers/shaders/ShaderLib.js +7 -5
  387. package/src/renderers/shaders/UniformsLib.js +0 -3
  388. package/src/renderers/webgl/WebGLBackground.js +2 -2
  389. package/src/renderers/webgl/WebGLBindingStates.js +99 -27
  390. package/src/renderers/webgl/WebGLCapabilities.js +3 -4
  391. package/src/renderers/webgl/WebGLEnvironments.js +228 -0
  392. package/src/renderers/webgl/WebGLGeometries.js +10 -7
  393. package/src/renderers/webgl/WebGLLights.js +18 -1
  394. package/src/renderers/webgl/WebGLMaterials.js +12 -0
  395. package/src/renderers/webgl/WebGLObjects.js +3 -1
  396. package/src/renderers/webgl/WebGLOutput.js +267 -0
  397. package/src/renderers/webgl/WebGLProgram.js +45 -109
  398. package/src/renderers/webgl/WebGLPrograms.js +45 -49
  399. package/src/renderers/webgl/WebGLRenderLists.js +15 -0
  400. package/src/renderers/webgl/WebGLShadowMap.js +188 -24
  401. package/src/renderers/webgl/WebGLState.js +32 -37
  402. package/src/renderers/webgl/WebGLTextures.js +89 -28
  403. package/src/renderers/webgl/WebGLUniforms.js +40 -3
  404. package/src/renderers/webgl/WebGLUtils.js +6 -2
  405. package/src/renderers/webgl-fallback/WebGLBackend.js +148 -18
  406. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +156 -35
  407. package/src/renderers/webgl-fallback/utils/WebGLState.js +181 -5
  408. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +5 -3
  409. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +9 -9
  410. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +6 -2
  411. package/src/renderers/webgpu/WebGPUBackend.js +119 -13
  412. package/src/renderers/webgpu/WebGPURenderer.js +2 -1
  413. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +322 -68
  414. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +4 -17
  415. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +357 -200
  416. package/src/renderers/webgpu/utils/WebGPUConstants.js +2 -0
  417. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +61 -23
  418. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +152 -200
  419. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +65 -42
  420. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +7 -7
  421. package/src/renderers/webgpu/utils/WebGPUUtils.js +17 -11
  422. package/src/renderers/webxr/WebXRManager.js +2 -2
  423. package/src/textures/CubeDepthTexture.js +76 -0
  424. package/src/textures/Source.js +1 -1
  425. package/src/textures/Texture.js +3 -3
  426. package/src/utils.js +258 -3
  427. package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
  428. package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
  429. package/examples/jsm/shaders/GodRaysShader.js +0 -333
  430. package/src/nodes/accessors/SceneNode.js +0 -145
  431. package/src/nodes/code/ScriptableNode.js +0 -726
  432. package/src/nodes/code/ScriptableValueNode.js +0 -253
  433. package/src/nodes/display/PosterizeNode.js +0 -65
  434. package/src/nodes/functions/BSDF/DFGApprox.js +0 -71
  435. package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
  436. package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
  437. package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
@@ -0,0 +1,68 @@
1
+ import { interleavedGradientNoise, Fn, vec2, vec4, mix, uv, Loop, premultiplyAlpha, unpremultiplyAlpha, int, float, nodeObject, convertToTexture, screenCoordinate } from 'three/tsl';
2
+
3
+ /**
4
+ * This TSL function blurs an image in a circular pattern, radiating from a configurable center point in screen space.
5
+ *
6
+ * Radial blurs can be used for different kind of effects like producing simple faked lighting effects also known as
7
+ * "light shafts". The major limitation of this specific usage is the center point can only be defined in 2D so the
8
+ * effect does not honor the depth of 3D objects. Consequently, it is not intended for physically correct lit scenes.
9
+ *
10
+ * @tsl
11
+ * @function
12
+ * @param {Node<vec4>} textureNode - The texture node that should be blurred.
13
+ * @param {Object} [options={}] - Additional options for the radial blur effect.
14
+ * @param {Node<vec2>} [options.center=vec2(0.5, 0.5)] - The center of the light in screen uvs.
15
+ * @param {Node<int>} [options.weight=float(0.9)] - Base weight factor for each sample in the range `[0,1]`.
16
+ * @param {Node<int>} [options.decay=float(0.95)] - Decreases the weight factor so each iteration adds less to the sum. Must be in the range `[0,1]`.
17
+ * If you increase the sample count, you have to increase this option as well to avoid a darking effect.
18
+ * @param {Node<int>} [options.count=int(32)] - The number if iterations. Should be in the range `[16,64]`.
19
+ * @param {Node<int>} [options.exposure=float(5)] - Exposure control of the blur.
20
+ * @return {Node<vec4>} The blurred texture node.
21
+ */
22
+ export const radialBlur = /*#__PURE__*/ Fn( ( [ textureNode, options = {} ] ) => {
23
+
24
+ textureNode = convertToTexture( textureNode );
25
+
26
+ const center = nodeObject( options.center ) || vec2( 0.5, 0.5 );
27
+ const weight = nodeObject( options.weight ) || float( 0.9 );
28
+ const decay = nodeObject( options.decay ) || float( 0.95 );
29
+ const count = nodeObject( options.count ) || int( 32 );
30
+ const exposure = nodeObject( options.exposure ) || float( 5 );
31
+ const premultipliedAlpha = options.premultipliedAlpha || false;
32
+
33
+ const tap = ( uv ) => {
34
+
35
+ const sample = textureNode.sample( uv );
36
+
37
+ return premultipliedAlpha ? premultiplyAlpha( sample ) : sample;
38
+
39
+ };
40
+
41
+ const sampleUv = vec2( textureNode.uvNode || uv() );
42
+
43
+ const base = tap( sampleUv ).toConst();
44
+ const blur = vec4().toVar();
45
+ const offset = center.sub( sampleUv ).div( count ).toConst();
46
+ const w = float( weight ).toVar();
47
+
48
+ const noise = interleavedGradientNoise( screenCoordinate );
49
+ sampleUv.addAssign( offset.mul( noise ) ); // mitigate banding
50
+
51
+ Loop( { start: int( 0 ), end: int( count ), type: 'int', condition: '<' }, () => {
52
+
53
+ sampleUv.addAssign( offset );
54
+ const sample = tap( sampleUv );
55
+
56
+ blur.addAssign( sample.mul( w ) );
57
+ w.mulAssign( decay );
58
+
59
+ } );
60
+
61
+ blur.divAssign( count );
62
+ blur.mulAssign( exposure );
63
+
64
+ const color = mix( blur, base.mul( 2 ), 0.5 );
65
+
66
+ return premultipliedAlpha ? unpremultiplyAlpha( color ) : color;
67
+
68
+ } );
@@ -1,5 +1,5 @@
1
1
  import { TextureLoader } from 'three';
2
- import { Fn, int, ivec2, textureLoad } from 'three/tsl';
2
+ import { Fn, int, ivec2, textureLoad, screenUV, screenSize, mod, floor, float, vec3 } from 'three/tsl';
3
3
 
4
4
  /**
5
5
  * @module Bayer
@@ -32,3 +32,42 @@ export const bayer16 = Fn( ( [ uv ] ) => {
32
32
  return textureLoad( bayer16Texture, ivec2( uv ).mod( int( 16 ) ) );
33
33
 
34
34
  } );
35
+
36
+ /**
37
+ * This TSL function applies Bayer dithering to a color input. It uses a 4x4 Bayer matrix
38
+ * pattern to add structured noise before color quantization, which helps reduce visible
39
+ * color banding when limiting color depth.
40
+ *
41
+ * @tsl
42
+ * @function
43
+ * @param {Node<vec3>} color - The input color to apply dithering to.
44
+ * @param {Node<float>} [steps=32] - The number of color steps per channel.
45
+ * @return {Node<vec3>} The dithered color ready for quantization.
46
+ *
47
+ * @example
48
+ * // Apply dithering with posterize
49
+ * const ditheredColor = bayerDither( inputColor, 32 );
50
+ * const finalColor = posterize( ditheredColor, 32 );
51
+ */
52
+ export const bayerDither = Fn( ( [ color, steps = float( 32.0 ) ] ) => {
53
+
54
+ const screenPos = screenUV.mul( screenSize );
55
+ const x = mod( floor( screenPos.x ), float( 4.0 ) );
56
+ const y = mod( floor( screenPos.y ), float( 4.0 ) );
57
+
58
+ // Simplified Bayer matrix approximation
59
+ const bayer = mod(
60
+ floor( x.add( 1.0 ) ).mul( floor( y.add( 1.0 ) ) ).mul( 17.0 ),
61
+ 16.0
62
+ ).div( 16.0 ).sub( 0.5 );
63
+
64
+ // Apply dither offset before quantization
65
+ const ditherOffset = bayer.div( steps );
66
+
67
+ return vec3(
68
+ color.r.add( ditherOffset ),
69
+ color.g.add( ditherOffset ),
70
+ color.b.add( ditherOffset )
71
+ );
72
+
73
+ } );
@@ -119,7 +119,7 @@ class LDrawUtils {
119
119
 
120
120
  object.traverse( c => {
121
121
 
122
- if ( c.isMesh | c.isLineSegments ) {
122
+ if ( c.isMesh || c.isLineSegments ) {
123
123
 
124
124
  const elemSize = c.isMesh ? 3 : 2;
125
125
 
@@ -6,10 +6,8 @@ import {
6
6
  OrthographicCamera,
7
7
  PlaneGeometry,
8
8
  Scene,
9
- ShaderMaterial,
10
- UniformsUtils
9
+ ShaderMaterial
11
10
  } from 'three';
12
- import { UnpackDepthRGBAShader } from '../shaders/UnpackDepthRGBAShader.js';
13
11
 
14
12
  /**
15
13
  * This is a helper for visualising a given light's shadow map.
@@ -57,13 +55,29 @@ class ShadowMapViewer {
57
55
  const scene = new Scene();
58
56
 
59
57
  //HUD for shadow map
60
- const shader = UnpackDepthRGBAShader;
61
-
62
- const uniforms = UniformsUtils.clone( shader.uniforms );
63
58
  const material = new ShaderMaterial( {
64
- uniforms: uniforms,
65
- vertexShader: shader.vertexShader,
66
- fragmentShader: shader.fragmentShader
59
+ uniforms: {
60
+ tDiffuse: { value: null },
61
+ opacity: { value: 1.0 }
62
+ },
63
+ vertexShader: /* glsl */`
64
+ varying vec2 vUv;
65
+ void main() {
66
+ vUv = uv;
67
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
68
+ }`,
69
+ fragmentShader: /* glsl */`
70
+ uniform float opacity;
71
+ uniform sampler2D tDiffuse;
72
+ varying vec2 vUv;
73
+ void main() {
74
+ float depth = texture2D( tDiffuse, vUv ).r;
75
+ #ifdef USE_REVERSED_DEPTH_BUFFER
76
+ gl_FragColor = vec4( vec3( depth ), opacity );
77
+ #else
78
+ gl_FragColor = vec4( vec3( 1.0 - depth ), opacity );
79
+ #endif
80
+ }`
67
81
  } );
68
82
  const plane = new PlaneGeometry( frame.width, frame.height );
69
83
  const mesh = new Mesh( plane, material );
@@ -177,7 +191,7 @@ class ShadowMapViewer {
177
191
  //always end up with the scene's first added shadow casting light's shadowMap
178
192
  //in the shader
179
193
  //See: https://github.com/mrdoob/three.js/issues/5932
180
- uniforms.tDiffuse.value = light.shadow.map.texture;
194
+ material.uniforms.tDiffuse.value = light.shadow.map.texture;
181
195
 
182
196
  userAutoClearSetting = renderer.autoClear;
183
197
  renderer.autoClear = false; // To allow render overlay
@@ -9,7 +9,7 @@ import {
9
9
  Scene,
10
10
  DepthTexture,
11
11
  Vector2
12
- } from 'three';
12
+ } from 'three/webgpu';
13
13
  import { uv, uniform, textureLoad } from 'three/tsl';
14
14
 
15
15
  /**
@@ -3,7 +3,7 @@ import {
3
3
  NodeMaterial,
4
4
  WebGPURenderer,
5
5
  CanvasTexture
6
- } from 'three';
6
+ } from 'three/webgpu';
7
7
  import { texture, uv } from 'three/tsl';
8
8
 
9
9
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plastic-software/three",
3
- "version": "0.181.3",
3
+ "version": "0.183.0",
4
4
  "description": "JavaScript 3D library",
5
5
  "type": "module",
6
6
  "main": "./build/three.cjs",
@@ -46,23 +46,20 @@
46
46
  "start": "npm run dev",
47
47
  "test": "npm run lint && npm run test-unit && npm run test-unit-addons",
48
48
  "build": "rollup -c utils/build/rollup.config.js",
49
+ "build-docs": "jsdoc -c utils/docs/jsdoc.config.json && npm run build-llms",
50
+ "build-llms": "node utils/llms/build.js",
49
51
  "build-module": "rollup -c utils/build/rollup.config.js --configOnlyModule",
50
- "build-docs": "jsdoc -c utils/docs/jsdoc.config.json",
51
- "dev": "node utils/build/dev.js && servez -p 8080",
52
- "dev-ssl": "node utils/build/dev.js && servez -p 8080 --ssl",
53
- "preview": "concurrently --names \"ROLLUP,HTTP\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080\"",
54
- "preview-ssl": "concurrently --names \"ROLLUP,HTTPS\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080 --ssl\"",
52
+ "dev": "node utils/build/dev.js && node utils/server.js -p 8080",
53
+ "preview": "node utils/build/preview.js",
55
54
  "lint-core": "eslint src",
56
- "lint-addons": "eslint examples/jsm --ext .js --ignore-pattern libs --ignore-pattern ifc",
57
- "lint-examples": "eslint examples --ext .html",
58
- "lint-docs": "eslint docs --ignore-pattern prettify.js",
59
- "lint-editor": "eslint editor --ignore-pattern libs",
60
- "lint-playground": "eslint playground --ignore-pattern libs",
61
- "lint-manual": "eslint manual --ignore-pattern 3rdparty --ignore-pattern prettify.js --ignore-pattern shapefile.js",
62
- "lint-test": "eslint test --ignore-pattern vendor",
63
- "lint-utils": "eslint utils --ignore-pattern prettify --ignore-pattern fuse",
55
+ "lint-addons": "eslint examples/jsm",
56
+ "lint-examples": "eslint examples",
57
+ "lint-editor": "eslint editor",
58
+ "lint-manual": "eslint manual",
59
+ "lint-test": "eslint test",
60
+ "lint-utils": "eslint utils",
64
61
  "lint": "npm run lint-core",
65
- "lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-docs -- --fix && npm run lint-editor -- --fix && npm run lint-playground -- --fix && npm run lint-manual -- --fix && npm run lint-test -- --fix && npm run lint-utils -- --fix",
62
+ "lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-editor -- --fix && npm run lint-manual -- --fix && npm run lint-test -- --fix && npm run lint-utils -- --fix",
66
63
  "test-unit": "qunit test/unit/three.source.unit.js",
67
64
  "test-unit-addons": "qunit test/unit/three.addons.unit.js",
68
65
  "test-e2e": "node test/e2e/puppeteer.js",
@@ -94,26 +91,23 @@
94
91
  },
95
92
  "homepage": "https://threejs.org/",
96
93
  "devDependencies": {
94
+ "@eslint/js": "^9.0.0",
97
95
  "@rollup/plugin-node-resolve": "^16.0.0",
98
96
  "@rollup/plugin-terser": "^0.4.0",
99
- "concurrently": "^9.0.0",
100
- "eslint": "^8.37.0",
97
+ "eslint": "^9.0.0",
101
98
  "eslint-config-mdcs": "^5.0.0",
102
99
  "eslint-plugin-compat": "^6.0.0",
103
- "eslint-plugin-html": "^8.0.0",
104
- "eslint-plugin-import": "^2.27.5",
105
- "jimp": "^1.6.0",
100
+ "eslint-plugin-html": "^8.1.3",
101
+ "eslint-plugin-jsdoc": "^62.0.0",
102
+ "globals": "^17.0.0",
103
+ "jpeg-js": "^0.4.4",
106
104
  "jsdoc": "^4.0.5",
107
105
  "magic-string": "^0.30.0",
108
- "pixelmatch": "^7.0.0",
106
+ "pngjs": "^7.0.0",
109
107
  "puppeteer": "^24.25.0",
110
108
  "qunit": "^2.19.4",
111
109
  "rollup": "^4.6.0",
112
- "rollup-plugin-filesize": "^10.0.0",
113
- "servez": "^2.2.4"
114
- },
115
- "overrides": {
116
- "jpeg-js": "^0.4.4"
110
+ "turndown": "^7.2.2"
117
111
  },
118
112
  "jspm": {
119
113
  "files": [
package/src/Three.Core.js CHANGED
@@ -3,7 +3,6 @@ import { warn } from './utils.js';
3
3
 
4
4
  export { WebGLArrayRenderTarget } from './renderers/WebGLArrayRenderTarget.js';
5
5
  export { WebGL3DRenderTarget } from './renderers/WebGL3DRenderTarget.js';
6
- export { WebGLCubeRenderTarget } from './renderers/WebGLCubeRenderTarget.js';
7
6
  export { WebGLRenderTarget } from './renderers/WebGLRenderTarget.js';
8
7
  export { WebXRController } from './renderers/webxr/WebXRController.js';
9
8
  export { FogExp2 } from './scenes/FogExp2.js';
@@ -35,6 +34,7 @@ export { CompressedCubeTexture } from './textures/CompressedCubeTexture.js';
35
34
  export { CubeTexture } from './textures/CubeTexture.js';
36
35
  export { CanvasTexture } from './textures/CanvasTexture.js';
37
36
  export { DepthTexture } from './textures/DepthTexture.js';
37
+ export { CubeDepthTexture } from './textures/CubeDepthTexture.js';
38
38
  export { ExternalTexture } from './textures/ExternalTexture.js';
39
39
  export { Texture } from './textures/Texture.js';
40
40
  export * from './geometries/Geometries.js';
@@ -110,6 +110,7 @@ export { QuaternionLinearInterpolant } from './math/interpolants/QuaternionLinea
110
110
  export { LinearInterpolant } from './math/interpolants/LinearInterpolant.js';
111
111
  export { DiscreteInterpolant } from './math/interpolants/DiscreteInterpolant.js';
112
112
  export { CubicInterpolant } from './math/interpolants/CubicInterpolant.js';
113
+ export { BezierInterpolant } from './math/interpolants/BezierInterpolant.js';
113
114
  export { Interpolant } from './math/Interpolant.js';
114
115
  export { Triangle } from './math/Triangle.js';
115
116
  export { MathUtils } from './math/MathUtils.js';
package/src/Three.TSL.js CHANGED
@@ -7,7 +7,7 @@ export const BasicShadowFilter = TSL.BasicShadowFilter;
7
7
  export const Break = TSL.Break;
8
8
  export const Const = TSL.Const;
9
9
  export const Continue = TSL.Continue;
10
- export const DFGApprox = TSL.DFGApprox;
10
+ export const DFGLUT = TSL.DFGLUT;
11
11
  export const D_GGX = TSL.D_GGX;
12
12
  export const Discard = TSL.Discard;
13
13
  export const EPSILON = TSL.EPSILON;
@@ -29,7 +29,6 @@ export const HALF_PI = TSL.HALF_PI;
29
29
  export const PointShadowFilter = TSL.PointShadowFilter;
30
30
  export const Return = TSL.Return;
31
31
  export const Schlick_to_F0 = TSL.Schlick_to_F0;
32
- export const ScriptableNodeResources = TSL.ScriptableNodeResources;
33
32
  export const ShaderNode = TSL.ShaderNode;
34
33
  export const Stack = TSL.Stack;
35
34
  export const Switch = TSL.Switch;
@@ -58,7 +57,6 @@ export const arrayBuffer = TSL.arrayBuffer;
58
57
  export const asin = TSL.asin;
59
58
  export const assign = TSL.assign;
60
59
  export const atan = TSL.atan;
61
- export const atan2 = TSL.atan2;
62
60
  export const atomicAdd = TSL.atomicAdd;
63
61
  export const atomicAnd = TSL.atomicAnd;
64
62
  export const atomicFunc = TSL.atomicFunc;
@@ -98,8 +96,9 @@ export const bool = TSL.bool;
98
96
  export const buffer = TSL.buffer;
99
97
  export const bufferAttribute = TSL.bufferAttribute;
100
98
  export const bumpMap = TSL.bumpMap;
101
- export const burn = TSL.burn;
102
99
  export const builtin = TSL.builtin;
100
+ export const builtinAOContext = TSL.builtinAOContext;
101
+ export const builtinShadowContext = TSL.builtinShadowContext;
103
102
  export const bvec2 = TSL.bvec2;
104
103
  export const bvec3 = TSL.bvec3;
105
104
  export const bvec4 = TSL.bvec4;
@@ -125,6 +124,7 @@ export const clamp = TSL.clamp;
125
124
  export const clearcoat = TSL.clearcoat;
126
125
  export const clearcoatNormalView = TSL.clearcoatNormalView;
127
126
  export const clearcoatRoughness = TSL.clearcoatRoughness;
127
+ export const clipSpace = TSL.clipSpace;
128
128
  export const code = TSL.code;
129
129
  export const color = TSL.color;
130
130
  export const colorSpaceToWorking = TSL.colorSpaceToWorking;
@@ -136,11 +136,13 @@ export const context = TSL.context;
136
136
  export const convert = TSL.convert;
137
137
  export const convertColorSpace = TSL.convertColorSpace;
138
138
  export const convertToTexture = TSL.convertToTexture;
139
+ export const countLeadingZeros = TSL.countLeadingZeros;
140
+ export const countOneBits = TSL.countOneBits;
141
+ export const countTrailingZeros = TSL.countTrailingZeros;
139
142
  export const cos = TSL.cos;
140
143
  export const cross = TSL.cross;
141
144
  export const cubeTexture = TSL.cubeTexture;
142
145
  export const cubeTextureBase = TSL.cubeTextureBase;
143
- export const cubeToUV = TSL.cubeToUV;
144
146
  export const dFdx = TSL.dFdx;
145
147
  export const dFdy = TSL.dFdy;
146
148
  export const dashSize = TSL.dashSize;
@@ -165,17 +167,16 @@ export const directionToFaceDirection = TSL.directionToFaceDirection;
165
167
  export const dispersion = TSL.dispersion;
166
168
  export const distance = TSL.distance;
167
169
  export const div = TSL.div;
168
- export const dodge = TSL.dodge;
169
170
  export const dot = TSL.dot;
170
171
  export const drawIndex = TSL.drawIndex;
171
172
  export const dynamicBufferAttribute = TSL.dynamicBufferAttribute;
172
173
  export const element = TSL.element;
173
174
  export const emissive = TSL.emissive;
174
175
  export const equal = TSL.equal;
175
- export const equals = TSL.equals;
176
176
  export const equirectUV = TSL.equirectUV;
177
177
  export const exp = TSL.exp;
178
178
  export const exp2 = TSL.exp2;
179
+ export const exponentialHeightFogFactor = TSL.exponentialHeightFogFactor;
179
180
  export const expression = TSL.expression;
180
181
  export const faceDirection = TSL.faceDirection;
181
182
  export const faceForward = TSL.faceForward;
@@ -199,6 +200,7 @@ export const getDistanceAttenuation = TSL.getDistanceAttenuation;
199
200
  export const getGeometryRoughness = TSL.getGeometryRoughness;
200
201
  export const getNormalFromDepth = TSL.getNormalFromDepth;
201
202
  export const interleavedGradientNoise = TSL.interleavedGradientNoise;
203
+ export const vogelDiskSample = TSL.vogelDiskSample;
202
204
  export const getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;
203
205
  export const getRoughness = TSL.getRoughness;
204
206
  export const getScreenPosition = TSL.getScreenPosition;
@@ -412,8 +414,10 @@ export const oscSquare = TSL.oscSquare;
412
414
  export const oscTriangle = TSL.oscTriangle;
413
415
  export const output = TSL.output;
414
416
  export const outputStruct = TSL.outputStruct;
415
- export const overlay = TSL.overlay;
416
417
  export const overloadingFn = TSL.overloadingFn;
418
+ export const packHalf2x16 = TSL.packHalf2x16;
419
+ export const packSnorm2x16 = TSL.packSnorm2x16;
420
+ export const packUnorm2x16 = TSL.packUnorm2x16;
417
421
  export const parabola = TSL.parabola;
418
422
  export const parallaxDirection = TSL.parallaxDirection;
419
423
  export const parallaxUV = TSL.parallaxUV;
@@ -461,6 +465,7 @@ export const remapClamp = TSL.remapClamp;
461
465
  export const renderGroup = TSL.renderGroup;
462
466
  export const renderOutput = TSL.renderOutput;
463
467
  export const rendererReference = TSL.rendererReference;
468
+ export const replaceDefaultUV = TSL.replaceDefaultUV;
464
469
  export const rotate = TSL.rotate;
465
470
  export const rotateUV = TSL.rotateUV;
466
471
  export const roughness = TSL.roughness;
@@ -478,8 +483,6 @@ export const screenCoordinate = TSL.screenCoordinate;
478
483
  export const screenDPR = TSL.screenDPR;
479
484
  export const screenSize = TSL.screenSize;
480
485
  export const screenUV = TSL.screenUV;
481
- export const scriptable = TSL.scriptable;
482
- export const scriptableValue = TSL.scriptableValue;
483
486
  export const select = TSL.select;
484
487
  export const setCurrentStack = TSL.setCurrentStack;
485
488
  export const setName = TSL.setName;
@@ -510,7 +513,6 @@ export const step = TSL.step;
510
513
  export const stepElement = TSL.stepElement;
511
514
  export const storage = TSL.storage;
512
515
  export const storageBarrier = TSL.storageBarrier;
513
- export const storageObject = TSL.storageObject;
514
516
  export const storageTexture = TSL.storageTexture;
515
517
  export const string = TSL.string;
516
518
  export const struct = TSL.struct;
@@ -579,6 +581,9 @@ export const uniformCubeTexture = TSL.uniformCubeTexture;
579
581
  export const uniformGroup = TSL.uniformGroup;
580
582
  export const uniformFlow = TSL.uniformFlow;
581
583
  export const uniformTexture = TSL.uniformTexture;
584
+ export const unpackHalf2x16 = TSL.unpackHalf2x16;
585
+ export const unpackSnorm2x16 = TSL.unpackSnorm2x16;
586
+ export const unpackUnorm2x16 = TSL.unpackUnorm2x16;
582
587
  export const unpremultiplyAlpha = TSL.unpremultiplyAlpha;
583
588
  export const userData = TSL.userData;
584
589
  export const uv = TSL.uv;
@@ -599,11 +604,14 @@ export const vibrance = TSL.vibrance;
599
604
  export const viewZToLogarithmicDepth = TSL.viewZToLogarithmicDepth;
600
605
  export const viewZToOrthographicDepth = TSL.viewZToOrthographicDepth;
601
606
  export const viewZToPerspectiveDepth = TSL.viewZToPerspectiveDepth;
607
+ export const viewZToReversedOrthographicDepth = TSL.viewZToReversedOrthographicDepth;
608
+ export const viewZToReversedPerspectiveDepth = TSL.viewZToReversedPerspectiveDepth;
602
609
  export const viewport = TSL.viewport;
603
610
  export const viewportCoordinate = TSL.viewportCoordinate;
604
611
  export const viewportDepthTexture = TSL.viewportDepthTexture;
605
612
  export const viewportLinearDepth = TSL.viewportLinearDepth;
606
613
  export const viewportMipTexture = TSL.viewportMipTexture;
614
+ export const viewportOpaqueMipTexture = TSL.viewportOpaqueMipTexture;
607
615
  export const viewportResolution = TSL.viewportResolution;
608
616
  export const viewportSafeUV = TSL.viewportSafeUV;
609
617
  export const viewportSharedTexture = TSL.viewportSharedTexture;
@@ -6,6 +6,7 @@ export { default as Lighting } from './renderers/common/Lighting.js';
6
6
  export { default as BundleGroup } from './renderers/common/BundleGroup.js';
7
7
  export { default as QuadMesh } from './renderers/common/QuadMesh.js';
8
8
  export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
9
+ export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
9
10
  export { default as PostProcessing } from './renderers/common/PostProcessing.js';
10
11
  import * as RendererUtils from './renderers/common/RendererUtils.js';
11
12
  export { RendererUtils };
@@ -20,6 +21,7 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
20
21
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
21
22
  export { default as InspectorBase } from './renderers/common/InspectorBase.js';
22
23
  export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
24
+ export { default as BlendMode } from './renderers/common/BlendMode.js';
23
25
  export { ClippingGroup } from './objects/ClippingGroup.js';
24
26
  export * from './nodes/Nodes.js';
25
27
  import * as TSL from './nodes/TSL.js';
@@ -6,9 +6,11 @@ export { default as Lighting } from './renderers/common/Lighting.js';
6
6
  export { default as BundleGroup } from './renderers/common/BundleGroup.js';
7
7
  export { default as QuadMesh } from './renderers/common/QuadMesh.js';
8
8
  export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
9
+ export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
9
10
  export { default as PostProcessing } from './renderers/common/PostProcessing.js';
10
11
  import * as RendererUtils from './renderers/common/RendererUtils.js';
11
12
  export { RendererUtils };
13
+ export { default as CubeRenderTarget } from './renderers/common/CubeRenderTarget.js';
12
14
  export { default as StorageTexture } from './renderers/common/StorageTexture.js';
13
15
  export { default as Storage3DTexture } from './renderers/common/Storage3DTexture.js';
14
16
  export { default as StorageArrayTexture } from './renderers/common/StorageArrayTexture.js';
@@ -22,6 +24,7 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
22
24
  export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
23
25
  export { default as InspectorBase } from './renderers/common/InspectorBase.js';
24
26
  export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
27
+ export { default as BlendMode } from './renderers/common/BlendMode.js';
25
28
  export { ClippingGroup } from './objects/ClippingGroup.js';
26
29
  export * from './nodes/Nodes.js';
27
30
  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';
@@ -548,7 +548,7 @@ class AnimationAction {
548
548
 
549
549
  }
550
550
 
551
- // Interna
551
+ // Internal
552
552
 
553
553
  _update( time, deltaTime, timeDirection, accuIndex ) {
554
554
 
@@ -301,7 +301,7 @@ class AnimationClip {
301
301
  * @static
302
302
  * @deprecated since r175.
303
303
  * @param {Object} animation - A serialized animation clip as JSON.
304
- * @param {Array<Bones>} bones - An array of bones.
304
+ * @param {Array<Bone>} bones - An array of bones.
305
305
  * @return {?AnimationClip} The new animation clip.
306
306
  */
307
307
  static parseAnimation( animation, bones ) {
@@ -48,6 +48,12 @@ class AnimationMixer extends EventDispatcher {
48
48
  */
49
49
  this.timeScale = 1.0;
50
50
 
51
+ if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
52
+
53
+ __THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );
54
+
55
+ }
56
+
51
57
  }
52
58
 
53
59
  _bindAction( action, prototypeAction ) {
@@ -1,5 +1,6 @@
1
1
  import { Quaternion } from '../math/Quaternion.js';
2
2
  import { AdditiveAnimationBlendMode } from '../constants.js';
3
+ import { isTypedArray } from '../utils.js';
3
4
 
4
5
  /**
5
6
  * Converts an array to a specific type.
@@ -22,18 +23,6 @@ function convertArray( array, type ) {
22
23
 
23
24
  }
24
25
 
25
- /**
26
- * Returns `true` if the given object is a typed array.
27
- *
28
- * @param {any} object - The object to check.
29
- * @return {boolean} Whether the given object is a typed array.
30
- */
31
- function isTypedArray( object ) {
32
-
33
- return ArrayBuffer.isView( object ) && ! ( object instanceof DataView );
34
-
35
- }
36
-
37
26
  /**
38
27
  * Returns an array by which times and values can be sorted.
39
28
  *