@plastic-software/three 0.167.4 → 0.174.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 (747) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/build/three.cjs +36217 -23964
  4. package/build/three.core.js +48830 -0
  5. package/build/three.core.min.js +6 -0
  6. package/build/three.module.js +10175 -46744
  7. package/build/three.module.min.js +2 -3
  8. package/build/three.tsl.js +550 -0
  9. package/build/three.tsl.min.js +6 -0
  10. package/build/three.webgpu.js +44348 -50671
  11. package/build/three.webgpu.min.js +2 -3
  12. package/build/three.webgpu.nodes.js +70301 -0
  13. package/build/three.webgpu.nodes.min.js +6 -0
  14. package/examples/jsm/Addons.js +3 -15
  15. package/examples/jsm/animation/AnimationClipCreator.js +1 -1
  16. package/examples/jsm/animation/CCDIKSolver.js +61 -11
  17. package/examples/jsm/capabilities/WebGL.js +27 -21
  18. package/examples/jsm/capabilities/WebGPU.js +1 -10
  19. package/examples/jsm/controls/ArcballControls.js +262 -231
  20. package/examples/jsm/controls/DragControls.js +1 -1
  21. package/examples/jsm/controls/FirstPersonControls.js +175 -163
  22. package/examples/jsm/controls/FlyControls.js +194 -188
  23. package/examples/jsm/controls/OrbitControls.js +801 -777
  24. package/examples/jsm/controls/PointerLockControls.js +26 -20
  25. package/examples/jsm/controls/TrackballControls.js +469 -448
  26. package/examples/jsm/controls/TransformControls.js +119 -68
  27. package/examples/jsm/csm/CSM.js +2 -2
  28. package/examples/jsm/csm/CSMFrustum.js +7 -4
  29. package/examples/jsm/csm/CSMHelper.js +2 -0
  30. package/examples/jsm/csm/CSMShadowNode.js +442 -0
  31. package/examples/jsm/curves/NURBSCurve.js +33 -2
  32. package/examples/jsm/curves/NURBSUtils.js +3 -0
  33. package/examples/jsm/effects/AnaglyphEffect.js +6 -13
  34. package/examples/jsm/effects/OutlineEffect.js +1 -1
  35. package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
  36. package/examples/jsm/effects/StereoEffect.js +6 -1
  37. package/examples/jsm/exporters/DRACOExporter.js +4 -2
  38. package/examples/jsm/exporters/EXRExporter.js +19 -11
  39. package/examples/jsm/exporters/GLTFExporter.js +181 -109
  40. package/examples/jsm/exporters/KTX2Exporter.js +54 -23
  41. package/examples/jsm/exporters/OBJExporter.js +5 -1
  42. package/examples/jsm/exporters/PLYExporter.js +11 -9
  43. package/examples/jsm/exporters/USDZExporter.js +50 -11
  44. package/examples/jsm/geometries/DecalGeometry.js +73 -21
  45. package/examples/jsm/geometries/TextGeometry.js +1 -12
  46. package/examples/jsm/helpers/LightProbeHelper.js +43 -44
  47. package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
  48. package/examples/jsm/helpers/TextureHelperGPU.js +185 -0
  49. package/examples/jsm/helpers/VertexNormalsHelper.js +2 -0
  50. package/examples/jsm/interactive/HTMLMesh.js +1 -0
  51. package/examples/jsm/interactive/InteractiveGroup.js +108 -51
  52. package/examples/jsm/interactive/SelectionHelper.js +3 -1
  53. package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
  54. package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
  55. package/examples/jsm/libs/demuxer_mp4.js +109 -0
  56. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  57. package/examples/jsm/lighting/TiledLighting.js +18 -0
  58. package/examples/jsm/lights/LightProbeGenerator.js +26 -12
  59. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
  60. package/examples/jsm/lines/LineGeometry.js +25 -0
  61. package/examples/jsm/lines/LineMaterial.js +0 -1
  62. package/examples/jsm/lines/LineSegmentsGeometry.js +2 -0
  63. package/examples/jsm/lines/webgpu/Line2.js +2 -1
  64. package/examples/jsm/lines/webgpu/LineSegments2.js +16 -21
  65. package/examples/jsm/lines/webgpu/Wireframe.js +57 -0
  66. package/examples/jsm/loaders/3DMLoader.js +1 -0
  67. package/examples/jsm/loaders/3MFLoader.js +104 -2
  68. package/examples/jsm/loaders/BVHLoader.js +1 -1
  69. package/examples/jsm/loaders/ColladaLoader.js +15 -12
  70. package/examples/jsm/loaders/DDSLoader.js +42 -0
  71. package/examples/jsm/loaders/DRACOLoader.js +3 -1
  72. package/examples/jsm/loaders/FBXLoader.js +71 -22
  73. package/examples/jsm/loaders/GCodeLoader.js +4 -2
  74. package/examples/jsm/loaders/GLTFLoader.js +29 -14
  75. package/examples/jsm/loaders/KTX2Loader.js +160 -58
  76. package/examples/jsm/loaders/KTXLoader.js +4 -4
  77. package/examples/jsm/loaders/LDrawLoader.js +22 -136
  78. package/examples/jsm/loaders/LottieLoader.js +2 -1
  79. package/examples/jsm/loaders/MTLLoader.js +27 -7
  80. package/examples/jsm/loaders/MaterialXLoader.js +40 -14
  81. package/examples/jsm/loaders/NRRDLoader.js +1 -1
  82. package/examples/jsm/loaders/OBJLoader.js +5 -3
  83. package/examples/jsm/loaders/PCDLoader.js +14 -13
  84. package/examples/jsm/loaders/PDBLoader.js +3 -2
  85. package/examples/jsm/loaders/PLYLoader.js +15 -12
  86. package/examples/jsm/loaders/PVRLoader.js +1 -1
  87. package/examples/jsm/loaders/STLLoader.js +3 -2
  88. package/examples/jsm/loaders/SVGLoader.js +2 -2
  89. package/examples/jsm/loaders/TDSLoader.js +17 -18
  90. package/examples/jsm/loaders/VRMLLoader.js +17 -17
  91. package/examples/jsm/loaders/VTKLoader.js +4 -3
  92. package/examples/jsm/loaders/XYZLoader.js +3 -2
  93. package/examples/jsm/loaders/lwo/IFFParser.js +4 -4
  94. package/examples/jsm/materials/LDrawConditionalLineMaterial.js +143 -0
  95. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +114 -0
  96. package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
  97. package/examples/jsm/math/ColorSpaces.js +76 -0
  98. package/examples/jsm/math/ConvexHull.js +1 -1
  99. package/examples/jsm/math/OBB.js +17 -0
  100. package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
  101. package/examples/jsm/misc/ProgressiveLightMap.js +54 -41
  102. package/examples/jsm/misc/ProgressiveLightMapGPU.js +294 -0
  103. package/examples/jsm/misc/Timer.js +27 -12
  104. package/examples/jsm/misc/Volume.js +28 -18
  105. package/examples/jsm/misc/VolumeSlice.js +19 -16
  106. package/examples/jsm/modifiers/CurveModifier.js +10 -8
  107. package/examples/jsm/modifiers/CurveModifierGPU.js +235 -0
  108. package/examples/jsm/modifiers/SimplifyModifier.js +2 -2
  109. package/examples/jsm/objects/GroundedSkybox.js +4 -4
  110. package/examples/jsm/objects/LensflareMesh.js +324 -0
  111. package/examples/jsm/objects/Reflector.js +5 -2
  112. package/examples/jsm/objects/Sky.js +2 -2
  113. package/examples/jsm/objects/SkyMesh.js +14 -14
  114. package/examples/jsm/objects/Water2.js +1 -1
  115. package/examples/jsm/objects/Water2Mesh.js +11 -9
  116. package/examples/jsm/objects/WaterMesh.js +38 -33
  117. package/examples/jsm/physics/JoltPhysics.js +8 -8
  118. package/examples/jsm/physics/RapierPhysics.js +5 -5
  119. package/examples/jsm/postprocessing/AfterimagePass.js +14 -3
  120. package/examples/jsm/postprocessing/BloomPass.js +2 -2
  121. package/examples/jsm/postprocessing/EffectComposer.js +1 -2
  122. package/examples/jsm/postprocessing/OutlinePass.js +37 -51
  123. package/examples/jsm/postprocessing/OutputPass.js +2 -0
  124. package/examples/jsm/postprocessing/SAOPass.js +1 -2
  125. package/examples/jsm/postprocessing/SMAAPass.js +1 -3
  126. package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
  127. package/examples/jsm/postprocessing/SSAOPass.js +2 -4
  128. package/examples/jsm/postprocessing/SSRPass.js +8 -4
  129. package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -2
  130. package/examples/jsm/renderers/CSS2DRenderer.js +6 -3
  131. package/examples/jsm/renderers/CSS3DRenderer.js +7 -4
  132. package/examples/jsm/renderers/SVGRenderer.js +6 -4
  133. package/examples/jsm/shaders/BokehShader2.js +1 -1
  134. package/examples/jsm/shaders/FXAAShader.js +225 -224
  135. package/examples/jsm/shaders/GodRaysShader.js +3 -3
  136. package/examples/jsm/shaders/OutputShader.js +6 -2
  137. package/examples/jsm/shaders/SobelOperatorShader.js +1 -1
  138. package/examples/jsm/transpiler/AST.js +12 -2
  139. package/examples/jsm/transpiler/GLSLDecoder.js +77 -31
  140. package/examples/jsm/transpiler/ShaderToyDecoder.js +3 -3
  141. package/examples/jsm/transpiler/TSLEncoder.js +96 -21
  142. package/examples/jsm/tsl/display/AfterImageNode.js +243 -0
  143. package/examples/jsm/tsl/display/AnaglyphPassNode.js +106 -0
  144. package/examples/jsm/tsl/display/AnamorphicNode.js +257 -0
  145. package/{src/nodes/display/BleachBypassNode.js → examples/jsm/tsl/display/BleachBypass.js} +11 -6
  146. package/{src/nodes → examples/jsm/tsl}/display/BloomNode.js +252 -67
  147. package/examples/jsm/tsl/display/DenoiseNode.js +332 -0
  148. package/{src/nodes → examples/jsm/tsl}/display/DepthOfFieldNode.js +92 -14
  149. package/examples/jsm/tsl/display/DotScreenNode.js +103 -0
  150. package/examples/jsm/tsl/display/FXAANode.js +364 -0
  151. package/examples/jsm/tsl/display/FilmNode.js +100 -0
  152. package/examples/jsm/tsl/display/GTAONode.js +521 -0
  153. package/examples/jsm/tsl/display/GaussianBlurNode.js +393 -0
  154. package/examples/jsm/tsl/display/LensflareNode.js +278 -0
  155. package/examples/jsm/tsl/display/Lut3DNode.js +108 -0
  156. package/examples/jsm/tsl/display/MotionBlur.js +33 -0
  157. package/examples/jsm/tsl/display/OutlineNode.js +750 -0
  158. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +88 -0
  159. package/{src/nodes → examples/jsm/tsl}/display/PixelationPassNode.js +160 -28
  160. package/examples/jsm/tsl/display/RGBShiftNode.js +95 -0
  161. package/examples/jsm/tsl/display/SMAANode.js +767 -0
  162. package/examples/jsm/tsl/display/SSAAPassNode.js +357 -0
  163. package/examples/jsm/tsl/display/SSRNode.js +538 -0
  164. package/examples/jsm/tsl/display/Sepia.js +24 -0
  165. package/{src/nodes → examples/jsm/tsl}/display/SobelOperatorNode.js +66 -20
  166. package/examples/jsm/tsl/display/StereoCompositePassNode.js +184 -0
  167. package/examples/jsm/tsl/display/StereoPassNode.js +119 -0
  168. package/examples/jsm/tsl/display/TRAAPassNode.js +451 -0
  169. package/examples/jsm/tsl/display/TransitionNode.js +140 -0
  170. package/examples/jsm/tsl/display/hashBlur.js +34 -0
  171. package/examples/jsm/tsl/lighting/TiledLightsNode.js +395 -0
  172. package/examples/jsm/tsl/math/Bayer.js +18 -0
  173. package/examples/jsm/tsl/utils/Raymarching.js +65 -0
  174. package/examples/jsm/utils/BufferGeometryUtils.js +2 -2
  175. package/examples/jsm/utils/CameraUtils.js +4 -1
  176. package/examples/jsm/utils/GeometryCompressionUtils.js +38 -123
  177. package/examples/jsm/utils/GeometryUtils.js +22 -19
  178. package/examples/jsm/utils/SceneOptimizer.js +410 -0
  179. package/examples/jsm/utils/SceneUtils.js +2 -2
  180. package/examples/jsm/utils/ShadowMapViewer.js +3 -8
  181. package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
  182. package/examples/jsm/utils/SkeletonUtils.js +84 -66
  183. package/examples/jsm/utils/UVsDebug.js +1 -1
  184. package/examples/jsm/utils/{TextureUtils.js → WebGLTextureUtils.js} +1 -0
  185. package/examples/jsm/utils/WebGPUTextureUtils.js +64 -0
  186. package/examples/jsm/webxr/OculusHandPointerModel.js +21 -21
  187. package/examples/jsm/webxr/Text2D.js +6 -6
  188. package/examples/jsm/webxr/XRControllerModelFactory.js +7 -2
  189. package/examples/jsm/webxr/XREstimatedLight.js +1 -1
  190. package/package.json +14 -9
  191. package/src/Three.Core.js +182 -0
  192. package/src/Three.Legacy.js +0 -21
  193. package/src/Three.TSL.js +543 -0
  194. package/src/Three.WebGPU.Nodes.js +23 -0
  195. package/src/Three.WebGPU.js +13 -184
  196. package/src/Three.js +1 -176
  197. package/src/animation/AnimationClip.js +2 -2
  198. package/src/animation/AnimationObjectGroup.js +2 -2
  199. package/src/animation/AnimationUtils.js +1 -1
  200. package/src/animation/PropertyBinding.js +2 -2
  201. package/src/audio/Audio.js +379 -2
  202. package/src/audio/AudioAnalyser.js +58 -1
  203. package/src/audio/AudioContext.js +15 -0
  204. package/src/audio/AudioListener.js +76 -0
  205. package/src/audio/PositionalAudio.js +107 -0
  206. package/src/cameras/ArrayCamera.js +29 -0
  207. package/src/cameras/Camera.js +47 -0
  208. package/src/cameras/CubeCamera.js +66 -0
  209. package/src/cameras/OrthographicCamera.js +109 -0
  210. package/src/cameras/PerspectiveCamera.js +173 -34
  211. package/src/cameras/StereoCamera.js +48 -2
  212. package/src/constants.js +6 -6
  213. package/src/core/BufferAttribute.js +4 -9
  214. package/src/core/BufferGeometry.js +48 -8
  215. package/src/core/Clock.js +1 -1
  216. package/src/core/EventDispatcher.js +52 -8
  217. package/src/core/InterleavedBuffer.js +4 -13
  218. package/src/core/Object3D.js +573 -3
  219. package/src/core/RenderTarget.js +22 -4
  220. package/src/core/RenderTarget3D.js +22 -0
  221. package/src/core/RenderTargetArray.js +22 -0
  222. package/src/extras/Controls.js +104 -0
  223. package/src/extras/DataUtils.js +48 -8
  224. package/src/extras/Earcut.js +18 -7
  225. package/src/extras/ImageUtils.js +18 -11
  226. package/src/extras/PMREMGenerator.js +40 -9
  227. package/src/extras/ShapeUtils.js +24 -2
  228. package/src/extras/TextureUtils.js +96 -10
  229. package/src/extras/core/Curve.js +153 -53
  230. package/src/extras/core/CurvePath.js +63 -22
  231. package/src/extras/core/Interpolations.js +29 -3
  232. package/src/extras/core/Path.js +134 -1
  233. package/src/extras/core/Shape.js +66 -3
  234. package/src/extras/core/ShapePath.js +76 -0
  235. package/src/extras/curves/ArcCurve.js +22 -0
  236. package/src/extras/curves/CatmullRomCurve3.js +89 -18
  237. package/src/extras/curves/CubicBezierCurve.js +67 -0
  238. package/src/extras/curves/CubicBezierCurve3.js +50 -0
  239. package/src/extras/curves/EllipseCurve.js +102 -0
  240. package/src/extras/curves/LineCurve.js +36 -0
  241. package/src/extras/curves/LineCurve3.js +36 -0
  242. package/src/extras/curves/QuadraticBezierCurve.js +59 -0
  243. package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
  244. package/src/extras/curves/SplineCurve.js +48 -0
  245. package/src/geometries/BoxGeometry.js +38 -0
  246. package/src/geometries/CapsuleGeometry.js +34 -0
  247. package/src/geometries/CircleGeometry.js +40 -0
  248. package/src/geometries/ConeGeometry.js +38 -0
  249. package/src/geometries/CylinderGeometry.js +50 -4
  250. package/src/geometries/DodecahedronGeometry.js +32 -0
  251. package/src/geometries/EdgesGeometry.js +30 -2
  252. package/src/geometries/ExtrudeGeometry.js +52 -0
  253. package/src/geometries/IcosahedronGeometry.js +32 -0
  254. package/src/geometries/LatheGeometry.js +43 -3
  255. package/src/geometries/OctahedronGeometry.js +32 -0
  256. package/src/geometries/PlaneGeometry.js +34 -0
  257. package/src/geometries/PolyhedronGeometry.js +29 -0
  258. package/src/geometries/RingGeometry.js +36 -0
  259. package/src/geometries/ShapeGeometry.js +37 -0
  260. package/src/geometries/SphereGeometry.js +37 -0
  261. package/src/geometries/TetrahedronGeometry.js +32 -0
  262. package/src/geometries/TorusGeometry.js +35 -0
  263. package/src/geometries/TorusKnotGeometry.js +38 -0
  264. package/src/geometries/TubeGeometry.js +49 -0
  265. package/src/geometries/WireframeGeometry.js +32 -0
  266. package/src/helpers/ArrowHelper.js +60 -3
  267. package/src/helpers/AxesHelper.js +28 -0
  268. package/src/helpers/Box3Helper.js +28 -0
  269. package/src/helpers/BoxHelper.js +43 -7
  270. package/src/helpers/CameraHelper.js +61 -18
  271. package/src/helpers/DirectionalLightHelper.js +52 -0
  272. package/src/helpers/GridHelper.js +26 -0
  273. package/src/helpers/HemisphereLightHelper.js +39 -0
  274. package/src/helpers/PlaneHelper.js +33 -0
  275. package/src/helpers/PointLightHelper.js +43 -0
  276. package/src/helpers/PolarGridHelper.js +30 -0
  277. package/src/helpers/SkeletonHelper.js +39 -2
  278. package/src/helpers/SpotLightHelper.js +40 -0
  279. package/src/lights/AmbientLight.js +25 -0
  280. package/src/lights/DirectionalLight.js +57 -0
  281. package/src/lights/DirectionalLightShadow.js +15 -0
  282. package/src/lights/HemisphereLight.js +32 -0
  283. package/src/lights/Light.js +36 -0
  284. package/src/lights/LightProbe.js +43 -0
  285. package/src/lights/LightShadow.js +159 -0
  286. package/src/lights/PointLight.js +59 -0
  287. package/src/lights/PointLightShadow.js +21 -0
  288. package/src/lights/RectAreaLight.js +59 -0
  289. package/src/lights/SpotLight.js +102 -0
  290. package/src/lights/SpotLightShadow.js +24 -2
  291. package/src/lights/webgpu/IESSpotLight.js +21 -0
  292. package/src/loaders/Loader.js +132 -0
  293. package/src/loaders/MaterialLoader.js +7 -1
  294. package/src/loaders/nodes/NodeLoader.js +189 -0
  295. package/src/loaders/nodes/NodeMaterialLoader.js +108 -0
  296. package/src/loaders/nodes/NodeObjectLoader.js +151 -0
  297. package/src/materials/LineDashedMaterial.js +0 -1
  298. package/src/materials/Material.js +469 -7
  299. package/src/materials/MeshPhongMaterial.js +1 -1
  300. package/src/materials/MeshPhysicalMaterial.js +2 -2
  301. package/src/materials/MeshStandardMaterial.js +2 -2
  302. package/src/{nodes/materials → materials/nodes}/Line2NodeMaterial.js +192 -82
  303. package/src/materials/nodes/LineBasicNodeMaterial.js +46 -0
  304. package/src/materials/nodes/LineDashedNodeMaterial.js +132 -0
  305. package/src/materials/nodes/MeshBasicNodeMaterial.js +133 -0
  306. package/src/materials/nodes/MeshLambertNodeMaterial.js +82 -0
  307. package/src/materials/nodes/MeshMatcapNodeMaterial.js +77 -0
  308. package/src/materials/nodes/MeshNormalNodeMaterial.js +67 -0
  309. package/src/materials/nodes/MeshPhongNodeMaterial.js +141 -0
  310. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +517 -0
  311. package/src/materials/nodes/MeshSSSNodeMaterial.js +175 -0
  312. package/src/materials/nodes/MeshStandardNodeMaterial.js +186 -0
  313. package/src/materials/nodes/MeshToonNodeMaterial.js +66 -0
  314. package/src/materials/nodes/NodeMaterial.js +1180 -0
  315. package/src/{nodes/materials/Materials.js → materials/nodes/NodeMaterials.js} +3 -2
  316. package/src/materials/nodes/PointsNodeMaterial.js +153 -0
  317. package/src/materials/nodes/ShadowNodeMaterial.js +67 -0
  318. package/src/materials/nodes/SpriteNodeMaterial.js +198 -0
  319. package/src/materials/nodes/VolumeNodeMaterial.js +72 -0
  320. package/src/materials/nodes/manager/NodeMaterialObserver.js +509 -0
  321. package/src/math/Box2.js +177 -0
  322. package/src/math/Box3.js +243 -0
  323. package/src/math/Color.js +343 -0
  324. package/src/math/ColorManagement.js +143 -102
  325. package/src/math/Cylindrical.js +65 -6
  326. package/src/math/Euler.js +137 -4
  327. package/src/math/Frustum.js +83 -0
  328. package/src/math/Interpolant.js +87 -8
  329. package/src/math/Line3.js +96 -2
  330. package/src/math/MathUtils.js +182 -19
  331. package/src/math/Matrix2.js +70 -0
  332. package/src/math/Matrix3.js +229 -4
  333. package/src/math/Matrix4.js +368 -3
  334. package/src/math/Plane.js +164 -2
  335. package/src/math/Quaternion.js +265 -9
  336. package/src/math/Ray.js +160 -0
  337. package/src/math/Sphere.js +147 -0
  338. package/src/math/Spherical.js +73 -11
  339. package/src/math/SphericalHarmonics3.js +112 -14
  340. package/src/math/Triangle.js +230 -2
  341. package/src/math/Vector2.js +396 -10
  342. package/src/math/Vector3.js +550 -13
  343. package/src/math/Vector4.js +415 -9
  344. package/src/math/interpolants/CubicInterpolant.js +10 -1
  345. package/src/math/interpolants/DiscreteInterpolant.js +10 -2
  346. package/src/math/interpolants/LinearInterpolant.js +13 -0
  347. package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
  348. package/src/nodes/Nodes.js +84 -166
  349. package/src/nodes/TSL.js +167 -0
  350. package/src/nodes/accessors/AccessorsUtils.js +39 -10
  351. package/src/nodes/accessors/Arrays.js +68 -0
  352. package/src/nodes/accessors/BatchNode.js +93 -26
  353. package/src/nodes/accessors/Bitangent.js +54 -0
  354. package/src/nodes/accessors/BufferAttributeNode.js +189 -11
  355. package/src/nodes/accessors/BufferNode.js +70 -5
  356. package/src/nodes/accessors/BuiltinNode.js +63 -0
  357. package/src/nodes/accessors/Camera.js +129 -0
  358. package/src/nodes/accessors/ClippingNode.js +152 -43
  359. package/src/nodes/accessors/CubeTextureNode.js +76 -13
  360. package/src/nodes/accessors/InstanceNode.js +118 -35
  361. package/src/nodes/accessors/InstancedMeshNode.js +50 -0
  362. package/src/nodes/accessors/Lights.js +129 -0
  363. package/src/nodes/accessors/MaterialNode.js +394 -58
  364. package/src/nodes/accessors/MaterialProperties.js +57 -1
  365. package/src/nodes/accessors/MaterialReferenceNode.js +60 -18
  366. package/src/nodes/accessors/ModelNode.js +159 -12
  367. package/src/nodes/accessors/ModelViewProjectionNode.js +10 -36
  368. package/src/nodes/accessors/MorphNode.js +60 -13
  369. package/src/nodes/accessors/Normal.js +156 -0
  370. package/src/nodes/accessors/Object3DNode.js +154 -35
  371. package/src/nodes/accessors/PointUVNode.js +35 -6
  372. package/src/nodes/accessors/Position.js +64 -0
  373. package/src/nodes/accessors/ReferenceBaseNode.js +357 -0
  374. package/src/nodes/accessors/ReferenceNode.js +243 -6
  375. package/src/nodes/accessors/ReflectVector.js +36 -0
  376. package/src/nodes/accessors/RendererReferenceNode.js +57 -7
  377. package/src/nodes/accessors/SceneNode.js +98 -6
  378. package/src/nodes/accessors/SkinningNode.js +214 -21
  379. package/src/nodes/accessors/StorageBufferNode.js +288 -28
  380. package/src/nodes/accessors/StorageTextureNode.js +139 -12
  381. package/src/nodes/accessors/Tangent.js +62 -0
  382. package/src/nodes/accessors/Texture3DNode.js +98 -12
  383. package/src/nodes/accessors/{TextureBicubicNode.js → TextureBicubic.js} +14 -34
  384. package/src/nodes/accessors/TextureNode.js +347 -34
  385. package/src/nodes/accessors/TextureSizeNode.js +51 -9
  386. package/src/nodes/accessors/UV.js +11 -0
  387. package/src/nodes/accessors/UniformArrayNode.js +241 -32
  388. package/src/nodes/accessors/UserDataNode.js +55 -7
  389. package/src/nodes/accessors/VelocityNode.js +223 -0
  390. package/src/nodes/accessors/VertexColorNode.js +45 -6
  391. package/src/nodes/code/CodeNode.js +108 -8
  392. package/src/nodes/code/ExpressionNode.js +38 -7
  393. package/src/nodes/code/FunctionCallNode.js +62 -11
  394. package/src/nodes/code/FunctionNode.js +54 -24
  395. package/src/nodes/code/ScriptableNode.js +241 -17
  396. package/src/nodes/code/ScriptableValueNode.js +93 -8
  397. package/src/nodes/core/ArrayNode.js +142 -0
  398. package/src/nodes/core/AssignNode.js +60 -12
  399. package/src/nodes/core/AttributeNode.js +55 -22
  400. package/src/nodes/core/BypassNode.js +59 -11
  401. package/src/nodes/core/CacheNode.js +64 -10
  402. package/src/nodes/core/ConstNode.js +38 -3
  403. package/src/nodes/core/ContextNode.js +87 -12
  404. package/src/nodes/core/IndexNode.js +102 -10
  405. package/src/nodes/core/InputNode.js +55 -3
  406. package/src/nodes/core/LightingModel.js +65 -5
  407. package/src/nodes/core/MRTNode.js +81 -7
  408. package/src/nodes/core/Node.js +368 -50
  409. package/src/nodes/core/NodeAttribute.js +38 -0
  410. package/src/nodes/core/NodeBuilder.js +1317 -83
  411. package/src/nodes/core/NodeCache.js +41 -2
  412. package/src/nodes/core/NodeCode.js +31 -0
  413. package/src/nodes/core/NodeFrame.js +123 -2
  414. package/src/nodes/core/NodeFunction.js +46 -0
  415. package/src/nodes/core/NodeFunctionInput.js +44 -0
  416. package/src/nodes/core/NodeParser.js +11 -0
  417. package/src/nodes/core/NodeUniform.js +52 -0
  418. package/src/nodes/core/NodeUtils.js +226 -6
  419. package/src/nodes/core/NodeVar.js +47 -1
  420. package/src/nodes/core/NodeVarying.js +28 -0
  421. package/src/nodes/core/OutputStructNode.js +61 -17
  422. package/src/nodes/core/ParameterNode.js +34 -4
  423. package/src/nodes/core/PropertyNode.js +296 -32
  424. package/src/nodes/core/StackNode.js +108 -8
  425. package/src/nodes/core/StructNode.js +120 -0
  426. package/src/nodes/core/StructType.js +13 -0
  427. package/src/nodes/core/StructTypeNode.js +116 -9
  428. package/src/nodes/core/TempNode.js +37 -7
  429. package/src/nodes/core/UniformGroupNode.js +98 -17
  430. package/src/nodes/core/UniformNode.js +72 -4
  431. package/src/nodes/core/VarNode.js +170 -13
  432. package/src/nodes/core/VaryingNode.js +109 -8
  433. package/src/nodes/core/constants.js +40 -0
  434. package/src/nodes/display/BlendModes.js +193 -0
  435. package/src/nodes/display/BumpMapNode.js +47 -10
  436. package/src/nodes/display/ColorAdjustment.js +141 -0
  437. package/src/nodes/display/ColorSpaceFunctions.js +54 -0
  438. package/src/nodes/display/ColorSpaceNode.js +147 -68
  439. package/src/nodes/display/FrontFacingNode.js +39 -6
  440. package/src/nodes/display/NormalMapNode.js +55 -13
  441. package/src/nodes/display/PassNode.js +420 -19
  442. package/src/nodes/display/PosterizeNode.js +40 -7
  443. package/src/nodes/display/RenderOutputNode.js +81 -13
  444. package/src/nodes/display/ScreenNode.js +286 -0
  445. package/src/nodes/display/ToneMappingFunctions.js +242 -0
  446. package/src/nodes/display/ToneMappingNode.js +68 -175
  447. package/src/nodes/display/ToonOutlinePassNode.js +183 -0
  448. package/src/nodes/display/ViewportDepthNode.js +210 -36
  449. package/src/nodes/display/ViewportDepthTextureNode.js +32 -9
  450. package/src/nodes/display/ViewportSharedTextureNode.js +32 -9
  451. package/src/nodes/display/ViewportTextureNode.js +68 -11
  452. package/src/nodes/fog/Fog.js +113 -0
  453. package/src/nodes/functions/BSDF/BRDF_GGX.js +4 -4
  454. package/src/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  455. package/src/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
  456. package/src/nodes/functions/BSDF/DFGApprox.js +2 -2
  457. package/src/nodes/functions/BSDF/D_GGX.js +2 -2
  458. package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
  459. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  460. package/src/nodes/functions/BSDF/F_Schlick.js +2 -2
  461. package/src/nodes/functions/BSDF/LTC.js +50 -6
  462. package/src/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
  463. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
  464. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  465. package/src/nodes/functions/BasicLightingModel.js +27 -6
  466. package/src/nodes/functions/PhongLightingModel.js +38 -8
  467. package/src/nodes/functions/PhysicalLightingModel.js +215 -51
  468. package/src/nodes/functions/ShadowMaskModel.js +24 -1
  469. package/src/nodes/functions/ToonLightingModel.js +24 -5
  470. package/src/nodes/functions/VolumetricLightingModel.js +183 -0
  471. package/src/nodes/functions/material/getAlphaHashThreshold.js +68 -0
  472. package/src/nodes/functions/material/getGeometryRoughness.js +10 -4
  473. package/src/nodes/functions/material/getParallaxCorrectNormal.js +37 -0
  474. package/src/nodes/functions/material/getRoughness.js +2 -2
  475. package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
  476. package/src/nodes/geometry/RangeNode.js +62 -7
  477. package/src/nodes/gpgpu/AtomicFunctionNode.js +280 -0
  478. package/src/nodes/gpgpu/BarrierNode.js +89 -0
  479. package/src/nodes/gpgpu/ComputeBuiltinNode.js +227 -0
  480. package/src/nodes/gpgpu/ComputeNode.js +124 -9
  481. package/src/nodes/gpgpu/WorkgroupInfoNode.js +208 -0
  482. package/src/nodes/lighting/AONode.js +24 -3
  483. package/src/nodes/lighting/AmbientLightNode.js +16 -8
  484. package/src/nodes/lighting/AnalyticLightNode.js +151 -231
  485. package/src/nodes/lighting/BasicEnvironmentNode.js +25 -3
  486. package/src/nodes/lighting/BasicLightMapNode.js +25 -5
  487. package/src/nodes/lighting/DirectionalLightNode.js +19 -20
  488. package/src/nodes/lighting/EnvironmentNode.js +34 -17
  489. package/src/nodes/lighting/HemisphereLightNode.js +42 -11
  490. package/src/nodes/lighting/IESSpotLightNode.js +18 -9
  491. package/src/nodes/lighting/IrradianceNode.js +23 -3
  492. package/src/nodes/lighting/LightProbeNode.js +29 -36
  493. package/src/nodes/lighting/LightUtils.js +12 -4
  494. package/src/nodes/lighting/LightingContextNode.js +70 -21
  495. package/src/nodes/lighting/LightingNode.js +22 -9
  496. package/src/nodes/lighting/LightsNode.js +309 -86
  497. package/src/nodes/lighting/PointLightNode.js +66 -32
  498. package/src/nodes/lighting/PointShadowNode.js +306 -0
  499. package/src/nodes/lighting/RectAreaLightNode.js +61 -25
  500. package/src/nodes/lighting/ShadowBaseNode.js +92 -0
  501. package/src/nodes/lighting/ShadowNode.js +812 -0
  502. package/src/nodes/lighting/SpotLightNode.js +73 -31
  503. package/src/nodes/materialx/MaterialXNodes.js +2 -2
  504. package/src/nodes/materialx/lib/mx_hsv.js +27 -22
  505. package/src/nodes/materialx/lib/mx_noise.js +70 -70
  506. package/src/nodes/materialx/lib/mx_transform_color.js +2 -2
  507. package/src/nodes/math/ConditionalNode.js +230 -0
  508. package/src/nodes/math/Hash.js +21 -0
  509. package/src/nodes/math/MathNode.js +812 -131
  510. package/src/nodes/math/MathUtils.js +47 -8
  511. package/src/nodes/math/OperatorNode.js +410 -66
  512. package/src/nodes/math/TriNoise3D.js +32 -32
  513. package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
  514. package/src/nodes/parsers/GLSLNodeParser.js +11 -0
  515. package/src/nodes/pmrem/PMREMNode.js +188 -28
  516. package/src/nodes/pmrem/PMREMUtils.js +24 -24
  517. package/src/nodes/procedural/Checker.js +22 -0
  518. package/src/nodes/shapes/Shapes.js +32 -0
  519. package/src/nodes/tsl/TSLBase.js +31 -0
  520. package/src/nodes/{shadernode/ShaderNode.js → tsl/TSLCore.js} +114 -98
  521. package/src/nodes/utils/ArrayElementNode.js +45 -5
  522. package/src/nodes/utils/ConvertNode.js +39 -4
  523. package/src/nodes/utils/CubeMapNode.js +88 -8
  524. package/src/nodes/utils/Discard.js +24 -0
  525. package/src/nodes/utils/EquirectUVNode.js +39 -7
  526. package/src/nodes/utils/FlipNode.js +106 -0
  527. package/src/nodes/utils/FunctionOverloadingNode.js +61 -6
  528. package/src/nodes/utils/JoinNode.js +31 -3
  529. package/src/nodes/utils/LoopNode.js +95 -9
  530. package/src/nodes/utils/MatcapUVNode.js +27 -8
  531. package/src/nodes/utils/MaxMipLevelNode.js +57 -6
  532. package/src/nodes/utils/MemberNode.js +68 -0
  533. package/src/nodes/utils/Oscillators.js +41 -0
  534. package/src/nodes/utils/Packing.js +21 -0
  535. package/src/nodes/utils/PostProcessingUtils.js +95 -0
  536. package/src/nodes/utils/RTTNode.js +141 -9
  537. package/src/nodes/utils/ReflectorNode.js +295 -21
  538. package/src/nodes/utils/RemapNode.js +93 -10
  539. package/src/nodes/utils/RotateNode.js +48 -13
  540. package/src/nodes/utils/SetNode.js +50 -4
  541. package/src/nodes/utils/SplitNode.js +62 -6
  542. package/src/nodes/utils/SpriteSheetUVNode.js +56 -7
  543. package/src/nodes/utils/SpriteUtils.js +21 -5
  544. package/src/nodes/utils/StorageArrayElementNode.js +64 -12
  545. package/src/nodes/utils/Timer.js +73 -0
  546. package/src/nodes/utils/TriplanarTexturesNode.js +96 -10
  547. package/src/nodes/utils/UVUtils.js +27 -9
  548. package/src/nodes/utils/ViewportUtils.js +16 -4
  549. package/src/objects/BatchedMesh.js +808 -281
  550. package/src/objects/Bone.js +24 -0
  551. package/src/objects/ClippingGroup.js +68 -0
  552. package/src/objects/Group.js +24 -0
  553. package/src/objects/InstancedMesh.js +120 -2
  554. package/src/objects/LOD.js +120 -5
  555. package/src/objects/Line.js +89 -6
  556. package/src/objects/LineLoop.js +20 -0
  557. package/src/objects/LineSegments.js +18 -0
  558. package/src/objects/Mesh.js +82 -23
  559. package/src/objects/Points.js +62 -0
  560. package/src/objects/Skeleton.js +107 -2
  561. package/src/objects/SkinnedMesh.js +99 -5
  562. package/src/objects/Sprite.js +54 -0
  563. package/src/renderers/WebGLRenderer.js +274 -157
  564. package/src/renderers/common/Animation.js +109 -12
  565. package/src/renderers/common/Attributes.js +40 -0
  566. package/src/renderers/common/Backend.js +504 -44
  567. package/src/renderers/common/Background.js +67 -9
  568. package/src/renderers/common/BindGroup.js +45 -1
  569. package/src/renderers/common/Binding.js +35 -0
  570. package/src/renderers/common/Bindings.js +136 -19
  571. package/src/renderers/common/Buffer.js +49 -0
  572. package/src/renderers/common/BufferUtils.js +25 -0
  573. package/src/renderers/common/BundleGroup.js +83 -0
  574. package/src/renderers/common/ChainMap.js +45 -6
  575. package/src/renderers/common/ClippingContext.js +175 -80
  576. package/src/renderers/common/Color4.js +40 -0
  577. package/src/renderers/common/ComputePipeline.js +24 -0
  578. package/src/renderers/common/Constants.js +2 -1
  579. package/src/renderers/common/CubeRenderTarget.js +22 -3
  580. package/src/renderers/common/DataMap.js +37 -1
  581. package/src/renderers/common/Geometries.js +111 -14
  582. package/src/renderers/common/IndirectStorageBufferAttribute.js +38 -0
  583. package/src/renderers/common/Info.js +78 -35
  584. package/src/renderers/common/Lighting.js +73 -0
  585. package/src/renderers/common/Pipeline.js +22 -0
  586. package/src/renderers/common/Pipelines.js +148 -5
  587. package/src/renderers/common/PostProcessing.js +112 -11
  588. package/src/renderers/common/ProgrammableStage.js +60 -2
  589. package/src/renderers/common/QuadMesh.js +56 -5
  590. package/src/renderers/common/RenderBundle.js +14 -8
  591. package/src/renderers/common/RenderBundles.js +39 -10
  592. package/src/renderers/common/RenderContext.js +205 -7
  593. package/src/renderers/common/RenderContexts.js +59 -6
  594. package/src/renderers/common/RenderList.js +230 -21
  595. package/src/renderers/common/RenderLists.js +45 -6
  596. package/src/renderers/common/RenderObject.js +552 -41
  597. package/src/renderers/common/RenderObjects.js +118 -9
  598. package/src/renderers/common/RenderPipeline.js +24 -0
  599. package/src/renderers/common/Renderer.js +1537 -239
  600. package/src/renderers/common/RendererUtils.js +191 -0
  601. package/src/renderers/common/SampledTexture.js +132 -3
  602. package/src/renderers/common/Sampler.js +30 -0
  603. package/src/renderers/common/StorageBuffer.js +24 -0
  604. package/src/renderers/common/StorageBufferAttribute.js +31 -2
  605. package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
  606. package/src/renderers/common/StorageTexture.js +38 -0
  607. package/src/renderers/common/Textures.js +142 -32
  608. package/src/renderers/common/TimestampQueryPool.js +98 -0
  609. package/src/renderers/common/Uniform.js +225 -3
  610. package/src/renderers/common/UniformBuffer.js +19 -0
  611. package/src/renderers/common/UniformsGroup.js +157 -6
  612. package/src/renderers/common/XRManager.js +1185 -0
  613. package/src/renderers/common/XRRenderTarget.js +74 -0
  614. package/src/renderers/common/extras/PMREMGenerator.js +211 -53
  615. package/src/renderers/common/nodes/NodeBuilderState.js +100 -6
  616. package/src/renderers/common/nodes/NodeLibrary.js +194 -0
  617. package/src/renderers/common/nodes/NodeSampledTexture.js +92 -4
  618. package/src/renderers/common/nodes/NodeSampler.js +28 -0
  619. package/src/renderers/common/nodes/NodeStorageBuffer.js +37 -3
  620. package/src/renderers/common/nodes/NodeUniform.js +285 -2
  621. package/src/renderers/common/nodes/NodeUniformBuffer.js +29 -0
  622. package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
  623. package/src/renderers/common/nodes/Nodes.js +390 -70
  624. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +4 -24
  625. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +8 -0
  626. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
  627. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -2
  628. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
  629. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
  630. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
  631. package/src/renderers/webgl/WebGLAttributes.js +45 -14
  632. package/src/renderers/webgl/WebGLBackground.js +24 -1
  633. package/src/renderers/webgl/WebGLBufferRenderer.js +2 -6
  634. package/src/renderers/webgl/WebGLCapabilities.js +2 -0
  635. package/src/renderers/webgl/WebGLGeometries.js +0 -28
  636. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +2 -6
  637. package/src/renderers/webgl/WebGLProgram.js +27 -29
  638. package/src/renderers/webgl/WebGLPrograms.js +24 -16
  639. package/src/renderers/webgl/WebGLState.js +68 -11
  640. package/src/renderers/webgl/WebGLTextures.js +49 -10
  641. package/src/renderers/webgl-fallback/WebGLBackend.js +1055 -238
  642. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +5 -10
  643. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +425 -48
  644. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +64 -1
  645. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
  646. package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
  647. package/src/renderers/webgl-fallback/utils/WebGLState.js +419 -14
  648. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +281 -59
  649. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +367 -0
  650. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
  651. package/src/renderers/webgpu/WebGPUBackend.js +816 -236
  652. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +78 -0
  653. package/src/renderers/webgpu/WebGPURenderer.js +45 -6
  654. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +63 -0
  655. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +97 -0
  656. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +954 -147
  657. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +29 -4
  658. package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
  659. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +147 -31
  660. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +213 -31
  661. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +146 -28
  662. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +161 -7
  663. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +333 -50
  664. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +287 -0
  665. package/src/renderers/webgpu/utils/WebGPUUtils.js +131 -3
  666. package/src/renderers/webxr/WebXRDepthSensing.js +1 -1
  667. package/src/renderers/webxr/WebXRManager.js +54 -32
  668. package/src/scenes/Fog.js +60 -0
  669. package/src/scenes/FogExp2.js +51 -0
  670. package/src/scenes/Scene.js +87 -0
  671. package/src/textures/Data3DTexture.js +2 -2
  672. package/src/textures/DepthTexture.js +2 -0
  673. package/src/textures/Source.js +2 -2
  674. package/src/textures/Texture.js +368 -5
  675. package/src/textures/VideoFrameTexture.js +35 -0
  676. package/src/utils.js +33 -1
  677. package/examples/jsm/animation/MMDAnimationHelper.js +0 -1207
  678. package/examples/jsm/animation/MMDPhysics.js +0 -1406
  679. package/examples/jsm/cameras/CinematicCamera.js +0 -208
  680. package/examples/jsm/controls/Controls.js +0 -32
  681. package/examples/jsm/exporters/MMDExporter.js +0 -217
  682. package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -174
  683. package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
  684. package/examples/jsm/libs/mmdparser.module.js +0 -11530
  685. package/examples/jsm/loaders/LogLuvLoader.js +0 -606
  686. package/examples/jsm/loaders/MMDLoader.js +0 -2295
  687. package/examples/jsm/loaders/TiltLoader.js +0 -520
  688. package/examples/jsm/objects/InstancedPoints.js +0 -21
  689. package/examples/jsm/shaders/MMDToonShader.js +0 -134
  690. package/examples/jsm/utils/GPUStatsPanel.js +0 -95
  691. package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
  692. package/src/nodes/accessors/BitangentNode.js +0 -13
  693. package/src/nodes/accessors/CameraNode.js +0 -19
  694. package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
  695. package/src/nodes/accessors/NormalNode.js +0 -14
  696. package/src/nodes/accessors/PositionNode.js +0 -10
  697. package/src/nodes/accessors/ReflectVectorNode.js +0 -10
  698. package/src/nodes/accessors/TangentNode.js +0 -23
  699. package/src/nodes/accessors/UVNode.js +0 -3
  700. package/src/nodes/core/NodeKeywords.js +0 -80
  701. package/src/nodes/core/UniformGroup.js +0 -13
  702. package/src/nodes/display/AfterImageNode.js +0 -152
  703. package/src/nodes/display/AnamorphicNode.js +0 -145
  704. package/src/nodes/display/BlendModeNode.js +0 -128
  705. package/src/nodes/display/ColorAdjustmentNode.js +0 -104
  706. package/src/nodes/display/DenoiseNode.js +0 -198
  707. package/src/nodes/display/DotScreenNode.js +0 -75
  708. package/src/nodes/display/FXAANode.js +0 -327
  709. package/src/nodes/display/FilmNode.js +0 -52
  710. package/src/nodes/display/GTAONode.js +0 -324
  711. package/src/nodes/display/GaussianBlurNode.js +0 -207
  712. package/src/nodes/display/Lut3DNode.js +0 -53
  713. package/src/nodes/display/RGBShiftNode.js +0 -49
  714. package/src/nodes/display/SepiaNode.js +0 -18
  715. package/src/nodes/display/TransitionNode.js +0 -76
  716. package/src/nodes/display/ViewportNode.js +0 -137
  717. package/src/nodes/fog/FogExp2Node.js +0 -34
  718. package/src/nodes/fog/FogNode.js +0 -48
  719. package/src/nodes/fog/FogRangeNode.js +0 -35
  720. package/src/nodes/lighting/LightNode.js +0 -57
  721. package/src/nodes/loaders/NodeLoader.js +0 -110
  722. package/src/nodes/loaders/NodeMaterialLoader.js +0 -60
  723. package/src/nodes/loaders/NodeObjectLoader.js +0 -71
  724. package/src/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
  725. package/src/nodes/materials/LineBasicNodeMaterial.js +0 -28
  726. package/src/nodes/materials/LineDashedNodeMaterial.js +0 -55
  727. package/src/nodes/materials/MeshBasicNodeMaterial.js +0 -73
  728. package/src/nodes/materials/MeshLambertNodeMaterial.js +0 -43
  729. package/src/nodes/materials/MeshMatcapNodeMaterial.js +0 -53
  730. package/src/nodes/materials/MeshNormalNodeMaterial.js +0 -40
  731. package/src/nodes/materials/MeshPhongNodeMaterial.js +0 -74
  732. package/src/nodes/materials/MeshPhysicalNodeMaterial.js +0 -244
  733. package/src/nodes/materials/MeshSSSNodeMaterial.js +0 -84
  734. package/src/nodes/materials/MeshStandardNodeMaterial.js +0 -104
  735. package/src/nodes/materials/MeshToonNodeMaterial.js +0 -34
  736. package/src/nodes/materials/NodeMaterial.js +0 -680
  737. package/src/nodes/materials/PointsNodeMaterial.js +0 -39
  738. package/src/nodes/materials/ShadowNodeMaterial.js +0 -34
  739. package/src/nodes/materials/SpriteNodeMaterial.js +0 -90
  740. package/src/nodes/materials/VolumeNodeMaterial.js +0 -106
  741. package/src/nodes/math/CondNode.js +0 -139
  742. package/src/nodes/math/HashNode.js +0 -34
  743. package/src/nodes/procedural/CheckerNode.js +0 -42
  744. package/src/nodes/utils/DiscardNode.js +0 -28
  745. package/src/nodes/utils/OscNode.js +0 -81
  746. package/src/nodes/utils/PackingNode.js +0 -55
  747. package/src/nodes/utils/TimerNode.js +0 -94
@@ -7,10 +7,19 @@ import { Interpolant } from '../Interpolant.js';
7
7
  * It was derived from a Hermitian construction setting the first derivative
8
8
  * at each sample position to the linear slope between neighboring positions
9
9
  * over their parameter interval.
10
+ *
11
+ * @augments Interpolant
10
12
  */
11
-
12
13
  class CubicInterpolant extends Interpolant {
13
14
 
15
+ /**
16
+ * Constructs a new cubic interpolant.
17
+ *
18
+ * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.
19
+ * @param {TypedArray} sampleValues - The sample values.
20
+ * @param {number} sampleSize - The sample size
21
+ * @param {TypedArray} [resultBuffer] - The result buffer.
22
+ */
14
23
  constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
15
24
 
16
25
  super( parameterPositions, sampleValues, sampleSize, resultBuffer );
@@ -1,13 +1,21 @@
1
1
  import { Interpolant } from '../Interpolant.js';
2
2
 
3
3
  /**
4
- *
5
4
  * Interpolant that evaluates to the sample value at the position preceding
6
5
  * the parameter.
6
+ *
7
+ * @augments Interpolant
7
8
  */
8
-
9
9
  class DiscreteInterpolant extends Interpolant {
10
10
 
11
+ /**
12
+ * Constructs a new discrete interpolant.
13
+ *
14
+ * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.
15
+ * @param {TypedArray} sampleValues - The sample values.
16
+ * @param {number} sampleSize - The sample size
17
+ * @param {TypedArray} [resultBuffer] - The result buffer.
18
+ */
11
19
  constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
12
20
 
13
21
  super( parameterPositions, sampleValues, sampleSize, resultBuffer );
@@ -1,7 +1,20 @@
1
1
  import { Interpolant } from '../Interpolant.js';
2
2
 
3
+ /**
4
+ * A basic linear interpolant.
5
+ *
6
+ * @augments Interpolant
7
+ */
3
8
  class LinearInterpolant extends Interpolant {
4
9
 
10
+ /**
11
+ * Constructs a new linear interpolant.
12
+ *
13
+ * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.
14
+ * @param {TypedArray} sampleValues - The sample values.
15
+ * @param {number} sampleSize - The sample size
16
+ * @param {TypedArray} [resultBuffer] - The result buffer.
17
+ */
5
18
  constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
6
19
 
7
20
  super( parameterPositions, sampleValues, sampleSize, resultBuffer );
@@ -3,10 +3,19 @@ import { Quaternion } from '../Quaternion.js';
3
3
 
4
4
  /**
5
5
  * Spherical linear unit quaternion interpolant.
6
+ *
7
+ * @augments Interpolant
6
8
  */
7
-
8
9
  class QuaternionLinearInterpolant extends Interpolant {
9
10
 
11
+ /**
12
+ * Constructs a new SLERP interpolant.
13
+ *
14
+ * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.
15
+ * @param {TypedArray} sampleValues - The sample values.
16
+ * @param {number} sampleSize - The sample size
17
+ * @param {TypedArray} [resultBuffer] - The result buffer.
18
+ */
10
19
  constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {
11
20
 
12
21
  super( parameterPositions, sampleValues, sampleSize, resultBuffer );
@@ -1,184 +1,128 @@
1
- // @TODO: We can simplify "export { default as SomeNode, other, exports } from '...'" to just "export * from '...'" if we will use only named exports
2
- // this will also solve issues like "import TempNode from '../core/Node.js'"
3
-
4
1
  // constants
5
2
  export * from './core/constants.js';
6
3
 
7
4
  // core
8
- export { default as AssignNode, assign } from './core/AssignNode.js';
9
- export { default as AttributeNode, attribute } from './core/AttributeNode.js';
10
- export { default as BypassNode, bypass } from './core/BypassNode.js';
11
- export { default as CacheNode, cache } from './core/CacheNode.js';
5
+ export { default as ArrayNode } from './core/ArrayNode.js';
6
+ export { default as AssignNode } from './core/AssignNode.js';
7
+ export { default as AttributeNode } from './core/AttributeNode.js';
8
+ export { default as BypassNode } from './core/BypassNode.js';
9
+ export { default as CacheNode } from './core/CacheNode.js';
12
10
  export { default as ConstNode } from './core/ConstNode.js';
13
- export { default as ContextNode, context, label } from './core/ContextNode.js';
14
- export { default as IndexNode, vertexIndex, instanceIndex, drawIndex } from './core/IndexNode.js';
11
+ export { default as ContextNode } from './core/ContextNode.js';
12
+ export { default as IndexNode } from './core/IndexNode.js';
15
13
  export { default as LightingModel } from './core/LightingModel.js';
16
- export { default as Node, addNodeClass, createNodeFromType } from './core/Node.js';
17
- export { default as VarNode, temp } from './core/VarNode.js';
14
+ export { default as Node } from './core/Node.js';
15
+ export { default as VarNode } from './core/VarNode.js';
18
16
  export { default as NodeAttribute } from './core/NodeAttribute.js';
19
17
  export { default as NodeBuilder } from './core/NodeBuilder.js';
20
18
  export { default as NodeCache } from './core/NodeCache.js';
21
19
  export { default as NodeCode } from './core/NodeCode.js';
22
20
  export { default as NodeFrame } from './core/NodeFrame.js';
23
21
  export { default as NodeFunctionInput } from './core/NodeFunctionInput.js';
24
- export { default as NodeKeywords } from './core/NodeKeywords.js';
25
22
  export { default as NodeUniform } from './core/NodeUniform.js';
26
23
  export { default as NodeVar } from './core/NodeVar.js';
27
24
  export { default as NodeVarying } from './core/NodeVarying.js';
28
- export { default as ParameterNode, parameter } from './core/ParameterNode.js';
29
- export { default as PropertyNode, property, varyingProperty, output, diffuseColor, emissive, roughness, metalness, clearcoat, clearcoatRoughness, sheen, sheenRoughness, iridescence, iridescenceIOR, iridescenceThickness, specularColor, shininess, dashSize, gapSize, pointWidth, alphaT, anisotropy, anisotropyB, anisotropyT } from './core/PropertyNode.js';
30
- export { default as StackNode, stack } from './core/StackNode.js';
25
+ export { default as ParameterNode } from './core/ParameterNode.js';
26
+ export { default as PropertyNode } from './core/PropertyNode.js';
27
+ export { default as StackNode } from './core/StackNode.js';
31
28
  export { default as TempNode } from './core/TempNode.js';
32
- export { default as UniformGroupNode, uniformGroup, objectGroup, renderGroup, frameGroup } from './core/UniformGroupNode.js';
33
- export { default as UniformNode, uniform } from './core/UniformNode.js';
34
- export { default as VaryingNode, varying } from './core/VaryingNode.js';
35
- export { default as OutputStructNode, outputStruct } from './core/OutputStructNode.js';
36
- export { default as MRTNode, mrt } from './core/MRTNode.js';
29
+ export { default as UniformGroupNode } from './core/UniformGroupNode.js';
30
+ export { default as UniformNode } from './core/UniformNode.js';
31
+ export { default as VaryingNode } from './core/VaryingNode.js';
32
+ export { default as StructNode } from './core/StructNode.js';
33
+ export { default as StructTypeNode } from './core/StructTypeNode.js';
34
+ export { default as OutputStructNode } from './core/OutputStructNode.js';
35
+ export { default as MRTNode } from './core/MRTNode.js';
37
36
 
38
37
  import * as NodeUtils from './core/NodeUtils.js';
39
38
  export { NodeUtils };
40
39
 
41
- // math
42
- export { default as MathNode, PI, PI2, EPSILON, INFINITY, radians, degrees, exp, exp2, log, log2, sqrt, inverseSqrt, floor, ceil, normalize, fract, sin, cos, tan, asin, acos, atan, abs, sign, length, lengthSq, negate, oneMinus, dFdx, dFdy, round, reciprocal, trunc, fwidth, bitcast, atan2, min, max, mod, step, reflect, distance, difference, dot, cross, pow, pow2, pow3, pow4, transformDirection, mix, clamp, saturate, refract, smoothstep, faceForward, cbrt, transpose, all, any, equals, rand } from './math/MathNode.js';
43
-
44
- export { default as OperatorNode, add, sub, mul, div, remainder, equal, lessThan, greaterThan, lessThanEqual, greaterThanEqual, and, or, not, xor, bitAnd, bitNot, bitOr, bitXor, shiftLeft, shiftRight } from './math/OperatorNode.js';
45
- export { default as CondNode, select, cond } from './math/CondNode.js';
46
- export { default as HashNode, hash } from './math/HashNode.js';
47
-
48
- // math utils
49
- export { parabola, gain, pcurve, sinc } from './math/MathUtils.js';
50
- export { triNoise3D } from './math/TriNoise3D.js';
51
-
52
40
  // utils
53
41
  export { default as ArrayElementNode } from './utils/ArrayElementNode.js';
54
42
  export { default as ConvertNode } from './utils/ConvertNode.js';
55
- export { default as DiscardNode, discard, Return } from './utils/DiscardNode.js';
56
- export { default as EquirectUVNode, equirectUV } from './utils/EquirectUVNode.js';
57
- export { default as FunctionOverloadingNode, overloadingFn } from './utils/FunctionOverloadingNode.js';
43
+ export { default as EquirectUVNode } from './utils/EquirectUVNode.js';
44
+ export { default as FunctionOverloadingNode } from './utils/FunctionOverloadingNode.js';
58
45
  export { default as JoinNode } from './utils/JoinNode.js';
59
- export { default as LoopNode, Loop, Continue, Break } from './utils/LoopNode.js';
60
- export { default as MatcapUVNode, matcapUV } from './utils/MatcapUVNode.js';
61
- export { default as MaxMipLevelNode, maxMipLevel } from './utils/MaxMipLevelNode.js';
62
- export { default as OscNode, oscSine, oscSquare, oscTriangle, oscSawtooth } from './utils/OscNode.js';
63
- export { default as PackingNode, directionToColor, colorToDirection } from './utils/PackingNode.js';
64
- export { default as RemapNode, remap, remapClamp } from './utils/RemapNode.js';
65
- export * from './utils/UVUtils.js';
66
- export * from './utils/SpriteUtils.js';
67
- export * from './utils/ViewportUtils.js';
68
- export { default as RotateNode, rotate } from './utils/RotateNode.js';
46
+ export { default as LoopNode } from './utils/LoopNode.js';
47
+ export { default as MatcapUVNode } from './utils/MatcapUVNode.js';
48
+ export { default as MaxMipLevelNode } from './utils/MaxMipLevelNode.js';
49
+ export { default as RemapNode } from './utils/RemapNode.js';
50
+ export { default as RotateNode } from './utils/RotateNode.js';
69
51
  export { default as SetNode } from './utils/SetNode.js';
70
52
  export { default as SplitNode } from './utils/SplitNode.js';
71
- export { default as SpriteSheetUVNode, spritesheetUV } from './utils/SpriteSheetUVNode.js';
53
+ export { default as SpriteSheetUVNode } from './utils/SpriteSheetUVNode.js';
72
54
  export { default as StorageArrayElementNode } from './utils/StorageArrayElementNode.js';
73
- export { default as TimerNode, timerLocal, timerGlobal, timerDelta, frameId } from './utils/TimerNode.js';
74
- export { default as TriplanarTexturesNode, triplanarTextures, triplanarTexture } from './utils/TriplanarTexturesNode.js';
75
- export { default as ReflectorNode, reflector } from './utils/ReflectorNode.js';
76
- export { default as RTTNode, rtt } from './utils/RTTNode.js';
77
-
78
- // shadernode
79
- export * from './shadernode/ShaderNode.js';
55
+ export { default as TriplanarTexturesNode } from './utils/TriplanarTexturesNode.js';
56
+ export { default as ReflectorNode } from './utils/ReflectorNode.js';
57
+ export { default as RTTNode } from './utils/RTTNode.js';
58
+ export { default as MemberNode } from './utils/MemberNode.js';
80
59
 
81
60
  // accessors
82
- export { TBNViewMatrix, parallaxDirection, parallaxUV, transformedBentNormalView } from './accessors/AccessorsUtils.js';
83
- export { default as UniformArrayNode, uniformArray } from './accessors/UniformArrayNode.js';
84
- export * from './accessors/BitangentNode.js';
85
- export { default as BufferAttributeNode, bufferAttribute, dynamicBufferAttribute, instancedBufferAttribute, instancedDynamicBufferAttribute } from './accessors/BufferAttributeNode.js';
86
- export { default as BufferNode, buffer } from './accessors/BufferNode.js';
87
- export * from './accessors/CameraNode.js';
88
- export { default as VertexColorNode, vertexColor } from './accessors/VertexColorNode.js';
89
- export { default as CubeTextureNode, cubeTexture } from './accessors/CubeTextureNode.js';
90
- export { default as InstanceNode, instance } from './accessors/InstanceNode.js';
91
- export { default as BatchNode, batch } from './accessors/BatchNode.js';
92
- export { default as MaterialNode, materialAlphaTest, materialColor, materialShininess, materialEmissive, materialOpacity, materialSpecular, materialSpecularStrength, materialReflectivity, materialRoughness, materialMetalness, materialNormal, materialClearcoat, materialClearcoatRoughness, materialClearcoatNormal, materialRotation, materialSheen, materialSheenRoughness, materialIridescence, materialIridescenceIOR, materialIridescenceThickness, materialLineScale, materialLineDashSize, materialLineGapSize, materialLineWidth, materialLineDashOffset, materialPointWidth, materialAnisotropy, materialAnisotropyVector, materialDispersion, materialLightMap, materialAOMap } from './accessors/MaterialNode.js';
93
- export * from './accessors/MaterialProperties.js';
94
- export { default as MaterialReferenceNode, materialReference } from './accessors/MaterialReferenceNode.js';
95
- export { default as RendererReferenceNode, rendererReference } from './accessors/RendererReferenceNode.js';
96
- export { default as MorphNode, morphReference } from './accessors/MorphNode.js';
97
- export { default as TextureBicubicNode, textureBicubic } from './accessors/TextureBicubicNode.js';
98
- export { default as ModelNode, modelDirection, modelViewMatrix, modelNormalMatrix, modelWorldMatrix, modelPosition, modelViewPosition, modelScale, modelWorldMatrixInverse } from './accessors/ModelNode.js';
99
- export { default as ModelViewProjectionNode, modelViewProjection } from './accessors/ModelViewProjectionNode.js';
100
- export * from './accessors/NormalNode.js';
101
- export { default as Object3DNode, objectDirection, objectViewMatrix, objectNormalMatrix, objectWorldMatrix, objectPosition, objectScale, objectViewPosition } from './accessors/Object3DNode.js';
102
- export { default as PointUVNode, pointUV } from './accessors/PointUVNode.js';
103
- export * from './accessors/PositionNode.js';
104
- export { default as ReferenceNode, reference, referenceBuffer } from './accessors/ReferenceNode.js';
105
- export * from './accessors/ReflectVectorNode.js';
106
- export { default as SkinningNode, skinning, skinningReference } from './accessors/SkinningNode.js';
107
- export { default as SceneNode, backgroundBlurriness, backgroundIntensity } from './accessors/SceneNode.js';
108
- export { default as StorageBufferNode, storage, storageObject } from './accessors/StorageBufferNode.js';
109
- export * from './accessors/TangentNode.js';
110
- export { default as TextureNode, texture, textureLoad, /*textureLevel,*/ sampler } from './accessors/TextureNode.js';
111
- export { default as TextureSizeNode, textureSize } from './accessors/TextureSizeNode.js';
112
- export { default as StorageTextureNode, storageTexture, textureStore } from './accessors/StorageTextureNode.js';
113
- export { default as Texture3DNode, texture3D } from './accessors/Texture3DNode.js';
114
- export * from './accessors/UVNode.js';
115
- export { default as UserDataNode, userData } from './accessors/UserDataNode.js';
61
+ export { default as UniformArrayNode } from './accessors/UniformArrayNode.js';
62
+ export { default as BufferAttributeNode } from './accessors/BufferAttributeNode.js';
63
+ export { default as BufferNode } from './accessors/BufferNode.js';
64
+ export { default as VertexColorNode } from './accessors/VertexColorNode.js';
65
+ export { default as CubeTextureNode } from './accessors/CubeTextureNode.js';
66
+ export { default as InstanceNode } from './accessors/InstanceNode.js';
67
+ export { default as InstancedMeshNode } from './accessors/InstancedMeshNode.js';
68
+ export { default as BatchNode } from './accessors/BatchNode.js';
69
+ export { default as MaterialNode } from './accessors/MaterialNode.js';
70
+ export { default as MaterialReferenceNode } from './accessors/MaterialReferenceNode.js';
71
+ export { default as RendererReferenceNode } from './accessors/RendererReferenceNode.js';
72
+ export { default as MorphNode } from './accessors/MorphNode.js';
73
+ export { default as ModelNode } from './accessors/ModelNode.js';
74
+ export { default as Object3DNode } from './accessors/Object3DNode.js';
75
+ export { default as PointUVNode } from './accessors/PointUVNode.js';
76
+ export { default as ReferenceNode } from './accessors/ReferenceNode.js';
77
+ export { default as SkinningNode } from './accessors/SkinningNode.js';
78
+ export { default as SceneNode } from './accessors/SceneNode.js';
79
+ export { default as StorageBufferNode } from './accessors/StorageBufferNode.js';
80
+ export { default as TextureNode } from './accessors/TextureNode.js';
81
+ export { default as TextureSizeNode } from './accessors/TextureSizeNode.js';
82
+ export { default as StorageTextureNode } from './accessors/StorageTextureNode.js';
83
+ export { default as Texture3DNode } from './accessors/Texture3DNode.js';
84
+ export { default as UserDataNode } from './accessors/UserDataNode.js';
116
85
 
117
86
  // display
118
- export { default as BlendModeNode, burn, dodge, overlay, screen } from './display/BlendModeNode.js';
119
- export { default as BumpMapNode, bumpMap } from './display/BumpMapNode.js';
120
- export { default as ColorAdjustmentNode, saturation, vibrance, hue, luminance, threshold } from './display/ColorAdjustmentNode.js';
121
- export { default as ColorSpaceNode, linearToColorSpace, colorSpaceToLinear, linearTosRGB, sRGBToLinear } from './display/ColorSpaceNode.js';
122
- export { default as FrontFacingNode, frontFacing, faceDirection } from './display/FrontFacingNode.js';
123
- export { default as NormalMapNode, normalMap } from './display/NormalMapNode.js';
124
- export { default as PosterizeNode, posterize } from './display/PosterizeNode.js';
125
- export { default as ToneMappingNode, toneMapping } from './display/ToneMappingNode.js';
126
- export { default as ViewportNode, viewport, viewportCoordinate, viewportResolution, viewportTopLeft, viewportBottomLeft, viewportTopRight, viewportBottomRight } from './display/ViewportNode.js';
127
- export { default as ViewportTextureNode, viewportTexture, viewportMipTexture } from './display/ViewportTextureNode.js';
128
- export { default as ViewportSharedTextureNode, viewportSharedTexture } from './display/ViewportSharedTextureNode.js';
129
- export { default as ViewportDepthTextureNode, viewportDepthTexture } from './display/ViewportDepthTextureNode.js';
130
- export { default as ViewportDepthNode, viewZToOrthographicDepth, orthographicDepthToViewZ, viewZToPerspectiveDepth, perspectiveDepthToViewZ, depth, linearDepth, viewportLinearDepth } from './display/ViewportDepthNode.js';
131
- export { default as GaussianBlurNode, gaussianBlur } from './display/GaussianBlurNode.js';
132
- export { default as AfterImageNode, afterImage } from './display/AfterImageNode.js';
133
- export { default as AnamorphicNode, anamorphic } from './display/AnamorphicNode.js';
134
- export { default as SobelOperatorNode, sobel } from './display/SobelOperatorNode.js';
135
- export { default as DepthOfFieldNode, dof } from './display/DepthOfFieldNode.js';
136
- export { default as DotScreenNode, dotScreen } from './display/DotScreenNode.js';
137
- export { default as RGBShiftNode, rgbShift } from './display/RGBShiftNode.js';
138
- export { default as FilmNode, film } from './display/FilmNode.js';
139
- export { default as Lut3DNode, lut3D } from './display/Lut3DNode.js';
140
- export { default as GTAONode, ao } from './display/GTAONode.js';
141
- export { default as DenoiseNode, denoise } from './display/DenoiseNode.js';
142
- export { default as FXAANode, fxaa } from './display/FXAANode.js';
143
- export { default as BloomNode, bloom } from './display/BloomNode.js';
144
- export { default as TransitionNode, transition } from './display/TransitionNode.js';
145
- export { default as RenderOutputNode, renderOutput } from './display/RenderOutputNode.js';
146
- export { default as PixelationPassNode, pixelationPass } from './display/PixelationPassNode.js';
147
- export { bleach } from './display/BleachBypassNode.js';
148
- export { sepia } from './display/SepiaNode.js';
149
-
150
- export { default as PassNode, pass, passTexture, depthPass } from './display/PassNode.js';
87
+ export { default as BumpMapNode } from './display/BumpMapNode.js';
88
+ export { default as ColorSpaceNode } from './display/ColorSpaceNode.js';
89
+ export { default as FrontFacingNode } from './display/FrontFacingNode.js';
90
+ export { default as NormalMapNode } from './display/NormalMapNode.js';
91
+ export { default as PosterizeNode } from './display/PosterizeNode.js';
92
+ export { default as ToneMappingNode } from './display/ToneMappingNode.js';
93
+ export { default as ScreenNode } from './display/ScreenNode.js';
94
+ export { default as ViewportTextureNode } from './display/ViewportTextureNode.js';
95
+ export { default as ViewportSharedTextureNode } from './display/ViewportSharedTextureNode.js';
96
+ export { default as ViewportDepthTextureNode } from './display/ViewportDepthTextureNode.js';
97
+ export { default as ViewportDepthNode } from './display/ViewportDepthNode.js';
98
+ export { default as RenderOutputNode } from './display/RenderOutputNode.js';
99
+ export { default as PassNode } from './display/PassNode.js';
100
+ export { default as ToonOutlinePassNode } from './display/ToonOutlinePassNode.js';
151
101
 
152
102
  // code
153
- export { default as ExpressionNode, expression } from './code/ExpressionNode.js';
154
- export { default as CodeNode, code, js, wgsl, glsl } from './code/CodeNode.js';
155
- export { default as FunctionCallNode, call } from './code/FunctionCallNode.js';
156
- export { default as FunctionNode, wgslFn, glslFn } from './code/FunctionNode.js';
157
- export { default as ScriptableNode, scriptable, global } from './code/ScriptableNode.js';
158
- export { default as ScriptableValueNode, scriptableValue } from './code/ScriptableValueNode.js';
159
-
160
- // fog
161
- export { default as FogNode, fog } from './fog/FogNode.js';
162
- export { default as FogRangeNode, rangeFog } from './fog/FogRangeNode.js';
163
- export { default as FogExp2Node, densityFog } from './fog/FogExp2Node.js';
103
+ export { default as ExpressionNode } from './code/ExpressionNode.js';
104
+ export { default as CodeNode } from './code/CodeNode.js';
105
+ export { default as FunctionCallNode } from './code/FunctionCallNode.js';
106
+ export { default as FunctionNode } from './code/FunctionNode.js';
107
+ export { default as ScriptableNode } from './code/ScriptableNode.js';
108
+ export { default as ScriptableValueNode } from './code/ScriptableValueNode.js';
164
109
 
165
110
  // geometry
166
- export { default as RangeNode, range } from './geometry/RangeNode.js';
111
+ export { default as RangeNode } from './geometry/RangeNode.js';
167
112
 
168
113
  // gpgpu
169
- export { default as ComputeNode, compute } from './gpgpu/ComputeNode.js';
114
+ export { default as ComputeNode } from './gpgpu/ComputeNode.js';
170
115
 
171
116
  // lighting
172
- export { default as LightNode, lightTargetDirection } from './lighting/LightNode.js';
173
117
  export { default as PointLightNode } from './lighting/PointLightNode.js';
174
118
  export { default as DirectionalLightNode } from './lighting/DirectionalLightNode.js';
175
119
  export { default as RectAreaLightNode } from './lighting/RectAreaLightNode.js';
176
120
  export { default as SpotLightNode } from './lighting/SpotLightNode.js';
177
121
  export { default as IESSpotLightNode } from './lighting/IESSpotLightNode.js';
178
122
  export { default as AmbientLightNode } from './lighting/AmbientLightNode.js';
179
- export { default as LightsNode, lights, lightsNode, addLightNode } from './lighting/LightsNode.js';
180
- export { default as LightingNode /* @TODO: lighting (abstract), light */ } from './lighting/LightingNode.js';
181
- export { default as LightingContextNode, lightingContext } from './lighting/LightingContextNode.js';
123
+ export { default as LightsNode } from './lighting/LightsNode.js';
124
+ export { default as LightingNode } from './lighting/LightingNode.js';
125
+ export { default as LightingContextNode } from './lighting/LightingContextNode.js';
182
126
  export { default as HemisphereLightNode } from './lighting/HemisphereLightNode.js';
183
127
  export { default as LightProbeNode } from './lighting/LightProbeNode.js';
184
128
  export { default as EnvironmentNode } from './lighting/EnvironmentNode.js';
@@ -186,41 +130,15 @@ export { default as BasicEnvironmentNode } from './lighting/BasicEnvironmentNode
186
130
  export { default as IrradianceNode } from './lighting/IrradianceNode.js';
187
131
  export { default as AONode } from './lighting/AONode.js';
188
132
  export { default as AnalyticLightNode } from './lighting/AnalyticLightNode.js';
133
+ export { default as ShadowBaseNode } from './lighting/ShadowBaseNode.js';
134
+ export { default as ShadowNode } from './lighting/ShadowNode.js';
189
135
 
190
136
  // pmrem
191
- export { default as PMREMNode, pmremTexture } from './pmrem/PMREMNode.js';
192
- export * from './pmrem/PMREMUtils.js';
193
-
194
- // procedural
195
- export { default as CheckerNode, checker } from './procedural/CheckerNode.js';
196
-
197
- // loaders
198
- export { default as NodeLoader } from './loaders/NodeLoader.js';
199
- export { default as NodeObjectLoader } from './loaders/NodeObjectLoader.js';
200
- export { default as NodeMaterialLoader } from './loaders/NodeMaterialLoader.js';
137
+ export { default as PMREMNode } from './pmrem/PMREMNode.js';
201
138
 
202
139
  // parsers
203
140
  export { default as GLSLNodeParser } from './parsers/GLSLNodeParser.js'; // @TODO: Move to jsm/renderers/webgl.
204
141
 
205
- // materials
206
- export * from './materials/Materials.js';
207
-
208
- // materialX
209
- export * from './materialx/MaterialXNodes.js';
210
-
211
- // functions
212
- export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX.js';
213
- export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert.js';
214
- export { default as D_GGX } from './functions/BSDF/D_GGX.js';
215
- export { default as DFGApprox } from './functions/BSDF/DFGApprox.js';
216
- export { default as F_Schlick } from './functions/BSDF/F_Schlick.js';
217
- export { default as Schlick_to_F0 } from './functions/BSDF/Schlick_to_F0.js';
218
- export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated.js';
219
-
220
- export { getDistanceAttenuation } from './lighting/LightUtils.js';
221
-
222
- export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness.js';
223
- export { default as getRoughness } from './functions/material/getRoughness.js';
224
-
142
+ // lighting models
225
143
  export { default as PhongLightingModel } from './functions/PhongLightingModel.js';
226
144
  export { default as PhysicalLightingModel } from './functions/PhysicalLightingModel.js';
@@ -0,0 +1,167 @@
1
+ // constants
2
+ export * from './core/constants.js';
3
+
4
+ // core
5
+ export * from './core/AssignNode.js';
6
+ export * from './core/AttributeNode.js';
7
+ export * from './core/BypassNode.js';
8
+ export * from './core/CacheNode.js';
9
+ export * from './core/ContextNode.js';
10
+ export * from './core/IndexNode.js';
11
+ export * from './core/ParameterNode.js';
12
+ export * from './core/PropertyNode.js';
13
+ export * from './core/StackNode.js';
14
+ export * from './core/StructNode.js';
15
+ export * from './core/UniformGroupNode.js';
16
+ export * from './core/UniformNode.js';
17
+ export * from './core/VaryingNode.js';
18
+ export * from './core/OutputStructNode.js';
19
+ export * from './core/MRTNode.js';
20
+
21
+ // math
22
+ export * from './math/Hash.js';
23
+ export * from './math/MathUtils.js';
24
+ export * from './math/TriNoise3D.js';
25
+
26
+ // utils
27
+ export * from './utils/EquirectUVNode.js';
28
+ export * from './utils/FunctionOverloadingNode.js';
29
+ export * from './utils/LoopNode.js';
30
+ export * from './utils/MatcapUVNode.js';
31
+ export * from './utils/MaxMipLevelNode.js';
32
+ export * from './utils/Oscillators.js';
33
+ export * from './utils/Packing.js';
34
+ export * from './utils/RemapNode.js';
35
+ export * from './utils/UVUtils.js';
36
+ export * from './utils/SpriteUtils.js';
37
+ export * from './utils/ViewportUtils.js';
38
+ export * from './utils/RotateNode.js';
39
+ export * from './utils/SpriteSheetUVNode.js';
40
+ export * from './utils/Timer.js';
41
+ export * from './utils/TriplanarTexturesNode.js';
42
+ export * from './utils/ReflectorNode.js';
43
+ export * from './utils/RTTNode.js';
44
+ export * from './utils/PostProcessingUtils.js';
45
+
46
+ // three.js shading language
47
+ export * from './tsl/TSLBase.js';
48
+
49
+ // accessors
50
+ export * from './accessors/AccessorsUtils.js';
51
+ export * from './accessors/Arrays.js';
52
+ export * from './accessors/UniformArrayNode.js';
53
+ export * from './accessors/Bitangent.js';
54
+ export * from './accessors/BufferAttributeNode.js';
55
+ export * from './accessors/BufferNode.js';
56
+ export * from './accessors/Camera.js';
57
+ export * from './accessors/VertexColorNode.js';
58
+ export * from './accessors/CubeTextureNode.js';
59
+ export * from './accessors/InstanceNode.js';
60
+ export * from './accessors/InstancedMeshNode.js';
61
+ export * from './accessors/BatchNode.js';
62
+ export * from './accessors/MaterialNode.js';
63
+ export * from './accessors/MaterialProperties.js';
64
+ export * from './accessors/MaterialReferenceNode.js';
65
+ export * from './accessors/RendererReferenceNode.js';
66
+ export * from './accessors/MorphNode.js';
67
+ export * from './accessors/TextureBicubic.js';
68
+ export * from './accessors/ModelNode.js';
69
+ export * from './accessors/ModelViewProjectionNode.js';
70
+ export * from './accessors/Normal.js';
71
+ export * from './accessors/Object3DNode.js';
72
+ export * from './accessors/PointUVNode.js';
73
+ export * from './accessors/Position.js';
74
+ export * from './accessors/ReferenceNode.js';
75
+ export * from './accessors/ReflectVector.js';
76
+ export * from './accessors/SkinningNode.js';
77
+ export * from './accessors/SceneNode.js';
78
+ export * from './accessors/StorageBufferNode.js';
79
+ export * from './accessors/Tangent.js';
80
+ export * from './accessors/TextureNode.js';
81
+ export * from './accessors/TextureSizeNode.js';
82
+ export * from './accessors/StorageTextureNode.js';
83
+ export * from './accessors/Texture3DNode.js';
84
+ export * from './accessors/UV.js';
85
+ export * from './accessors/UserDataNode.js';
86
+ export * from './accessors/VelocityNode.js';
87
+
88
+ // display
89
+ export * from './display/BlendModes.js';
90
+ export * from './display/BumpMapNode.js';
91
+ export * from './display/ColorAdjustment.js';
92
+ export * from './display/ColorSpaceNode.js';
93
+ export * from './display/FrontFacingNode.js';
94
+ export * from './display/NormalMapNode.js';
95
+ export * from './display/PosterizeNode.js';
96
+ export * from './display/ToneMappingNode.js';
97
+ export * from './display/ScreenNode.js';
98
+ export * from './display/ViewportTextureNode.js';
99
+ export * from './display/ViewportSharedTextureNode.js';
100
+ export * from './display/ViewportDepthTextureNode.js';
101
+ export * from './display/ViewportDepthNode.js';
102
+ export * from './display/RenderOutputNode.js';
103
+ export * from './display/ToonOutlinePassNode.js';
104
+
105
+ export * from './display/PassNode.js';
106
+
107
+ export * from './display/ColorSpaceFunctions.js';
108
+ export * from './display/ToneMappingFunctions.js';
109
+
110
+ // code
111
+ export * from './code/ExpressionNode.js';
112
+ export * from './code/CodeNode.js';
113
+ export * from './code/FunctionCallNode.js';
114
+ export * from './code/FunctionNode.js';
115
+ export * from './code/ScriptableNode.js';
116
+ export * from './code/ScriptableValueNode.js';
117
+
118
+ // fog
119
+ export * from './fog/Fog.js';
120
+
121
+ // geometry
122
+ export * from './geometry/RangeNode.js';
123
+
124
+ // gpgpu
125
+ export * from './gpgpu/ComputeNode.js';
126
+ export * from './gpgpu/ComputeBuiltinNode.js';
127
+ export * from './gpgpu/BarrierNode.js';
128
+ export * from './gpgpu/WorkgroupInfoNode.js';
129
+ export * from './gpgpu/AtomicFunctionNode.js';
130
+
131
+ // lighting
132
+ export * from './accessors/Lights.js';
133
+ export * from './lighting/LightsNode.js';
134
+ export * from './lighting/LightingContextNode.js';
135
+ export * from './lighting/ShadowBaseNode.js';
136
+ export * from './lighting/ShadowNode.js';
137
+ export * from './lighting/PointShadowNode.js';
138
+ export * from './lighting/PointLightNode.js';
139
+
140
+ // pmrem
141
+ export * from './pmrem/PMREMNode.js';
142
+ export * from './pmrem/PMREMUtils.js';
143
+
144
+ // procedural
145
+ export * from './procedural/Checker.js';
146
+
147
+ // shapes
148
+ export * from './shapes/Shapes.js';
149
+
150
+ // materialX
151
+ export * from './materialx/MaterialXNodes.js';
152
+
153
+ // functions
154
+ export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX.js';
155
+ export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert.js';
156
+ export { default as D_GGX } from './functions/BSDF/D_GGX.js';
157
+ export { default as DFGApprox } from './functions/BSDF/DFGApprox.js';
158
+ export { default as F_Schlick } from './functions/BSDF/F_Schlick.js';
159
+ export { default as Schlick_to_F0 } from './functions/BSDF/Schlick_to_F0.js';
160
+ export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated.js';
161
+
162
+ export * from './lighting/LightUtils.js';
163
+
164
+ export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness.js';
165
+ export { default as getParallaxCorrectNormal } from './functions/material/getParallaxCorrectNormal.js';
166
+ export { default as getRoughness } from './functions/material/getRoughness.js';
167
+ export { default as getShIrradianceAt } from './functions/material/getShIrradianceAt.js';
@@ -1,17 +1,46 @@
1
- import { bitangentView } from './BitangentNode.js';
2
- import { normalView, transformedNormalView } from './NormalNode.js';
3
- import { tangentView } from './TangentNode.js';
4
- import { mat3 } from '../shadernode/ShaderNode.js';
1
+ import { bitangentView } from './Bitangent.js';
2
+ import { normalView, transformedNormalView } from './Normal.js';
3
+ import { tangentView } from './Tangent.js';
4
+ import { mat3 } from '../tsl/TSLBase.js';
5
5
  import { mix } from '../math/MathNode.js';
6
6
  import { anisotropy, anisotropyB, roughness } from '../core/PropertyNode.js';
7
- import { positionViewDirection } from './PositionNode.js';
8
-
9
- export const TBNViewMatrix = mat3( tangentView, bitangentView, normalView );
10
-
11
- export const parallaxDirection = positionViewDirection.mul( TBNViewMatrix )/*.normalize()*/;
7
+ import { positionViewDirection } from './Position.js';
8
+
9
+ /**
10
+ * TSL object that represents the TBN matrix in view space.
11
+ *
12
+ * @tsl
13
+ * @type {Node<mat3>}
14
+ */
15
+ export const TBNViewMatrix = /*@__PURE__*/ mat3( tangentView, bitangentView, normalView );
16
+
17
+ /**
18
+ * TSL object that represents the parallax direction.
19
+ *
20
+ * @tsl
21
+ * @type {Node<mat3>}
22
+ */
23
+ export const parallaxDirection = /*@__PURE__*/ positionViewDirection.mul( TBNViewMatrix )/*.normalize()*/;
24
+
25
+ /**
26
+ * TSL function for computing parallax uv coordinates.
27
+ *
28
+ * @tsl
29
+ * @function
30
+ * @param {Node<vec2>} uv - A uv node.
31
+ * @param {Node<vec2>} scale - A scale node.
32
+ * @returns {Node<vec2>} Parallax uv coordinates.
33
+ */
12
34
  export const parallaxUV = ( uv, scale ) => uv.sub( parallaxDirection.mul( scale ) );
13
35
 
14
- export const transformedBentNormalView = ( () => {
36
+ /**
37
+ * TSL function for computing bent normals.
38
+ *
39
+ * @tsl
40
+ * @function
41
+ * @returns {Node<vec3>} Bent normals.
42
+ */
43
+ export const transformedBentNormalView = /*@__PURE__*/ ( () => {
15
44
 
16
45
  // https://google.github.io/filament/Filament.md.html#lighting/imagebasedlights/anisotropy
17
46