super-three 0.167.0 → 0.169.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 (387) hide show
  1. package/build/three.cjs +532 -173
  2. package/build/three.module.js +532 -174
  3. package/build/three.module.min.js +1 -1
  4. package/build/three.webgpu.js +18173 -14266
  5. package/build/three.webgpu.min.js +1 -1
  6. package/build/three.webgpu.nodes.js +79941 -0
  7. package/build/three.webgpu.nodes.min.js +6 -0
  8. package/examples/jsm/Addons.js +0 -4
  9. package/examples/jsm/animation/AnimationClipCreator.js +1 -1
  10. package/examples/jsm/capabilities/WebGL.js +27 -21
  11. package/examples/jsm/controls/ArcballControls.js +174 -158
  12. package/examples/jsm/controls/DragControls.js +260 -132
  13. package/examples/jsm/controls/FirstPersonControls.js +175 -163
  14. package/examples/jsm/controls/FlyControls.js +194 -188
  15. package/examples/jsm/controls/OrbitControls.js +777 -786
  16. package/examples/jsm/controls/PointerLockControls.js +24 -15
  17. package/examples/jsm/controls/TrackballControls.js +469 -448
  18. package/examples/jsm/controls/TransformControls.js +97 -62
  19. package/examples/jsm/effects/AnaglyphEffect.js +6 -13
  20. package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
  21. package/examples/jsm/effects/StereoEffect.js +6 -1
  22. package/examples/jsm/environments/RoomEnvironment.js +1 -1
  23. package/examples/jsm/exporters/DRACOExporter.js +4 -2
  24. package/examples/jsm/exporters/EXRExporter.js +19 -11
  25. package/examples/jsm/exporters/GLTFExporter.js +6 -1
  26. package/examples/jsm/exporters/KTX2Exporter.js +21 -13
  27. package/examples/jsm/exporters/OBJExporter.js +5 -1
  28. package/examples/jsm/exporters/PLYExporter.js +9 -7
  29. package/examples/jsm/exporters/USDZExporter.js +29 -8
  30. package/examples/jsm/geometries/DecalGeometry.js +4 -1
  31. package/examples/jsm/geometries/InstancedPointsGeometry.js +1 -1
  32. package/examples/jsm/helpers/LightProbeHelper.js +43 -44
  33. package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
  34. package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
  35. package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
  36. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  37. package/examples/jsm/lights/LightProbeGenerator.js +24 -10
  38. package/examples/jsm/loaders/ColladaLoader.js +9 -6
  39. package/examples/jsm/loaders/DRACOLoader.js +3 -1
  40. package/examples/jsm/loaders/FBXLoader.js +30 -20
  41. package/examples/jsm/loaders/GLTFLoader.js +5 -10
  42. package/examples/jsm/loaders/KTX2Loader.js +27 -12
  43. package/examples/jsm/loaders/MTLLoader.js +4 -3
  44. package/examples/jsm/loaders/MaterialXLoader.js +40 -14
  45. package/examples/jsm/loaders/OBJLoader.js +5 -3
  46. package/examples/jsm/loaders/PCDLoader.js +14 -13
  47. package/examples/jsm/loaders/PDBLoader.js +3 -2
  48. package/examples/jsm/loaders/PLYLoader.js +8 -5
  49. package/examples/jsm/loaders/STLLoader.js +3 -2
  50. package/examples/jsm/loaders/VRMLLoader.js +10 -10
  51. package/examples/jsm/loaders/VTKLoader.js +4 -3
  52. package/examples/jsm/loaders/XYZLoader.js +3 -2
  53. package/examples/jsm/misc/Timer.js +1 -1
  54. package/examples/jsm/modifiers/CurveModifierGPU.js +233 -0
  55. package/examples/jsm/objects/LensflareMesh.js +322 -0
  56. package/examples/jsm/objects/SkyMesh.js +187 -0
  57. package/examples/jsm/objects/Water2Mesh.js +158 -0
  58. package/examples/jsm/objects/WaterMesh.js +101 -0
  59. package/examples/jsm/physics/JoltPhysics.js +1 -1
  60. package/examples/jsm/physics/RapierPhysics.js +21 -1
  61. package/examples/jsm/postprocessing/OutlinePass.js +31 -46
  62. package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
  63. package/examples/jsm/shaders/BleachBypassShader.js +1 -2
  64. package/examples/jsm/shaders/OutputShader.js +1 -1
  65. package/examples/jsm/transpiler/GLSLDecoder.js +1 -1
  66. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -2
  67. package/examples/jsm/transpiler/TSLEncoder.js +8 -8
  68. package/examples/jsm/utils/GeometryCompressionUtils.js +37 -122
  69. package/examples/jsm/utils/ShadowMapViewer.js +3 -8
  70. package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
  71. package/examples/jsm/utils/SkeletonUtils.js +84 -66
  72. package/examples/jsm/utils/TextureUtils.js +2 -1
  73. package/examples/jsm/utils/TextureUtilsGPU.js +63 -0
  74. package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
  75. package/package.json +3 -2
  76. package/src/Three.WebGPU.Nodes.js +200 -0
  77. package/src/Three.WebGPU.js +7 -0
  78. package/src/Three.js +1 -0
  79. package/src/audio/Audio.js +2 -2
  80. package/src/constants.js +1 -1
  81. package/src/core/BufferAttribute.js +0 -9
  82. package/src/core/Clock.js +1 -1
  83. package/src/core/InterleavedBuffer.js +0 -9
  84. package/src/extras/Controls.js +32 -0
  85. package/src/geometries/CylinderGeometry.js +11 -4
  86. package/src/loaders/MaterialLoader.js +7 -1
  87. package/src/loaders/ObjectLoader.js +3 -3
  88. package/src/{nodes/loaders → loaders/nodes}/NodeLoader.js +25 -5
  89. package/src/{nodes/loaders → loaders/nodes}/NodeMaterialLoader.js +21 -18
  90. package/src/{nodes/loaders → loaders/nodes}/NodeObjectLoader.js +19 -0
  91. package/src/materials/Material.js +4 -7
  92. package/src/materials/nodes/InstancedPointsNodeMaterial.js +156 -0
  93. package/src/{nodes/materials → materials/nodes}/Line2NodeMaterial.js +56 -59
  94. package/src/{nodes/materials → materials/nodes}/LineBasicNodeMaterial.js +8 -5
  95. package/src/{nodes/materials → materials/nodes}/LineDashedNodeMaterial.js +12 -10
  96. package/src/{nodes/materials → materials/nodes}/MeshBasicNodeMaterial.js +16 -12
  97. package/src/{nodes/materials → materials/nodes}/MeshLambertNodeMaterial.js +10 -6
  98. package/src/{nodes/materials → materials/nodes}/MeshMatcapNodeMaterial.js +13 -9
  99. package/src/{nodes/materials → materials/nodes}/MeshNormalNodeMaterial.js +13 -9
  100. package/src/{nodes/materials → materials/nodes}/MeshPhongNodeMaterial.js +14 -9
  101. package/src/{nodes/materials → materials/nodes}/MeshPhysicalNodeMaterial.js +22 -18
  102. package/src/{nodes/materials → materials/nodes}/MeshSSSNodeMaterial.js +10 -7
  103. package/src/{nodes/materials → materials/nodes}/MeshStandardNodeMaterial.js +22 -12
  104. package/src/{nodes/materials → materials/nodes}/MeshToonNodeMaterial.js +9 -5
  105. package/src/{nodes/materials → materials/nodes}/NodeMaterial.js +71 -115
  106. package/src/{nodes/materials/Materials.js → materials/nodes/NodeMaterials.js} +3 -1
  107. package/src/{nodes/materials → materials/nodes}/PointsNodeMaterial.js +8 -5
  108. package/src/{nodes/materials → materials/nodes}/ShadowNodeMaterial.js +9 -5
  109. package/src/{nodes/materials → materials/nodes}/SpriteNodeMaterial.js +47 -14
  110. package/src/{nodes/materials → materials/nodes}/VolumeNodeMaterial.js +24 -22
  111. package/src/materials/nodes/manager/NodeMaterialObserver.js +302 -0
  112. package/src/math/Triangle.js +24 -0
  113. package/src/nodes/Nodes.js +103 -159
  114. package/src/nodes/TSL.js +179 -0
  115. package/src/nodes/accessors/AccessorsUtils.js +8 -8
  116. package/src/nodes/accessors/BatchNode.js +53 -21
  117. package/src/nodes/accessors/{BitangentNode.js → Bitangent.js} +9 -9
  118. package/src/nodes/accessors/BufferAttributeNode.js +8 -5
  119. package/src/nodes/accessors/BufferNode.js +7 -4
  120. package/src/nodes/accessors/Camera.js +13 -0
  121. package/src/nodes/accessors/ClippingNode.js +19 -13
  122. package/src/nodes/accessors/CubeTextureNode.js +9 -8
  123. package/src/nodes/accessors/InstanceNode.js +19 -15
  124. package/src/nodes/accessors/InstancedPointsMaterialNode.js +8 -5
  125. package/src/nodes/accessors/Lights.js +51 -0
  126. package/src/nodes/accessors/MaterialNode.js +56 -55
  127. package/src/nodes/accessors/MaterialProperties.js +3 -0
  128. package/src/nodes/accessors/MaterialReferenceNode.js +9 -4
  129. package/src/nodes/accessors/ModelNode.js +47 -12
  130. package/src/nodes/accessors/ModelViewProjectionNode.js +12 -9
  131. package/src/nodes/accessors/MorphNode.js +17 -13
  132. package/src/nodes/accessors/Normal.js +88 -0
  133. package/src/nodes/accessors/Object3DNode.js +17 -33
  134. package/src/nodes/accessors/PointUVNode.js +9 -5
  135. package/src/nodes/accessors/Position.js +10 -0
  136. package/src/nodes/accessors/ReferenceBaseNode.js +171 -0
  137. package/src/nodes/accessors/ReferenceNode.js +50 -7
  138. package/src/nodes/accessors/ReflectVector.js +10 -0
  139. package/src/nodes/accessors/RendererReferenceNode.js +12 -6
  140. package/src/nodes/accessors/SceneNode.js +9 -6
  141. package/src/nodes/accessors/SkinningNode.js +88 -21
  142. package/src/nodes/accessors/StorageBufferNode.js +22 -5
  143. package/src/nodes/accessors/StorageTextureNode.js +9 -6
  144. package/src/nodes/accessors/Tangent.js +22 -0
  145. package/src/nodes/accessors/Texture3DNode.js +16 -13
  146. package/src/nodes/accessors/{TextureBicubicNode.js → TextureBicubic.js} +3 -32
  147. package/src/nodes/accessors/TextureNode.js +29 -23
  148. package/src/nodes/accessors/TextureSizeNode.js +10 -9
  149. package/src/nodes/accessors/{UniformsNode.js → UniformArrayNode.js} +26 -14
  150. package/src/nodes/accessors/UserDataNode.js +10 -7
  151. package/src/nodes/accessors/VelocityNode.js +134 -0
  152. package/src/nodes/accessors/VertexColorNode.js +7 -4
  153. package/src/nodes/code/CodeNode.js +9 -5
  154. package/src/nodes/code/ExpressionNode.js +10 -6
  155. package/src/nodes/code/FunctionCallNode.js +8 -5
  156. package/src/nodes/code/FunctionNode.js +8 -23
  157. package/src/nodes/code/ScriptableNode.js +13 -10
  158. package/src/nodes/code/ScriptableValueNode.js +9 -7
  159. package/src/nodes/core/AssignNode.js +12 -9
  160. package/src/nodes/core/AttributeNode.js +12 -21
  161. package/src/nodes/core/BypassNode.js +11 -7
  162. package/src/nodes/core/CacheNode.js +10 -6
  163. package/src/nodes/core/ConstNode.js +6 -3
  164. package/src/nodes/core/ContextNode.js +21 -11
  165. package/src/nodes/core/IndexNode.js +35 -8
  166. package/src/nodes/core/InputNode.js +7 -3
  167. package/src/nodes/core/MRTNode.js +16 -7
  168. package/src/nodes/core/Node.js +19 -40
  169. package/src/nodes/core/NodeBuilder.js +117 -38
  170. package/src/nodes/core/NodeUtils.js +49 -6
  171. package/src/nodes/core/OutputStructNode.js +10 -6
  172. package/src/nodes/core/ParameterNode.js +7 -4
  173. package/src/nodes/core/PropertyNode.js +36 -32
  174. package/src/nodes/core/StackNode.js +31 -11
  175. package/src/nodes/core/StructTypeNode.js +7 -3
  176. package/src/nodes/core/TempNode.js +8 -4
  177. package/src/nodes/core/UniformGroupNode.js +14 -11
  178. package/src/nodes/core/UniformNode.js +7 -4
  179. package/src/nodes/core/VarNode.js +12 -8
  180. package/src/nodes/core/VaryingNode.js +10 -6
  181. package/src/nodes/display/AfterImageNode.js +15 -9
  182. package/src/nodes/display/AnaglyphPassNode.js +67 -0
  183. package/src/nodes/display/AnamorphicNode.js +17 -11
  184. package/src/nodes/display/BleachBypass.js +26 -0
  185. package/src/nodes/display/BlendMode.js +54 -0
  186. package/src/nodes/display/BloomNode.js +27 -19
  187. package/src/nodes/display/BumpMapNode.js +13 -12
  188. package/src/nodes/display/ColorAdjustment.js +46 -0
  189. package/src/nodes/display/ColorSpaceFunctions.js +38 -0
  190. package/src/nodes/display/ColorSpaceNode.js +67 -61
  191. package/src/nodes/display/DenoiseNode.js +23 -17
  192. package/src/nodes/display/DepthOfFieldNode.js +12 -7
  193. package/src/nodes/display/DotScreenNode.js +13 -22
  194. package/src/nodes/display/FXAANode.js +21 -16
  195. package/src/nodes/display/FilmNode.js +11 -7
  196. package/src/nodes/display/FrontFacingNode.js +10 -6
  197. package/src/nodes/display/GTAONode.js +22 -15
  198. package/src/nodes/display/GaussianBlurNode.js +14 -8
  199. package/src/nodes/display/Lut3DNode.js +10 -6
  200. package/src/nodes/display/MotionBlur.js +25 -0
  201. package/src/nodes/display/NormalMapNode.js +13 -13
  202. package/src/nodes/display/ParallaxBarrierPassNode.js +58 -0
  203. package/src/nodes/display/PassNode.js +95 -8
  204. package/src/nodes/display/PixelationPassNode.js +20 -8
  205. package/src/nodes/display/PosterizeNode.js +8 -7
  206. package/src/nodes/display/RGBShiftNode.js +11 -7
  207. package/src/nodes/display/RenderOutputNode.js +15 -11
  208. package/src/nodes/display/SSAAPassNode.js +287 -0
  209. package/src/nodes/display/ScreenNode.js +181 -0
  210. package/src/nodes/display/Sepia.js +17 -0
  211. package/src/nodes/display/SobelOperatorNode.js +13 -8
  212. package/src/nodes/display/StereoCompositePassNode.js +110 -0
  213. package/src/nodes/display/StereoPassNode.js +83 -0
  214. package/src/nodes/display/ToneMappingFunctions.js +190 -0
  215. package/src/nodes/display/ToneMappingNode.js +15 -175
  216. package/src/nodes/display/ToonOutlinePassNode.js +111 -0
  217. package/src/nodes/display/TransitionNode.js +12 -8
  218. package/src/nodes/display/ViewportDepthNode.js +34 -29
  219. package/src/nodes/display/ViewportDepthTextureNode.js +10 -9
  220. package/src/nodes/display/ViewportSharedTextureNode.js +10 -9
  221. package/src/nodes/display/ViewportTextureNode.js +11 -11
  222. package/src/nodes/fog/FogExp2Node.js +8 -7
  223. package/src/nodes/fog/FogNode.js +10 -8
  224. package/src/nodes/fog/FogRangeNode.js +8 -7
  225. package/src/nodes/functions/BSDF/BRDF_GGX.js +4 -4
  226. package/src/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  227. package/src/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
  228. package/src/nodes/functions/BSDF/DFGApprox.js +2 -2
  229. package/src/nodes/functions/BSDF/D_GGX.js +2 -2
  230. package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
  231. package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  232. package/src/nodes/functions/BSDF/F_Schlick.js +2 -2
  233. package/src/nodes/functions/BSDF/LTC.js +6 -6
  234. package/src/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
  235. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
  236. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
  237. package/src/nodes/functions/BasicLightingModel.js +1 -1
  238. package/src/nodes/functions/PhongLightingModel.js +5 -5
  239. package/src/nodes/functions/PhysicalLightingModel.js +34 -33
  240. package/src/nodes/functions/ShadowMaskModel.js +1 -1
  241. package/src/nodes/functions/ToonLightingModel.js +3 -3
  242. package/src/nodes/functions/material/getGeometryRoughness.js +4 -4
  243. package/src/nodes/functions/material/getRoughness.js +2 -2
  244. package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
  245. package/src/nodes/geometry/RangeNode.js +9 -5
  246. package/src/nodes/gpgpu/AtomicFunctionNode.js +99 -0
  247. package/src/nodes/gpgpu/BarrierNode.js +40 -0
  248. package/src/nodes/gpgpu/ComputeBuiltinNode.js +98 -0
  249. package/src/nodes/gpgpu/ComputeNode.js +10 -6
  250. package/src/nodes/gpgpu/WorkgroupInfoNode.js +100 -0
  251. package/src/nodes/lighting/AONode.js +6 -3
  252. package/src/nodes/lighting/AmbientLightNode.js +6 -8
  253. package/src/nodes/lighting/AnalyticLightNode.js +225 -36
  254. package/src/nodes/lighting/BasicEnvironmentNode.js +8 -4
  255. package/src/nodes/lighting/BasicLightMapNode.js +7 -4
  256. package/src/nodes/lighting/DirectionalLightNode.js +7 -9
  257. package/src/nodes/lighting/EnvironmentNode.js +23 -19
  258. package/src/nodes/lighting/HemisphereLightNode.js +11 -11
  259. package/src/nodes/lighting/IESSpotLightNode.js +7 -9
  260. package/src/nodes/lighting/IrradianceNode.js +6 -3
  261. package/src/nodes/lighting/LightProbeNode.js +53 -0
  262. package/src/nodes/lighting/LightUtils.js +3 -3
  263. package/src/nodes/lighting/LightingContextNode.js +19 -18
  264. package/src/nodes/lighting/LightingNode.js +7 -3
  265. package/src/nodes/lighting/LightsNode.js +112 -75
  266. package/src/nodes/lighting/PointLightNode.js +12 -13
  267. package/src/nodes/lighting/RectAreaLightNode.js +11 -11
  268. package/src/nodes/lighting/SpotLightNode.js +14 -16
  269. package/src/nodes/materialx/MaterialXNodes.js +2 -2
  270. package/src/nodes/materialx/lib/mx_hsv.js +36 -31
  271. package/src/nodes/materialx/lib/mx_noise.js +96 -96
  272. package/src/nodes/materialx/lib/mx_transform_color.js +2 -2
  273. package/src/nodes/math/{CondNode.js → ConditionalNode.js} +38 -10
  274. package/src/nodes/math/Hash.js +13 -0
  275. package/src/nodes/math/MathNode.js +127 -124
  276. package/src/nodes/math/MathUtils.js +0 -7
  277. package/src/nodes/math/OperatorNode.js +97 -52
  278. package/src/nodes/math/TriNoise3D.js +19 -29
  279. package/src/nodes/pmrem/PMREMNode.js +61 -15
  280. package/src/nodes/pmrem/PMREMUtils.js +46 -46
  281. package/src/nodes/procedural/Checker.js +14 -0
  282. package/src/nodes/tsl/TSLBase.js +30 -0
  283. package/src/nodes/{shadernode/ShaderNode.js → tsl/TSLCore.js} +105 -97
  284. package/src/nodes/utils/ArrayElementNode.js +8 -4
  285. package/src/nodes/utils/ConvertNode.js +7 -3
  286. package/src/nodes/utils/CubeMapNode.js +160 -0
  287. package/src/nodes/utils/Discard.js +8 -0
  288. package/src/nodes/utils/EquirectUVNode.js +9 -6
  289. package/src/nodes/utils/FlipNode.js +68 -0
  290. package/src/nodes/utils/FunctionOverloadingNode.js +9 -5
  291. package/src/nodes/utils/JoinNode.js +6 -3
  292. package/src/nodes/utils/LoopNode.js +16 -6
  293. package/src/nodes/utils/MatcapUVNode.js +10 -7
  294. package/src/nodes/utils/MaxMipLevelNode.js +8 -5
  295. package/src/nodes/utils/OscNode.js +12 -8
  296. package/src/nodes/utils/Packing.js +4 -0
  297. package/src/nodes/utils/RTTNode.js +11 -8
  298. package/src/nodes/utils/ReflectorNode.js +12 -4
  299. package/src/nodes/utils/RemapNode.js +12 -8
  300. package/src/nodes/utils/RotateNode.js +8 -13
  301. package/src/nodes/utils/SetNode.js +7 -4
  302. package/src/nodes/utils/SplitNode.js +7 -3
  303. package/src/nodes/utils/SpriteSheetUVNode.js +10 -6
  304. package/src/nodes/utils/SpriteUtils.js +47 -0
  305. package/src/nodes/utils/StorageArrayElementNode.js +11 -12
  306. package/src/nodes/utils/TimerNode.js +8 -5
  307. package/src/nodes/utils/TriplanarTexturesNode.js +11 -9
  308. package/src/nodes/utils/UVUtils.js +19 -0
  309. package/src/nodes/utils/ViewportUtils.js +14 -0
  310. package/src/objects/BatchedMesh.js +78 -13
  311. package/src/objects/LOD.js +21 -0
  312. package/src/objects/Line.js +1 -0
  313. package/src/objects/Mesh.js +7 -23
  314. package/src/objects/Points.js +2 -0
  315. package/src/renderers/WebGLRenderer.js +88 -41
  316. package/src/renderers/common/Backend.js +2 -2
  317. package/src/renderers/common/Background.js +3 -1
  318. package/src/renderers/common/BindGroup.js +3 -1
  319. package/src/renderers/common/Bindings.js +13 -15
  320. package/src/renderers/common/BundleGroup.js +26 -0
  321. package/src/renderers/common/ClippingContext.js +15 -5
  322. package/src/renderers/common/CubeRenderTarget.js +9 -3
  323. package/src/renderers/common/PostProcessing.js +4 -1
  324. package/src/renderers/common/QuadMesh.js +2 -0
  325. package/src/renderers/common/RenderContext.js +23 -0
  326. package/src/renderers/common/RenderList.js +1 -1
  327. package/src/renderers/common/RenderObject.js +117 -6
  328. package/src/renderers/common/RenderObjects.js +8 -1
  329. package/src/renderers/common/Renderer.js +128 -94
  330. package/src/renderers/common/SampledTexture.js +12 -3
  331. package/src/renderers/common/Textures.js +8 -12
  332. package/src/renderers/common/extras/PMREMGenerator.js +19 -22
  333. package/src/renderers/common/nodes/NodeBuilderState.js +4 -4
  334. package/src/renderers/common/nodes/NodeLibrary.js +118 -0
  335. package/src/renderers/common/nodes/NodeSampledTexture.js +2 -2
  336. package/src/renderers/common/nodes/Nodes.js +65 -19
  337. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
  338. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
  339. package/src/renderers/webgl/WebGLAttributes.js +45 -14
  340. package/src/renderers/webgl/WebGLCapabilities.js +9 -0
  341. package/src/renderers/webgl/WebGLProgram.js +3 -1
  342. package/src/renderers/webgl/WebGLPrograms.js +21 -17
  343. package/src/renderers/webgl/WebGLProperties.js +7 -0
  344. package/src/renderers/webgl/WebGLState.js +21 -0
  345. package/src/renderers/webgl/WebGLTextures.js +83 -4
  346. package/src/renderers/webgl-fallback/WebGLBackend.js +135 -110
  347. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +60 -12
  348. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +6 -0
  349. package/src/renderers/webgl-fallback/utils/WebGLState.js +20 -2
  350. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +89 -37
  351. package/src/renderers/webgpu/WebGPUBackend.js +112 -86
  352. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +42 -0
  353. package/src/renderers/webgpu/WebGPURenderer.js +9 -6
  354. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +59 -0
  355. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +105 -0
  356. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +189 -73
  357. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +6 -16
  358. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +45 -21
  359. package/src/renderers/webgpu/utils/WebGPUConstants.js +2 -1
  360. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +7 -16
  361. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +62 -5
  362. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +43 -26
  363. package/src/renderers/webgpu/utils/WebGPUUtils.js +19 -2
  364. package/src/renderers/webxr/WebXRManager.js +32 -25
  365. package/src/utils.js +33 -1
  366. package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
  367. package/examples/jsm/loaders/LogLuvLoader.js +0 -606
  368. package/examples/jsm/loaders/TiltLoader.js +0 -520
  369. package/examples/jsm/utils/GPUStatsPanel.js +0 -95
  370. package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
  371. package/src/nodes/accessors/CameraNode.js +0 -19
  372. package/src/nodes/accessors/NormalNode.js +0 -14
  373. package/src/nodes/accessors/PositionNode.js +0 -10
  374. package/src/nodes/accessors/ReflectVectorNode.js +0 -10
  375. package/src/nodes/accessors/TangentNode.js +0 -23
  376. package/src/nodes/core/NodeKeywords.js +0 -80
  377. package/src/nodes/display/BlendModeNode.js +0 -128
  378. package/src/nodes/display/ColorAdjustmentNode.js +0 -104
  379. package/src/nodes/display/ViewportNode.js +0 -137
  380. package/src/nodes/lighting/LightNode.js +0 -57
  381. package/src/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
  382. package/src/nodes/math/HashNode.js +0 -34
  383. package/src/nodes/procedural/CheckerNode.js +0 -42
  384. package/src/nodes/utils/DiscardNode.js +0 -28
  385. package/src/nodes/utils/PackingNode.js +0 -55
  386. package/src/nodes/utils/RotateUVNode.js +0 -35
  387. /package/src/nodes/accessors/{UVNode.js → UV.js} +0 -0
@@ -1,180 +1,152 @@
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 AssignNode } from './core/AssignNode.js';
6
+ export { default as AttributeNode } from './core/AttributeNode.js';
7
+ export { default as BypassNode } from './core/BypassNode.js';
8
+ export { default as CacheNode } from './core/CacheNode.js';
12
9
  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';
10
+ export { default as ContextNode } from './core/ContextNode.js';
11
+ export { default as IndexNode } from './core/IndexNode.js';
15
12
  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';
13
+ export { default as Node } from './core/Node.js';
14
+ export { default as VarNode } from './core/VarNode.js';
18
15
  export { default as NodeAttribute } from './core/NodeAttribute.js';
19
16
  export { default as NodeBuilder } from './core/NodeBuilder.js';
20
17
  export { default as NodeCache } from './core/NodeCache.js';
21
18
  export { default as NodeCode } from './core/NodeCode.js';
22
19
  export { default as NodeFrame } from './core/NodeFrame.js';
23
20
  export { default as NodeFunctionInput } from './core/NodeFunctionInput.js';
24
- export { default as NodeKeywords } from './core/NodeKeywords.js';
25
21
  export { default as NodeUniform } from './core/NodeUniform.js';
26
22
  export { default as NodeVar } from './core/NodeVar.js';
27
23
  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';
24
+ export { default as ParameterNode } from './core/ParameterNode.js';
25
+ export { default as PropertyNode } from './core/PropertyNode.js';
26
+ export { default as StackNode } from './core/StackNode.js';
31
27
  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';
28
+ export { default as UniformGroupNode } from './core/UniformGroupNode.js';
29
+ export { default as UniformNode } from './core/UniformNode.js';
30
+ export { default as VaryingNode } from './core/VaryingNode.js';
31
+ export { default as OutputStructNode } from './core/OutputStructNode.js';
32
+ export { default as MRTNode } from './core/MRTNode.js';
37
33
 
38
34
  import * as NodeUtils from './core/NodeUtils.js';
39
35
  export { NodeUtils };
40
36
 
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, 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
37
  // utils
53
38
  export { default as ArrayElementNode } from './utils/ArrayElementNode.js';
54
39
  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';
40
+ export { default as EquirectUVNode } from './utils/EquirectUVNode.js';
41
+ export { default as FunctionOverloadingNode } from './utils/FunctionOverloadingNode.js';
58
42
  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 { default as RotateUVNode, rotateUV } from './utils/RotateUVNode.js';
66
- export { default as RotateNode, rotate } from './utils/RotateNode.js';
43
+ export { default as LoopNode } from './utils/LoopNode.js';
44
+ export { default as MatcapUVNode } from './utils/MatcapUVNode.js';
45
+ export { default as MaxMipLevelNode } from './utils/MaxMipLevelNode.js';
46
+ export { default as OscNode } from './utils/OscNode.js';
47
+ export { default as RemapNode } from './utils/RemapNode.js';
48
+ export { default as RotateNode } from './utils/RotateNode.js';
67
49
  export { default as SetNode } from './utils/SetNode.js';
68
50
  export { default as SplitNode } from './utils/SplitNode.js';
69
- export { default as SpriteSheetUVNode, spritesheetUV } from './utils/SpriteSheetUVNode.js';
51
+ export { default as SpriteSheetUVNode } from './utils/SpriteSheetUVNode.js';
70
52
  export { default as StorageArrayElementNode } from './utils/StorageArrayElementNode.js';
71
- export { default as TimerNode, timerLocal, timerGlobal, timerDelta, frameId } from './utils/TimerNode.js';
72
- export { default as TriplanarTexturesNode, triplanarTextures, triplanarTexture } from './utils/TriplanarTexturesNode.js';
73
- export { default as ReflectorNode, reflector } from './utils/ReflectorNode.js';
74
- export { default as RTTNode, rtt } from './utils/RTTNode.js';
75
-
76
- // shadernode
77
- export * from './shadernode/ShaderNode.js';
53
+ export { default as TimerNode } from './utils/TimerNode.js';
54
+ export { default as TriplanarTexturesNode } from './utils/TriplanarTexturesNode.js';
55
+ export { default as ReflectorNode } from './utils/ReflectorNode.js';
56
+ export { default as RTTNode } from './utils/RTTNode.js';
78
57
 
79
58
  // accessors
80
- export { TBNViewMatrix, parallaxDirection, parallaxUV, transformedBentNormalView } from './accessors/AccessorsUtils.js';
81
- export { default as UniformsNode, uniforms } from './accessors/UniformsNode.js';
82
- export * from './accessors/BitangentNode.js';
83
- export { default as BufferAttributeNode, bufferAttribute, dynamicBufferAttribute, instancedBufferAttribute, instancedDynamicBufferAttribute } from './accessors/BufferAttributeNode.js';
84
- export { default as BufferNode, buffer } from './accessors/BufferNode.js';
85
- export * from './accessors/CameraNode.js';
86
- export { default as VertexColorNode, vertexColor } from './accessors/VertexColorNode.js';
87
- export { default as CubeTextureNode, cubeTexture } from './accessors/CubeTextureNode.js';
88
- export { default as InstanceNode, instance } from './accessors/InstanceNode.js';
89
- export { default as BatchNode, batch } from './accessors/BatchNode.js';
90
- 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';
91
- export { default as MaterialReferenceNode, materialReference } from './accessors/MaterialReferenceNode.js';
92
- export { default as RendererReferenceNode, rendererReference } from './accessors/RendererReferenceNode.js';
93
- export { default as MorphNode, morphReference } from './accessors/MorphNode.js';
94
- export { default as TextureBicubicNode, textureBicubic } from './accessors/TextureBicubicNode.js';
95
- export { default as ModelNode, modelDirection, modelViewMatrix, modelNormalMatrix, modelWorldMatrix, modelPosition, modelViewPosition, modelScale, modelWorldMatrixInverse } from './accessors/ModelNode.js';
96
- export { default as ModelViewProjectionNode, modelViewProjection } from './accessors/ModelViewProjectionNode.js';
97
- export * from './accessors/NormalNode.js';
98
- export { default as Object3DNode, objectDirection, objectViewMatrix, objectNormalMatrix, objectWorldMatrix, objectPosition, objectScale, objectViewPosition } from './accessors/Object3DNode.js';
99
- export { default as PointUVNode, pointUV } from './accessors/PointUVNode.js';
100
- export * from './accessors/PositionNode.js';
101
- export { default as ReferenceNode, reference, referenceBuffer } from './accessors/ReferenceNode.js';
102
- export * from './accessors/ReflectVectorNode.js';
103
- export { default as SkinningNode, skinning, skinningReference } from './accessors/SkinningNode.js';
104
- export { default as SceneNode, backgroundBlurriness, backgroundIntensity } from './accessors/SceneNode.js';
105
- export { default as StorageBufferNode, storage, storageObject } from './accessors/StorageBufferNode.js';
106
- export * from './accessors/TangentNode.js';
107
- export { default as TextureNode, texture, textureLoad, /*textureLevel,*/ sampler } from './accessors/TextureNode.js';
108
- export { default as TextureSizeNode, textureSize } from './accessors/TextureSizeNode.js';
109
- export { default as StorageTextureNode, storageTexture, textureStore } from './accessors/StorageTextureNode.js';
110
- export { default as Texture3DNode, texture3D } from './accessors/Texture3DNode.js';
111
- export * from './accessors/UVNode.js';
112
- export { default as UserDataNode, userData } from './accessors/UserDataNode.js';
59
+ export { default as UniformArrayNode } from './accessors/UniformArrayNode.js';
60
+ export { default as BufferAttributeNode } from './accessors/BufferAttributeNode.js';
61
+ export { default as BufferNode } from './accessors/BufferNode.js';
62
+ export { default as VertexColorNode } from './accessors/VertexColorNode.js';
63
+ export { default as CubeTextureNode } from './accessors/CubeTextureNode.js';
64
+ export { default as InstanceNode } from './accessors/InstanceNode.js';
65
+ export { default as BatchNode } from './accessors/BatchNode.js';
66
+ export { default as MaterialNode } from './accessors/MaterialNode.js';
67
+ export { default as MaterialReferenceNode } from './accessors/MaterialReferenceNode.js';
68
+ export { default as RendererReferenceNode } from './accessors/RendererReferenceNode.js';
69
+ export { default as MorphNode } from './accessors/MorphNode.js';
70
+ export { default as ModelNode } from './accessors/ModelNode.js';
71
+ export { default as ModelViewProjectionNode } from './accessors/ModelViewProjectionNode.js';
72
+ export { default as Object3DNode } from './accessors/Object3DNode.js';
73
+ export { default as PointUVNode } from './accessors/PointUVNode.js';
74
+ export { default as ReferenceNode } from './accessors/ReferenceNode.js';
75
+ export { default as SkinningNode } from './accessors/SkinningNode.js';
76
+ export { default as SceneNode } from './accessors/SceneNode.js';
77
+ export { default as StorageBufferNode } from './accessors/StorageBufferNode.js';
78
+ export { default as TextureNode } from './accessors/TextureNode.js';
79
+ export { default as TextureSizeNode } from './accessors/TextureSizeNode.js';
80
+ export { default as StorageTextureNode } from './accessors/StorageTextureNode.js';
81
+ export { default as Texture3DNode } from './accessors/Texture3DNode.js';
82
+ export { default as UserDataNode } from './accessors/UserDataNode.js';
113
83
 
114
84
  // display
115
- export { default as BlendModeNode, burn, dodge, overlay, screen } from './display/BlendModeNode.js';
116
- export { default as BumpMapNode, bumpMap } from './display/BumpMapNode.js';
117
- export { default as ColorAdjustmentNode, saturation, vibrance, hue, luminance, threshold } from './display/ColorAdjustmentNode.js';
118
- export { default as ColorSpaceNode, linearToColorSpace, colorSpaceToLinear, linearTosRGB, sRGBToLinear } from './display/ColorSpaceNode.js';
119
- export { default as FrontFacingNode, frontFacing, faceDirection } from './display/FrontFacingNode.js';
120
- export { default as NormalMapNode, normalMap } from './display/NormalMapNode.js';
121
- export { default as PosterizeNode, posterize } from './display/PosterizeNode.js';
122
- export { default as ToneMappingNode, toneMapping } from './display/ToneMappingNode.js';
123
- export { default as ViewportNode, viewport, viewportCoordinate, viewportResolution, viewportTopLeft, viewportBottomLeft, viewportTopRight, viewportBottomRight } from './display/ViewportNode.js';
124
- export { default as ViewportTextureNode, viewportTexture, viewportMipTexture } from './display/ViewportTextureNode.js';
125
- export { default as ViewportSharedTextureNode, viewportSharedTexture } from './display/ViewportSharedTextureNode.js';
126
- export { default as ViewportDepthTextureNode, viewportDepthTexture } from './display/ViewportDepthTextureNode.js';
127
- export { default as ViewportDepthNode, viewZToOrthographicDepth, orthographicDepthToViewZ, viewZToPerspectiveDepth, perspectiveDepthToViewZ, depth, linearDepth, viewportLinearDepth } from './display/ViewportDepthNode.js';
128
- export { default as GaussianBlurNode, gaussianBlur } from './display/GaussianBlurNode.js';
129
- export { default as AfterImageNode, afterImage } from './display/AfterImageNode.js';
130
- export { default as AnamorphicNode, anamorphic } from './display/AnamorphicNode.js';
131
- export { default as SobelOperatorNode, sobel } from './display/SobelOperatorNode.js';
132
- export { default as DepthOfFieldNode, dof } from './display/DepthOfFieldNode.js';
133
- export { default as DotScreenNode, dotScreen } from './display/DotScreenNode.js';
134
- export { default as RGBShiftNode, rgbShift } from './display/RGBShiftNode.js';
135
- export { default as FilmNode, film } from './display/FilmNode.js';
136
- export { default as Lut3DNode, lut3D } from './display/Lut3DNode.js';
137
- export { default as GTAONode, ao } from './display/GTAONode.js';
138
- export { default as DenoiseNode, denoise } from './display/DenoiseNode.js';
139
- export { default as FXAANode, fxaa } from './display/FXAANode.js';
140
- export { default as BloomNode, bloom } from './display/BloomNode.js';
141
- export { default as TransitionNode, transition } from './display/TransitionNode.js';
142
- export { default as RenderOutputNode, renderOutput } from './display/RenderOutputNode.js';
143
- export { default as PixelationPassNode, pixelationPass } from './display/PixelationPassNode.js';
144
-
145
- export { default as PassNode, pass, passTexture, depthPass } from './display/PassNode.js';
85
+ export { default as BumpMapNode } from './display/BumpMapNode.js';
86
+ export { default as ColorSpaceNode } from './display/ColorSpaceNode.js';
87
+ export { default as FrontFacingNode } from './display/FrontFacingNode.js';
88
+ export { default as NormalMapNode } from './display/NormalMapNode.js';
89
+ export { default as PosterizeNode } from './display/PosterizeNode.js';
90
+ export { default as ToneMappingNode } from './display/ToneMappingNode.js';
91
+ export { default as ScreenNode } from './display/ScreenNode.js';
92
+ export { default as ViewportTextureNode } from './display/ViewportTextureNode.js';
93
+ export { default as ViewportSharedTextureNode } from './display/ViewportSharedTextureNode.js';
94
+ export { default as ViewportDepthTextureNode } from './display/ViewportDepthTextureNode.js';
95
+ export { default as ViewportDepthNode } from './display/ViewportDepthNode.js';
96
+ export { default as GaussianBlurNode } from './display/GaussianBlurNode.js';
97
+ export { default as AfterImageNode } from './display/AfterImageNode.js';
98
+ export { default as AnamorphicNode } from './display/AnamorphicNode.js';
99
+ export { default as SobelOperatorNode } from './display/SobelOperatorNode.js';
100
+ export { default as DepthOfFieldNode } from './display/DepthOfFieldNode.js';
101
+ export { default as DotScreenNode } from './display/DotScreenNode.js';
102
+ export { default as RGBShiftNode } from './display/RGBShiftNode.js';
103
+ export { default as FilmNode } from './display/FilmNode.js';
104
+ export { default as Lut3DNode } from './display/Lut3DNode.js';
105
+ export { default as GTAONode } from './display/GTAONode.js';
106
+ export { default as DenoiseNode } from './display/DenoiseNode.js';
107
+ export { default as FXAANode } from './display/FXAANode.js';
108
+ export { default as BloomNode } from './display/BloomNode.js';
109
+ export { default as TransitionNode } from './display/TransitionNode.js';
110
+ export { default as RenderOutputNode } from './display/RenderOutputNode.js';
111
+ export { default as PixelationPassNode } from './display/PixelationPassNode.js';
112
+ export { default as SSAAPassNode } from './display/SSAAPassNode.js';
113
+ export { default as StereoPassNode } from './display/StereoPassNode.js';
114
+ export { default as AnaglyphPassNode } from './display/AnaglyphPassNode.js';
115
+ export { default as ParallaxBarrierPassNode } from './display/ParallaxBarrierPassNode.js';
116
+ export { default as PassNode } from './display/PassNode.js';
117
+ export { default as ToonOutlinePassNode } from './display/ToonOutlinePassNode.js';
146
118
 
147
119
  // code
148
- export { default as ExpressionNode, expression } from './code/ExpressionNode.js';
149
- export { default as CodeNode, code, js, wgsl, glsl } from './code/CodeNode.js';
150
- export { default as FunctionCallNode, call } from './code/FunctionCallNode.js';
151
- export { default as FunctionNode, wgslFn, glslFn } from './code/FunctionNode.js';
152
- export { default as ScriptableNode, scriptable, global } from './code/ScriptableNode.js';
153
- export { default as ScriptableValueNode, scriptableValue } from './code/ScriptableValueNode.js';
120
+ export { default as ExpressionNode } from './code/ExpressionNode.js';
121
+ export { default as CodeNode } from './code/CodeNode.js';
122
+ export { default as FunctionCallNode } from './code/FunctionCallNode.js';
123
+ export { default as FunctionNode } from './code/FunctionNode.js';
124
+ export { default as ScriptableNode } from './code/ScriptableNode.js';
125
+ export { default as ScriptableValueNode } from './code/ScriptableValueNode.js';
154
126
 
155
127
  // fog
156
- export { default as FogNode, fog } from './fog/FogNode.js';
157
- export { default as FogRangeNode, rangeFog } from './fog/FogRangeNode.js';
158
- export { default as FogExp2Node, densityFog } from './fog/FogExp2Node.js';
128
+ export { default as FogNode } from './fog/FogNode.js';
129
+ export { default as FogRangeNode } from './fog/FogRangeNode.js';
130
+ export { default as FogExp2Node } from './fog/FogExp2Node.js';
159
131
 
160
132
  // geometry
161
- export { default as RangeNode, range } from './geometry/RangeNode.js';
133
+ export { default as RangeNode } from './geometry/RangeNode.js';
162
134
 
163
135
  // gpgpu
164
- export { default as ComputeNode, compute } from './gpgpu/ComputeNode.js';
136
+ export { default as ComputeNode } from './gpgpu/ComputeNode.js';
165
137
 
166
138
  // lighting
167
- export { default as LightNode, lightTargetDirection } from './lighting/LightNode.js';
168
139
  export { default as PointLightNode } from './lighting/PointLightNode.js';
169
140
  export { default as DirectionalLightNode } from './lighting/DirectionalLightNode.js';
170
141
  export { default as RectAreaLightNode } from './lighting/RectAreaLightNode.js';
171
142
  export { default as SpotLightNode } from './lighting/SpotLightNode.js';
172
143
  export { default as IESSpotLightNode } from './lighting/IESSpotLightNode.js';
173
144
  export { default as AmbientLightNode } from './lighting/AmbientLightNode.js';
174
- export { default as LightsNode, lights, lightsNode, addLightNode } from './lighting/LightsNode.js';
175
- export { default as LightingNode /* @TODO: lighting (abstract), light */ } from './lighting/LightingNode.js';
176
- export { default as LightingContextNode, lightingContext } from './lighting/LightingContextNode.js';
145
+ export { default as LightsNode } from './lighting/LightsNode.js';
146
+ export { default as LightingNode } from './lighting/LightingNode.js';
147
+ export { default as LightingContextNode } from './lighting/LightingContextNode.js';
177
148
  export { default as HemisphereLightNode } from './lighting/HemisphereLightNode.js';
149
+ export { default as LightProbeNode } from './lighting/LightProbeNode.js';
178
150
  export { default as EnvironmentNode } from './lighting/EnvironmentNode.js';
179
151
  export { default as BasicEnvironmentNode } from './lighting/BasicEnvironmentNode.js';
180
152
  export { default as IrradianceNode } from './lighting/IrradianceNode.js';
@@ -182,39 +154,11 @@ export { default as AONode } from './lighting/AONode.js';
182
154
  export { default as AnalyticLightNode } from './lighting/AnalyticLightNode.js';
183
155
 
184
156
  // pmrem
185
- export { default as PMREMNode, pmremTexture } from './pmrem/PMREMNode.js';
186
- export * from './pmrem/PMREMUtils.js';
187
-
188
- // procedural
189
- export { default as CheckerNode, checker } from './procedural/CheckerNode.js';
190
-
191
- // loaders
192
- export { default as NodeLoader } from './loaders/NodeLoader.js';
193
- export { default as NodeObjectLoader } from './loaders/NodeObjectLoader.js';
194
- export { default as NodeMaterialLoader } from './loaders/NodeMaterialLoader.js';
157
+ export { default as PMREMNode } from './pmrem/PMREMNode.js';
195
158
 
196
159
  // parsers
197
160
  export { default as GLSLNodeParser } from './parsers/GLSLNodeParser.js'; // @TODO: Move to jsm/renderers/webgl.
198
161
 
199
- // materials
200
- export * from './materials/Materials.js';
201
-
202
- // materialX
203
- export * from './materialx/MaterialXNodes.js';
204
-
205
- // functions
206
- export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX.js';
207
- export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert.js';
208
- export { default as D_GGX } from './functions/BSDF/D_GGX.js';
209
- export { default as DFGApprox } from './functions/BSDF/DFGApprox.js';
210
- export { default as F_Schlick } from './functions/BSDF/F_Schlick.js';
211
- export { default as Schlick_to_F0 } from './functions/BSDF/Schlick_to_F0.js';
212
- export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated.js';
213
-
214
- export { getDistanceAttenuation } from './lighting/LightUtils.js';
215
-
216
- export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness.js';
217
- export { default as getRoughness } from './functions/material/getRoughness.js';
218
-
162
+ // lighting models
219
163
  export { default as PhongLightingModel } from './functions/PhongLightingModel.js';
220
164
  export { default as PhysicalLightingModel } from './functions/PhysicalLightingModel.js';
@@ -0,0 +1,179 @@
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/UniformGroupNode.js';
15
+ export * from './core/UniformNode.js';
16
+ export * from './core/VaryingNode.js';
17
+ export * from './core/OutputStructNode.js';
18
+ export * from './core/MRTNode.js';
19
+
20
+ // math
21
+ export * from './math/Hash.js';
22
+ export * from './math/MathUtils.js';
23
+ export * from './math/TriNoise3D.js';
24
+
25
+ // utils
26
+ export * from './utils/EquirectUVNode.js';
27
+ export * from './utils/FunctionOverloadingNode.js';
28
+ export * from './utils/LoopNode.js';
29
+ export * from './utils/MatcapUVNode.js';
30
+ export * from './utils/MaxMipLevelNode.js';
31
+ export * from './utils/OscNode.js';
32
+ export * from './utils/Packing.js';
33
+ export * from './utils/RemapNode.js';
34
+ export * from './utils/UVUtils.js';
35
+ export * from './utils/SpriteUtils.js';
36
+ export * from './utils/ViewportUtils.js';
37
+ export * from './utils/RotateNode.js';
38
+ export * from './utils/SpriteSheetUVNode.js';
39
+ export * from './utils/TimerNode.js';
40
+ export * from './utils/TriplanarTexturesNode.js';
41
+ export * from './utils/ReflectorNode.js';
42
+ export * from './utils/RTTNode.js';
43
+
44
+ // three.js shading language
45
+ export * from './tsl/TSLBase.js';
46
+
47
+ // accessors
48
+ export * from './accessors/AccessorsUtils.js';
49
+ export * from './accessors/UniformArrayNode.js';
50
+ export * from './accessors/Bitangent.js';
51
+ export * from './accessors/BufferAttributeNode.js';
52
+ export * from './accessors/BufferNode.js';
53
+ export * from './accessors/Camera.js';
54
+ export * from './accessors/VertexColorNode.js';
55
+ export * from './accessors/CubeTextureNode.js';
56
+ export * from './accessors/InstanceNode.js';
57
+ export * from './accessors/BatchNode.js';
58
+ export * from './accessors/MaterialNode.js';
59
+ export * from './accessors/MaterialProperties.js';
60
+ export * from './accessors/MaterialReferenceNode.js';
61
+ export * from './accessors/RendererReferenceNode.js';
62
+ export * from './accessors/MorphNode.js';
63
+ export * from './accessors/TextureBicubic.js';
64
+ export * from './accessors/ModelNode.js';
65
+ export * from './accessors/ModelViewProjectionNode.js';
66
+ export * from './accessors/Normal.js';
67
+ export * from './accessors/Object3DNode.js';
68
+ export * from './accessors/PointUVNode.js';
69
+ export * from './accessors/Position.js';
70
+ export * from './accessors/ReferenceNode.js';
71
+ export * from './accessors/ReflectVector.js';
72
+ export * from './accessors/SkinningNode.js';
73
+ export * from './accessors/SceneNode.js';
74
+ export * from './accessors/StorageBufferNode.js';
75
+ export * from './accessors/Tangent.js';
76
+ export * from './accessors/TextureNode.js';
77
+ export * from './accessors/TextureSizeNode.js';
78
+ export * from './accessors/StorageTextureNode.js';
79
+ export * from './accessors/Texture3DNode.js';
80
+ export * from './accessors/UV.js';
81
+ export * from './accessors/UserDataNode.js';
82
+ export * from './accessors/VelocityNode.js';
83
+
84
+ // display
85
+ export * from './display/BlendMode.js';
86
+ export * from './display/BumpMapNode.js';
87
+ export * from './display/ColorAdjustment.js';
88
+ export * from './display/ColorSpaceNode.js';
89
+ export * from './display/FrontFacingNode.js';
90
+ export * from './display/NormalMapNode.js';
91
+ export * from './display/PosterizeNode.js';
92
+ export * from './display/ToneMappingNode.js';
93
+ export * from './display/ScreenNode.js';
94
+ export * from './display/ViewportTextureNode.js';
95
+ export * from './display/ViewportSharedTextureNode.js';
96
+ export * from './display/ViewportDepthTextureNode.js';
97
+ export * from './display/ViewportDepthNode.js';
98
+ export * from './display/GaussianBlurNode.js';
99
+ export * from './display/AfterImageNode.js';
100
+ export * from './display/AnamorphicNode.js';
101
+ export * from './display/SobelOperatorNode.js';
102
+ export * from './display/DepthOfFieldNode.js';
103
+ export * from './display/DotScreenNode.js';
104
+ export * from './display/RGBShiftNode.js';
105
+ export * from './display/FilmNode.js';
106
+ export * from './display/Lut3DNode.js';
107
+ export * from './display/MotionBlur.js';
108
+ export * from './display/GTAONode.js';
109
+ export * from './display/DenoiseNode.js';
110
+ export * from './display/FXAANode.js';
111
+ export * from './display/BloomNode.js';
112
+ export * from './display/TransitionNode.js';
113
+ export * from './display/RenderOutputNode.js';
114
+ export * from './display/PixelationPassNode.js';
115
+ export * from './display/SSAAPassNode.js';
116
+ export * from './display/StereoPassNode.js';
117
+ export * from './display/AnaglyphPassNode.js';
118
+ export * from './display/ParallaxBarrierPassNode.js';
119
+ export * from './display/BleachBypass.js';
120
+ export * from './display/Sepia.js';
121
+ export * from './display/ToonOutlinePassNode.js';
122
+
123
+ export * from './display/PassNode.js';
124
+
125
+ export * from './display/ColorSpaceFunctions.js';
126
+ export * from './display/ToneMappingFunctions.js';
127
+
128
+ // code
129
+ export * from './code/ExpressionNode.js';
130
+ export * from './code/CodeNode.js';
131
+ export * from './code/FunctionCallNode.js';
132
+ export * from './code/FunctionNode.js';
133
+ export * from './code/ScriptableNode.js';
134
+ export * from './code/ScriptableValueNode.js';
135
+
136
+ // fog
137
+ export * from './fog/FogNode.js';
138
+ export * from './fog/FogRangeNode.js';
139
+ export * from './fog/FogExp2Node.js';
140
+
141
+ // geometry
142
+ export * from './geometry/RangeNode.js';
143
+
144
+ // gpgpu
145
+ export * from './gpgpu/ComputeNode.js';
146
+ export * from './gpgpu/ComputeBuiltinNode.js';
147
+ export * from './gpgpu/BarrierNode.js';
148
+ export * from './gpgpu/WorkgroupInfoNode.js';
149
+ export * from './gpgpu/AtomicFunctionNode.js';
150
+
151
+ // lighting
152
+ export * from './accessors/Lights.js';
153
+ export * from './lighting/LightsNode.js';
154
+ export * from './lighting/LightingContextNode.js';
155
+
156
+ // pmrem
157
+ export * from './pmrem/PMREMNode.js';
158
+ export * from './pmrem/PMREMUtils.js';
159
+
160
+ // procedural
161
+ export * from './procedural/Checker.js';
162
+
163
+ // materialX
164
+ export * from './materialx/MaterialXNodes.js';
165
+
166
+ // functions
167
+ export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX.js';
168
+ export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert.js';
169
+ export { default as D_GGX } from './functions/BSDF/D_GGX.js';
170
+ export { default as DFGApprox } from './functions/BSDF/DFGApprox.js';
171
+ export { default as F_Schlick } from './functions/BSDF/F_Schlick.js';
172
+ export { default as Schlick_to_F0 } from './functions/BSDF/Schlick_to_F0.js';
173
+ export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated.js';
174
+
175
+ export * from './lighting/LightUtils.js';
176
+
177
+ export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness.js';
178
+ export { default as getRoughness } from './functions/material/getRoughness.js';
179
+ export { default as getShIrradianceAt } from './functions/material/getShIrradianceAt.js';
@@ -1,17 +1,17 @@
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';
7
+ import { positionViewDirection } from './Position.js';
8
8
 
9
- export const TBNViewMatrix = mat3( tangentView, bitangentView, normalView );
9
+ export const TBNViewMatrix = /*@__PURE__*/ mat3( tangentView, bitangentView, normalView );
10
10
 
11
- export const parallaxDirection = positionViewDirection.mul( TBNViewMatrix )/*.normalize()*/;
11
+ export const parallaxDirection = /*@__PURE__*/ positionViewDirection.mul( TBNViewMatrix )/*.normalize()*/;
12
12
  export const parallaxUV = ( uv, scale ) => uv.sub( parallaxDirection.mul( scale ) );
13
13
 
14
- export const transformedBentNormalView = ( () => {
14
+ export const transformedBentNormalView = /*@__PURE__*/ ( () => {
15
15
 
16
16
  // https://google.github.io/filament/Filament.md.html#lighting/imagebasedlights/anisotropy
17
17