@needle-tools/three 0.162.12 → 0.169.2

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 (635) hide show
  1. package/README.md +3 -3
  2. package/build/three.cjs +29789 -1941
  3. package/build/three.module.js +29095 -1933
  4. package/build/three.module.min.js +2 -2
  5. package/build/three.webgpu.js +80003 -0
  6. package/build/three.webgpu.min.js +6 -0
  7. package/build/three.webgpu.nodes.js +79951 -0
  8. package/build/three.webgpu.nodes.min.js +6 -0
  9. package/examples/jsm/Addons.js +2 -5
  10. package/examples/jsm/animation/AnimationClipCreator.js +1 -1
  11. package/examples/jsm/animation/CCDIKSolver.js +4 -2
  12. package/examples/jsm/capabilities/WebGL.js +27 -21
  13. package/examples/jsm/controls/ArcballControls.js +174 -158
  14. package/examples/jsm/controls/DragControls.js +260 -132
  15. package/examples/jsm/controls/FirstPersonControls.js +175 -163
  16. package/examples/jsm/controls/FlyControls.js +194 -188
  17. package/examples/jsm/controls/OrbitControls.js +790 -797
  18. package/examples/jsm/controls/PointerLockControls.js +24 -15
  19. package/examples/jsm/controls/TrackballControls.js +469 -448
  20. package/examples/jsm/controls/TransformControls.js +98 -63
  21. package/examples/jsm/csm/CSMShader.js +4 -4
  22. package/examples/jsm/effects/AnaglyphEffect.js +6 -13
  23. package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
  24. package/examples/jsm/effects/StereoEffect.js +6 -1
  25. package/examples/jsm/environments/RoomEnvironment.js +2 -6
  26. package/examples/jsm/exporters/DRACOExporter.js +4 -2
  27. package/examples/jsm/exporters/EXRExporter.js +19 -11
  28. package/examples/jsm/exporters/GLTFExporter.js +77 -8
  29. package/examples/jsm/exporters/KTX2Exporter.js +21 -13
  30. package/examples/jsm/exporters/OBJExporter.js +5 -1
  31. package/examples/jsm/exporters/PLYExporter.js +9 -7
  32. package/examples/jsm/exporters/USDZExporter.js +55 -11
  33. package/examples/jsm/geometries/DecalGeometry.js +4 -1
  34. package/examples/jsm/geometries/InstancedPointsGeometry.js +1 -1
  35. package/examples/jsm/geometries/TeapotGeometry.js +1 -1
  36. package/examples/jsm/geometries/TextGeometry.js +10 -2
  37. package/examples/jsm/helpers/LightProbeHelper.js +43 -44
  38. package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
  39. package/examples/jsm/helpers/ViewHelper.js +75 -61
  40. package/examples/jsm/interactive/HTMLMesh.js +7 -9
  41. package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
  42. package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
  43. package/examples/jsm/libs/draco/README.md +2 -2
  44. package/examples/jsm/libs/fflate.module.js +694 -496
  45. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  46. package/examples/jsm/lights/LightProbeGenerator.js +24 -10
  47. package/examples/jsm/lights/RectAreaLightTexturesLib.js +91 -0
  48. package/examples/jsm/lights/RectAreaLightUniformsLib.js +8 -63
  49. package/examples/jsm/lines/LineMaterial.js +1 -17
  50. package/examples/jsm/lines/LineSegments2.js +15 -0
  51. package/examples/jsm/lines/Wireframe.js +16 -1
  52. package/examples/jsm/lines/webgpu/Line2.js +20 -0
  53. package/examples/jsm/lines/webgpu/LineSegments2.js +376 -0
  54. package/examples/jsm/loaders/3MFLoader.js +2 -0
  55. package/examples/jsm/loaders/ColladaLoader.js +9 -6
  56. package/examples/jsm/loaders/DRACOLoader.js +4 -2
  57. package/examples/jsm/loaders/EXRLoader.js +351 -97
  58. package/examples/jsm/loaders/FBXLoader.js +77 -78
  59. package/examples/jsm/loaders/GLTFLoader.js +76 -14
  60. package/examples/jsm/loaders/KTX2Loader.js +30 -22
  61. package/examples/jsm/loaders/LDrawLoader.js +3 -2
  62. package/examples/jsm/loaders/LUT3dlLoader.js +0 -15
  63. package/examples/jsm/loaders/LUTCubeLoader.js +0 -14
  64. package/examples/jsm/loaders/LUTImageLoader.js +0 -14
  65. package/examples/jsm/loaders/MMDLoader.js +31 -12
  66. package/examples/jsm/loaders/MTLLoader.js +4 -3
  67. package/examples/jsm/loaders/MaterialXLoader.js +45 -21
  68. package/examples/jsm/loaders/OBJLoader.js +5 -3
  69. package/examples/jsm/loaders/PCDLoader.js +14 -13
  70. package/examples/jsm/loaders/PDBLoader.js +3 -2
  71. package/examples/jsm/loaders/PLYLoader.js +8 -5
  72. package/examples/jsm/loaders/RGBMLoader.js +16 -0
  73. package/examples/jsm/loaders/STLLoader.js +3 -2
  74. package/examples/jsm/loaders/USDZLoader.js +124 -76
  75. package/examples/jsm/loaders/UltraHDRLoader.js +583 -0
  76. package/examples/jsm/loaders/VRMLLoader.js +11 -11
  77. package/examples/jsm/loaders/VTKLoader.js +80 -6
  78. package/examples/jsm/loaders/XYZLoader.js +3 -2
  79. package/examples/jsm/loaders/lwo/IFFParser.js +8 -5
  80. package/examples/jsm/materials/MeshGouraudMaterial.js +7 -1
  81. package/examples/jsm/math/Octree.js +26 -20
  82. package/examples/jsm/misc/GPUComputationRenderer.js +9 -25
  83. package/examples/jsm/misc/Timer.js +1 -1
  84. package/examples/jsm/modifiers/CurveModifier.js +11 -9
  85. package/examples/jsm/modifiers/CurveModifierGPU.js +233 -0
  86. package/examples/jsm/modifiers/SimplifyModifier.js +2 -1
  87. package/examples/jsm/objects/InstancedPoints.js +2 -2
  88. package/examples/jsm/objects/Lensflare.js +2 -2
  89. package/examples/jsm/objects/LensflareMesh.js +322 -0
  90. package/examples/jsm/objects/SkyMesh.js +187 -0
  91. package/examples/jsm/objects/Water2Mesh.js +158 -0
  92. package/examples/jsm/objects/WaterMesh.js +101 -0
  93. package/examples/jsm/physics/JoltPhysics.js +281 -0
  94. package/examples/jsm/physics/RapierPhysics.js +25 -5
  95. package/examples/jsm/postprocessing/GlitchPass.js +0 -3
  96. package/examples/jsm/postprocessing/LUTPass.js +5 -71
  97. package/examples/jsm/postprocessing/OutlinePass.js +31 -46
  98. package/examples/jsm/postprocessing/RenderPass.js +1 -1
  99. package/examples/jsm/postprocessing/RenderTransitionPass.js +168 -0
  100. package/examples/jsm/postprocessing/SAOPass.js +0 -1
  101. package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
  102. package/examples/jsm/postprocessing/SSAOPass.js +6 -12
  103. package/examples/jsm/postprocessing/UnrealBloomPass.js +4 -4
  104. package/examples/jsm/renderers/CSS2DRenderer.js +25 -5
  105. package/examples/jsm/renderers/CSS3DRenderer.js +24 -3
  106. package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +1 -3
  107. package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +1 -1
  108. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +7 -4
  109. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +19 -5
  110. package/examples/jsm/shaders/BleachBypassShader.js +1 -2
  111. package/examples/jsm/shaders/ColorifyShader.js +1 -2
  112. package/examples/jsm/shaders/FXAAShader.js +0 -2
  113. package/examples/jsm/shaders/GTAOShader.js +1 -1
  114. package/examples/jsm/shaders/LuminosityHighPassShader.js +1 -3
  115. package/examples/jsm/shaders/OutputShader.js +1 -1
  116. package/examples/jsm/transpiler/GLSLDecoder.js +47 -5
  117. package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -2
  118. package/examples/jsm/transpiler/TSLEncoder.js +24 -22
  119. package/examples/jsm/utils/BufferGeometryUtils.js +18 -16
  120. package/examples/jsm/utils/GeometryCompressionUtils.js +37 -122
  121. package/examples/jsm/utils/SceneUtils.js +60 -1
  122. package/examples/jsm/utils/ShadowMapViewer.js +3 -8
  123. package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
  124. package/examples/jsm/utils/SkeletonUtils.js +84 -66
  125. package/examples/jsm/utils/SortUtils.js +8 -5
  126. package/examples/jsm/utils/TextureUtils.js +3 -2
  127. package/examples/jsm/utils/TextureUtilsGPU.js +63 -0
  128. package/examples/jsm/webxr/OculusHandModel.js +3 -2
  129. package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
  130. package/examples/jsm/webxr/XRHandModelFactory.js +4 -2
  131. package/package.json +11 -8
  132. package/src/Three.WebGPU.Nodes.js +200 -0
  133. package/src/Three.WebGPU.js +201 -0
  134. package/src/Three.js +23 -1
  135. package/src/animation/AnimationClip.js +1 -1
  136. package/src/animation/tracks/BooleanKeyframeTrack.js +10 -1
  137. package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -2
  138. package/src/animation/tracks/StringKeyframeTrack.js +10 -1
  139. package/src/audio/Audio.js +2 -2
  140. package/src/constants.js +6 -7
  141. package/src/core/BufferAttribute.js +0 -9
  142. package/src/core/Clock.js +1 -1
  143. package/src/core/InterleavedBuffer.js +0 -9
  144. package/src/core/Object3D.js +34 -29
  145. package/src/core/Raycaster.js +6 -2
  146. package/src/core/RenderTarget.js +8 -0
  147. package/src/extras/Controls.js +32 -0
  148. package/src/extras/PMREMGenerator.js +12 -11
  149. package/src/extras/TextureUtils.js +210 -0
  150. package/src/geometries/CylinderGeometry.js +11 -4
  151. package/src/lights/Light.js +1 -0
  152. package/src/lights/LightShadow.js +5 -0
  153. package/{examples/jsm/lights → src/lights/webgpu}/IESSpotLight.js +1 -1
  154. package/src/loaders/FileLoader.js +5 -1
  155. package/src/loaders/LoaderUtils.js +3 -1
  156. package/src/loaders/MaterialLoader.js +8 -1
  157. package/src/loaders/ObjectLoader.js +36 -2
  158. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeLoader.js +27 -5
  159. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeMaterialLoader.js +22 -18
  160. package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeObjectLoader.js +21 -1
  161. package/src/materials/Material.js +4 -0
  162. package/src/materials/MeshPhysicalMaterial.js +20 -0
  163. package/src/materials/ShaderMaterial.js +0 -4
  164. package/src/materials/nodes/InstancedPointsNodeMaterial.js +156 -0
  165. package/{examples/jsm/nodes/materials → src/materials/nodes}/Line2NodeMaterial.js +69 -68
  166. package/src/materials/nodes/LineBasicNodeMaterial.js +31 -0
  167. package/{examples/jsm/nodes/materials → src/materials/nodes}/LineDashedNodeMaterial.js +15 -12
  168. package/src/materials/nodes/MeshBasicNodeMaterial.js +77 -0
  169. package/src/materials/nodes/MeshLambertNodeMaterial.js +47 -0
  170. package/src/materials/nodes/MeshMatcapNodeMaterial.js +57 -0
  171. package/src/materials/nodes/MeshNormalNodeMaterial.js +44 -0
  172. package/src/materials/nodes/MeshPhongNodeMaterial.js +78 -0
  173. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +248 -0
  174. package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshSSSNodeMaterial.js +10 -7
  175. package/src/materials/nodes/MeshStandardNodeMaterial.js +108 -0
  176. package/src/materials/nodes/MeshToonNodeMaterial.js +38 -0
  177. package/{examples/jsm/nodes/materials → src/materials/nodes}/NodeMaterial.js +198 -157
  178. package/{examples/jsm/nodes/materials/Materials.js → src/materials/nodes/NodeMaterials.js} +7 -1
  179. package/{examples/jsm/nodes/materials → src/materials/nodes}/PointsNodeMaterial.js +10 -7
  180. package/src/materials/nodes/ShadowNodeMaterial.js +38 -0
  181. package/src/materials/nodes/SpriteNodeMaterial.js +123 -0
  182. package/src/materials/nodes/VolumeNodeMaterial.js +108 -0
  183. package/src/materials/nodes/manager/NodeMaterialObserver.js +302 -0
  184. package/src/math/Box2.js +4 -4
  185. package/src/math/Box3.js +6 -6
  186. package/src/math/ColorManagement.js +10 -0
  187. package/src/math/Matrix2.js +54 -0
  188. package/src/math/Spherical.js +4 -5
  189. package/src/math/Triangle.js +24 -0
  190. package/src/math/Vector4.js +13 -0
  191. package/src/nodes/Nodes.js +164 -0
  192. package/src/nodes/TSL.js +179 -0
  193. package/src/nodes/accessors/AccessorsUtils.js +25 -0
  194. package/src/nodes/accessors/BatchNode.js +128 -0
  195. package/src/nodes/accessors/Bitangent.js +13 -0
  196. package/{examples/jsm → src}/nodes/accessors/BufferAttributeNode.js +44 -6
  197. package/{examples/jsm → src}/nodes/accessors/BufferNode.js +13 -4
  198. package/src/nodes/accessors/Camera.js +13 -0
  199. package/{examples/jsm → src}/nodes/accessors/ClippingNode.js +22 -15
  200. package/src/nodes/accessors/CubeTextureNode.js +79 -0
  201. package/src/nodes/accessors/InstanceNode.js +144 -0
  202. package/src/nodes/accessors/InstancedPointsMaterialNode.js +24 -0
  203. package/src/nodes/accessors/Lights.js +51 -0
  204. package/src/nodes/accessors/MaterialNode.js +441 -0
  205. package/src/nodes/accessors/MaterialProperties.js +3 -0
  206. package/{examples/jsm → src}/nodes/accessors/MaterialReferenceNode.js +10 -5
  207. package/src/nodes/accessors/ModelNode.js +72 -0
  208. package/src/nodes/accessors/ModelViewProjectionNode.js +42 -0
  209. package/{examples/jsm → src}/nodes/accessors/MorphNode.js +51 -33
  210. package/src/nodes/accessors/Normal.js +88 -0
  211. package/{examples/jsm → src}/nodes/accessors/Object3DNode.js +18 -34
  212. package/src/nodes/accessors/PointUVNode.js +30 -0
  213. package/src/nodes/accessors/Position.js +10 -0
  214. package/src/nodes/accessors/ReferenceBaseNode.js +171 -0
  215. package/{examples/jsm → src}/nodes/accessors/ReferenceNode.js +58 -9
  216. package/src/nodes/accessors/ReflectVector.js +10 -0
  217. package/src/nodes/accessors/RendererReferenceNode.js +35 -0
  218. package/{examples/jsm → src}/nodes/accessors/SceneNode.js +9 -6
  219. package/src/nodes/accessors/SkinningNode.js +191 -0
  220. package/src/nodes/accessors/StorageBufferNode.js +147 -0
  221. package/{examples/jsm/nodes/accessors/TextureStoreNode.js → src/nodes/accessors/StorageTextureNode.js} +35 -10
  222. package/src/nodes/accessors/Tangent.js +22 -0
  223. package/src/nodes/accessors/Texture3DNode.js +103 -0
  224. package/{examples/jsm/nodes/accessors/TextureBicubicNode.js → src/nodes/accessors/TextureBicubic.js} +3 -32
  225. package/{examples/jsm → src}/nodes/accessors/TextureNode.js +123 -39
  226. package/src/nodes/accessors/TextureSizeNode.js +36 -0
  227. package/src/nodes/accessors/UV.js +3 -0
  228. package/{examples/jsm/nodes/accessors/UniformsNode.js → src/nodes/accessors/UniformArrayNode.js} +33 -15
  229. package/{examples/jsm → src}/nodes/accessors/UserDataNode.js +10 -7
  230. package/src/nodes/accessors/VelocityNode.js +134 -0
  231. package/{examples/jsm → src}/nodes/accessors/VertexColorNode.js +9 -5
  232. package/{examples/jsm → src}/nodes/code/CodeNode.js +9 -5
  233. package/{examples/jsm → src}/nodes/code/ExpressionNode.js +10 -6
  234. package/{examples/jsm → src}/nodes/code/FunctionCallNode.js +8 -5
  235. package/{examples/jsm → src}/nodes/code/FunctionNode.js +8 -31
  236. package/{examples/jsm → src}/nodes/code/ScriptableNode.js +24 -7
  237. package/{examples/jsm → src}/nodes/code/ScriptableValueNode.js +11 -8
  238. package/{examples/jsm → src}/nodes/core/AssignNode.js +12 -9
  239. package/{examples/jsm → src}/nodes/core/AttributeNode.js +29 -12
  240. package/{examples/jsm → src}/nodes/core/BypassNode.js +11 -7
  241. package/src/nodes/core/CacheNode.js +50 -0
  242. package/{examples/jsm → src}/nodes/core/ConstNode.js +6 -3
  243. package/{examples/jsm → src}/nodes/core/ContextNode.js +27 -11
  244. package/src/nodes/core/IndexNode.js +99 -0
  245. package/{examples/jsm → src}/nodes/core/InputNode.js +7 -3
  246. package/{examples/jsm → src}/nodes/core/LightingModel.js +2 -2
  247. package/src/nodes/core/MRTNode.js +85 -0
  248. package/{examples/jsm → src}/nodes/core/Node.js +114 -57
  249. package/{examples/jsm → src}/nodes/core/NodeBuilder.js +327 -90
  250. package/src/nodes/core/NodeCache.js +36 -0
  251. package/{examples/jsm → src}/nodes/core/NodeFrame.js +52 -10
  252. package/{examples/jsm → src}/nodes/core/NodeFunction.js +2 -2
  253. package/{examples/jsm → src}/nodes/core/NodeUniform.js +1 -2
  254. package/{examples/jsm → src}/nodes/core/NodeUtils.js +56 -8
  255. package/{examples/jsm → src}/nodes/core/OutputStructNode.js +13 -12
  256. package/{examples/jsm → src}/nodes/core/ParameterNode.js +7 -4
  257. package/src/nodes/core/PropertyNode.js +88 -0
  258. package/{examples/jsm → src}/nodes/core/StackNode.js +31 -11
  259. package/{examples/jsm → src}/nodes/core/StructTypeNode.js +7 -3
  260. package/{examples/jsm → src}/nodes/core/TempNode.js +10 -6
  261. package/src/nodes/core/UniformGroupNode.js +59 -0
  262. package/{examples/jsm → src}/nodes/core/UniformNode.js +37 -5
  263. package/{examples/jsm → src}/nodes/core/VarNode.js +14 -14
  264. package/src/nodes/core/VaryingNode.js +108 -0
  265. package/{examples/jsm → src}/nodes/display/AfterImageNode.js +38 -28
  266. package/src/nodes/display/AnaglyphPassNode.js +67 -0
  267. package/{examples/jsm → src}/nodes/display/AnamorphicNode.js +33 -30
  268. package/src/nodes/display/BleachBypass.js +26 -0
  269. package/src/nodes/display/BlendMode.js +54 -0
  270. package/src/nodes/display/BloomNode.js +341 -0
  271. package/{examples/jsm → src}/nodes/display/BumpMapNode.js +20 -38
  272. package/src/nodes/display/ColorAdjustment.js +46 -0
  273. package/src/nodes/display/ColorSpaceFunctions.js +38 -0
  274. package/src/nodes/display/ColorSpaceNode.js +114 -0
  275. package/src/nodes/display/DenoiseNode.js +204 -0
  276. package/src/nodes/display/DepthOfFieldNode.js +124 -0
  277. package/src/nodes/display/DotScreenNode.js +66 -0
  278. package/src/nodes/display/FXAANode.js +332 -0
  279. package/src/nodes/display/FilmNode.js +56 -0
  280. package/src/nodes/display/FrontFacingNode.js +45 -0
  281. package/src/nodes/display/GTAONode.js +331 -0
  282. package/{examples/jsm → src}/nodes/display/GaussianBlurNode.js +47 -24
  283. package/src/nodes/display/Lut3DNode.js +57 -0
  284. package/src/nodes/display/MotionBlur.js +25 -0
  285. package/{examples/jsm → src}/nodes/display/NormalMapNode.js +14 -14
  286. package/src/nodes/display/ParallaxBarrierPassNode.js +58 -0
  287. package/src/nodes/display/PassNode.js +378 -0
  288. package/src/nodes/display/PixelationPassNode.js +213 -0
  289. package/{examples/jsm → src}/nodes/display/PosterizeNode.js +8 -7
  290. package/src/nodes/display/RGBShiftNode.js +53 -0
  291. package/src/nodes/display/RenderOutputNode.js +60 -0
  292. package/src/nodes/display/SSAAPassNode.js +287 -0
  293. package/src/nodes/display/ScreenNode.js +181 -0
  294. package/src/nodes/display/Sepia.js +17 -0
  295. package/src/nodes/display/SobelOperatorNode.js +126 -0
  296. package/src/nodes/display/StereoCompositePassNode.js +110 -0
  297. package/src/nodes/display/StereoPassNode.js +83 -0
  298. package/src/nodes/display/ToneMappingFunctions.js +190 -0
  299. package/src/nodes/display/ToneMappingNode.js +67 -0
  300. package/src/nodes/display/ToonOutlinePassNode.js +111 -0
  301. package/src/nodes/display/TransitionNode.js +80 -0
  302. package/src/nodes/display/ViewportDepthNode.js +125 -0
  303. package/src/nodes/display/ViewportDepthTextureNode.js +33 -0
  304. package/src/nodes/display/ViewportSharedTextureNode.js +39 -0
  305. package/{examples/jsm → src}/nodes/display/ViewportTextureNode.js +20 -14
  306. package/src/nodes/fog/FogExp2Node.js +35 -0
  307. package/src/nodes/fog/FogNode.js +50 -0
  308. package/src/nodes/fog/FogRangeNode.js +36 -0
  309. package/src/nodes/functions/BSDF/BRDF_GGX.js +59 -0
  310. package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
  311. package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
  312. package/{examples/jsm → src}/nodes/functions/BSDF/DFGApprox.js +2 -2
  313. package/{examples/jsm → src}/nodes/functions/BSDF/D_GGX.js +2 -2
  314. package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +28 -0
  315. package/{examples/jsm → src}/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
  316. package/{examples/jsm → src}/nodes/functions/BSDF/F_Schlick.js +2 -2
  317. package/src/nodes/functions/BSDF/LTC.js +131 -0
  318. package/{examples/jsm → src}/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
  319. package/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -4
  320. package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +29 -0
  321. package/src/nodes/functions/BasicLightingModel.js +78 -0
  322. package/{examples/jsm → src}/nodes/functions/PhongLightingModel.js +11 -9
  323. package/src/nodes/functions/PhysicalLightingModel.js +633 -0
  324. package/src/nodes/functions/ShadowMaskModel.js +31 -0
  325. package/src/nodes/functions/ToonLightingModel.js +51 -0
  326. package/src/nodes/functions/material/getGeometryRoughness.js +13 -0
  327. package/{examples/jsm → src}/nodes/functions/material/getRoughness.js +2 -2
  328. package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
  329. package/{examples/jsm → src}/nodes/geometry/RangeNode.js +28 -11
  330. package/src/nodes/gpgpu/AtomicFunctionNode.js +99 -0
  331. package/src/nodes/gpgpu/BarrierNode.js +40 -0
  332. package/src/nodes/gpgpu/ComputeBuiltinNode.js +98 -0
  333. package/{examples/jsm → src}/nodes/gpgpu/ComputeNode.js +10 -6
  334. package/src/nodes/gpgpu/WorkgroupInfoNode.js +100 -0
  335. package/src/nodes/lighting/AONode.js +27 -0
  336. package/{examples/jsm → src}/nodes/lighting/AmbientLightNode.js +6 -8
  337. package/src/nodes/lighting/AnalyticLightNode.js +522 -0
  338. package/src/nodes/lighting/BasicEnvironmentNode.js +30 -0
  339. package/src/nodes/lighting/BasicLightMapNode.js +32 -0
  340. package/{examples/jsm → src}/nodes/lighting/DirectionalLightNode.js +7 -9
  341. package/src/nodes/lighting/EnvironmentNode.js +138 -0
  342. package/{examples/jsm → src}/nodes/lighting/HemisphereLightNode.js +12 -11
  343. package/{examples/jsm → src}/nodes/lighting/IESSpotLightNode.js +7 -9
  344. package/src/nodes/lighting/IrradianceNode.js +27 -0
  345. package/src/nodes/lighting/LightProbeNode.js +53 -0
  346. package/{examples/jsm → src}/nodes/lighting/LightUtils.js +3 -3
  347. package/src/nodes/lighting/LightingContextNode.js +67 -0
  348. package/{examples/jsm → src}/nodes/lighting/LightingNode.js +9 -3
  349. package/src/nodes/lighting/LightsNode.js +250 -0
  350. package/{examples/jsm → src}/nodes/lighting/PointLightNode.js +12 -13
  351. package/src/nodes/lighting/RectAreaLightNode.js +97 -0
  352. package/{examples/jsm → src}/nodes/lighting/SpotLightNode.js +14 -16
  353. package/{examples/jsm → src}/nodes/materialx/MaterialXNodes.js +2 -2
  354. package/src/nodes/materialx/lib/mx_hsv.js +127 -0
  355. package/{examples/jsm → src}/nodes/materialx/lib/mx_noise.js +500 -603
  356. package/{examples/jsm → src}/nodes/materialx/lib/mx_transform_color.js +3 -9
  357. package/{examples/jsm/nodes/math/CondNode.js → src/nodes/math/ConditionalNode.js} +48 -13
  358. package/src/nodes/math/Hash.js +13 -0
  359. package/src/nodes/math/MathNode.js +407 -0
  360. package/{examples/jsm → src}/nodes/math/MathUtils.js +0 -7
  361. package/src/nodes/math/OperatorNode.js +319 -0
  362. package/{examples/jsm → src}/nodes/math/TriNoise3D.js +19 -29
  363. package/{examples/jsm → src}/nodes/parsers/GLSLNodeFunction.js +7 -7
  364. package/src/nodes/pmrem/PMREMNode.js +240 -0
  365. package/src/nodes/pmrem/PMREMUtils.js +288 -0
  366. package/src/nodes/procedural/Checker.js +14 -0
  367. package/src/nodes/tsl/TSLBase.js +30 -0
  368. package/{examples/jsm/nodes/shadernode/ShaderNode.js → src/nodes/tsl/TSLCore.js} +122 -96
  369. package/{examples/jsm → src}/nodes/utils/ArrayElementNode.js +9 -5
  370. package/{examples/jsm → src}/nodes/utils/ConvertNode.js +7 -3
  371. package/src/nodes/utils/CubeMapNode.js +160 -0
  372. package/src/nodes/utils/Discard.js +8 -0
  373. package/src/nodes/utils/EquirectUVNode.js +36 -0
  374. package/src/nodes/utils/FlipNode.js +68 -0
  375. package/{examples/jsm → src}/nodes/utils/FunctionOverloadingNode.js +11 -5
  376. package/{examples/jsm → src}/nodes/utils/JoinNode.js +6 -3
  377. package/{examples/jsm → src}/nodes/utils/LoopNode.js +23 -12
  378. package/src/nodes/utils/MatcapUVNode.js +33 -0
  379. package/{examples/jsm → src}/nodes/utils/MaxMipLevelNode.js +16 -7
  380. package/{examples/jsm → src}/nodes/utils/OscNode.js +12 -8
  381. package/src/nodes/utils/Packing.js +4 -0
  382. package/src/nodes/utils/RTTNode.js +133 -0
  383. package/{examples/jsm → src}/nodes/utils/ReflectorNode.js +21 -5
  384. package/{examples/jsm → src}/nodes/utils/RemapNode.js +12 -8
  385. package/{examples/jsm → src}/nodes/utils/RotateNode.js +8 -13
  386. package/{examples/jsm → src}/nodes/utils/SetNode.js +7 -4
  387. package/{examples/jsm → src}/nodes/utils/SplitNode.js +7 -3
  388. package/{examples/jsm → src}/nodes/utils/SpriteSheetUVNode.js +10 -6
  389. package/src/nodes/utils/SpriteUtils.js +47 -0
  390. package/{examples/jsm → src}/nodes/utils/StorageArrayElementNode.js +11 -12
  391. package/{examples/jsm → src}/nodes/utils/TimerNode.js +8 -5
  392. package/{examples/jsm → src}/nodes/utils/TriplanarTexturesNode.js +11 -9
  393. package/src/nodes/utils/UVUtils.js +19 -0
  394. package/src/nodes/utils/ViewportUtils.js +14 -0
  395. package/src/objects/BatchedMesh.js +302 -144
  396. package/src/objects/InstancedMesh.js +11 -1
  397. package/src/objects/LOD.js +21 -0
  398. package/src/objects/Line.js +67 -43
  399. package/src/objects/Mesh.js +7 -23
  400. package/src/objects/Points.js +2 -0
  401. package/src/renderers/WebGLRenderer.js +473 -224
  402. package/{examples/jsm → src}/renderers/common/Animation.js +3 -0
  403. package/{examples/jsm → src}/renderers/common/Attributes.js +4 -1
  404. package/{examples/jsm → src}/renderers/common/Backend.js +30 -27
  405. package/{examples/jsm → src}/renderers/common/Background.js +18 -10
  406. package/src/renderers/common/BindGroup.js +18 -0
  407. package/src/renderers/common/Bindings.js +203 -0
  408. package/src/renderers/common/BundleGroup.js +26 -0
  409. package/src/renderers/common/ChainMap.js +59 -0
  410. package/{examples/jsm → src}/renderers/common/ClippingContext.js +24 -12
  411. package/{examples/jsm → src}/renderers/common/Color4.js +1 -1
  412. package/{examples/jsm → src}/renderers/common/CubeRenderTarget.js +16 -4
  413. package/{examples/jsm → src}/renderers/common/Geometries.js +37 -5
  414. package/{examples/jsm → src}/renderers/common/Info.js +35 -15
  415. package/{examples/jsm → src}/renderers/common/Pipelines.js +2 -2
  416. package/src/renderers/common/PostProcessing.js +90 -0
  417. package/src/renderers/common/QuadMesh.js +55 -0
  418. package/src/renderers/common/RenderBundle.js +18 -0
  419. package/src/renderers/common/RenderBundles.js +38 -0
  420. package/{examples/jsm → src}/renderers/common/RenderContext.js +25 -2
  421. package/{examples/jsm → src}/renderers/common/RenderContexts.js +1 -1
  422. package/{examples/jsm → src}/renderers/common/RenderList.js +11 -2
  423. package/src/renderers/common/RenderObject.js +413 -0
  424. package/{examples/jsm → src}/renderers/common/RenderObjects.js +9 -2
  425. package/{examples/jsm → src}/renderers/common/Renderer.js +431 -83
  426. package/{examples/jsm → src}/renderers/common/SampledTexture.js +14 -5
  427. package/{examples/jsm → src}/renderers/common/StorageBufferAttribute.js +1 -1
  428. package/{examples/jsm → src}/renderers/common/StorageInstancedBufferAttribute.js +1 -1
  429. package/{examples/jsm → src}/renderers/common/StorageTexture.js +2 -1
  430. package/{examples/jsm → src}/renderers/common/Textures.js +15 -15
  431. package/{examples/jsm → src}/renderers/common/Uniform.js +10 -5
  432. package/{examples/jsm → src}/renderers/common/UniformsGroup.js +69 -31
  433. package/src/renderers/common/extras/PMREMGenerator.js +771 -0
  434. package/src/renderers/common/nodes/NodeBuilderState.js +58 -0
  435. package/src/renderers/common/nodes/NodeLibrary.js +118 -0
  436. package/src/renderers/common/nodes/NodeSampledTexture.js +64 -0
  437. package/{examples/jsm → src}/renderers/common/nodes/NodeSampler.js +8 -1
  438. package/{examples/jsm → src}/renderers/common/nodes/NodeStorageBuffer.js +5 -1
  439. package/{examples/jsm → src}/renderers/common/nodes/NodeUniform.js +3 -3
  440. package/{examples/jsm → src}/renderers/common/nodes/NodeUniformBuffer.js +2 -1
  441. package/{examples/jsm → src}/renderers/common/nodes/NodeUniformsGroup.js +2 -8
  442. package/{examples/jsm → src}/renderers/common/nodes/Nodes.js +106 -68
  443. package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +31 -1
  444. package/src/renderers/shaders/ShaderChunk/batching_vertex.glsl.js +1 -1
  445. package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -1
  446. package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +9 -1
  447. package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +0 -9
  448. package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -10
  449. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
  450. package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +8 -22
  451. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +6 -0
  452. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +1 -0
  453. package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +2 -2
  454. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
  455. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +2 -10
  456. package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +2 -16
  457. package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +1 -1
  458. package/src/renderers/shaders/ShaderChunk/morphinstance_vertex.glsl.js +1 -1
  459. package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +3 -14
  460. package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +10 -31
  461. package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +3 -23
  462. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +45 -13
  463. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +38 -25
  464. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +3 -0
  465. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +3 -3
  466. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +19 -11
  467. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  468. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +47 -13
  469. package/src/renderers/shaders/ShaderChunk.js +0 -2
  470. package/src/renderers/shaders/ShaderLib/depth.glsl.js +8 -0
  471. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -0
  472. package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
  473. package/src/renderers/shaders/ShaderLib.js +2 -1
  474. package/src/renderers/shaders/UniformsLib.js +3 -0
  475. package/src/renderers/shaders/UniformsUtils.js +10 -1
  476. package/src/renderers/webgl/WebGLAttributes.js +42 -38
  477. package/src/renderers/webgl/WebGLBackground.js +24 -3
  478. package/src/renderers/webgl/WebGLBindingStates.js +14 -51
  479. package/src/renderers/webgl/WebGLBufferRenderer.js +23 -22
  480. package/src/renderers/webgl/WebGLCapabilities.js +44 -13
  481. package/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
  482. package/src/renderers/webgl/WebGLExtensions.js +7 -20
  483. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +23 -21
  484. package/src/renderers/webgl/WebGLLights.js +21 -44
  485. package/src/renderers/webgl/WebGLMaterials.js +9 -8
  486. package/src/renderers/webgl/WebGLMorphtargets.js +78 -217
  487. package/src/renderers/webgl/WebGLProgram.js +46 -78
  488. package/src/renderers/webgl/WebGLPrograms.js +37 -40
  489. package/src/renderers/webgl/WebGLProperties.js +7 -0
  490. package/src/renderers/webgl/WebGLRenderStates.js +15 -9
  491. package/src/renderers/webgl/WebGLShadowMap.js +25 -25
  492. package/src/renderers/webgl/WebGLState.js +35 -58
  493. package/src/renderers/webgl/WebGLTextures.js +313 -358
  494. package/src/renderers/webgl/WebGLUniforms.js +12 -2
  495. package/src/renderers/webgl/WebGLUniformsGroups.js +8 -8
  496. package/src/renderers/webgl/WebGLUtils.js +9 -78
  497. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/WebGLBackend.js +389 -152
  498. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +145 -0
  499. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/nodes/GLSLNodeBuilder.js +245 -44
  500. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLAttributeUtils.js +7 -1
  501. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLConstants.js +2 -0
  502. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLExtensions.js +2 -0
  503. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLState.js +21 -3
  504. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLTextureUtils.js +271 -43
  505. package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLUtils.js +6 -23
  506. package/{examples/jsm → src}/renderers/webgpu/WebGPUBackend.js +318 -141
  507. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +42 -0
  508. package/{examples/jsm → src}/renderers/webgpu/WebGPURenderer.js +10 -7
  509. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +59 -0
  510. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +105 -0
  511. package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeBuilder.js +424 -95
  512. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +159 -0
  513. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUAttributeUtils.js +37 -18
  514. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUBindingUtils.js +86 -32
  515. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUConstants.js +10 -1
  516. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUPipelineUtils.js +68 -27
  517. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTexturePassUtils.js +62 -5
  518. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTextureUtils.js +235 -68
  519. package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUUtils.js +43 -5
  520. package/src/renderers/webxr/WebXRDepthSensing.js +11 -6
  521. package/src/renderers/webxr/WebXRManager.js +53 -38
  522. package/src/scenes/Scene.js +7 -1
  523. package/src/textures/CompressedArrayTexture.js +14 -0
  524. package/src/textures/DataArrayTexture.js +14 -0
  525. package/src/textures/DepthTexture.js +1 -3
  526. package/src/textures/Texture.js +12 -2
  527. package/src/utils.js +62 -1
  528. package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
  529. package/examples/jsm/loaders/LogLuvLoader.js +0 -606
  530. package/examples/jsm/loaders/TiltLoader.js +0 -520
  531. package/examples/jsm/nodes/Nodes.js +0 -195
  532. package/examples/jsm/nodes/accessors/AccessorsUtils.js +0 -10
  533. package/examples/jsm/nodes/accessors/BitangentNode.js +0 -89
  534. package/examples/jsm/nodes/accessors/CameraNode.js +0 -119
  535. package/examples/jsm/nodes/accessors/CubeTextureNode.js +0 -61
  536. package/examples/jsm/nodes/accessors/InstanceNode.js +0 -71
  537. package/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
  538. package/examples/jsm/nodes/accessors/MaterialNode.js +0 -314
  539. package/examples/jsm/nodes/accessors/ModelNode.js +0 -33
  540. package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +0 -39
  541. package/examples/jsm/nodes/accessors/NormalNode.js +0 -96
  542. package/examples/jsm/nodes/accessors/PointUVNode.js +0 -26
  543. package/examples/jsm/nodes/accessors/PositionNode.js +0 -104
  544. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +0 -35
  545. package/examples/jsm/nodes/accessors/SkinningNode.js +0 -124
  546. package/examples/jsm/nodes/accessors/StorageBufferNode.js +0 -72
  547. package/examples/jsm/nodes/accessors/TangentNode.js +0 -109
  548. package/examples/jsm/nodes/accessors/TextureSizeNode.js +0 -35
  549. package/examples/jsm/nodes/accessors/UVNode.js +0 -47
  550. package/examples/jsm/nodes/core/CacheNode.js +0 -49
  551. package/examples/jsm/nodes/core/IndexNode.js +0 -66
  552. package/examples/jsm/nodes/core/NodeCache.js +0 -26
  553. package/examples/jsm/nodes/core/NodeKeywords.js +0 -80
  554. package/examples/jsm/nodes/core/PropertyNode.js +0 -72
  555. package/examples/jsm/nodes/core/UniformGroupNode.js +0 -36
  556. package/examples/jsm/nodes/core/VaryingNode.js +0 -65
  557. package/examples/jsm/nodes/display/BlendModeNode.js +0 -128
  558. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +0 -99
  559. package/examples/jsm/nodes/display/ColorSpaceNode.js +0 -108
  560. package/examples/jsm/nodes/display/FrontFacingNode.js +0 -27
  561. package/examples/jsm/nodes/display/PassNode.js +0 -183
  562. package/examples/jsm/nodes/display/ToneMappingNode.js +0 -184
  563. package/examples/jsm/nodes/display/ViewportDepthNode.js +0 -97
  564. package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +0 -31
  565. package/examples/jsm/nodes/display/ViewportNode.js +0 -134
  566. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +0 -31
  567. package/examples/jsm/nodes/fog/FogExp2Node.js +0 -35
  568. package/examples/jsm/nodes/fog/FogNode.js +0 -38
  569. package/examples/jsm/nodes/fog/FogRangeNode.js +0 -34
  570. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +0 -40
  571. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +0 -393
  572. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +0 -13
  573. package/examples/jsm/nodes/lighting/AONode.js +0 -27
  574. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +0 -241
  575. package/examples/jsm/nodes/lighting/EnvironmentNode.js +0 -181
  576. package/examples/jsm/nodes/lighting/LightNode.js +0 -57
  577. package/examples/jsm/nodes/lighting/LightingContextNode.js +0 -66
  578. package/examples/jsm/nodes/lighting/LightsNode.js +0 -188
  579. package/examples/jsm/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
  580. package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -28
  581. package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -28
  582. package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +0 -34
  583. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -40
  584. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -65
  585. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +0 -155
  586. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +0 -80
  587. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +0 -90
  588. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +0 -130
  589. package/examples/jsm/nodes/math/HashNode.js +0 -34
  590. package/examples/jsm/nodes/math/MathNode.js +0 -391
  591. package/examples/jsm/nodes/math/OperatorNode.js +0 -274
  592. package/examples/jsm/nodes/procedural/CheckerNode.js +0 -42
  593. package/examples/jsm/nodes/utils/DiscardNode.js +0 -27
  594. package/examples/jsm/nodes/utils/EquirectUVNode.js +0 -33
  595. package/examples/jsm/nodes/utils/MatcapUVNode.js +0 -30
  596. package/examples/jsm/nodes/utils/PackingNode.js +0 -55
  597. package/examples/jsm/nodes/utils/RotateUVNode.js +0 -35
  598. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
  599. package/examples/jsm/objects/QuadMesh.js +0 -66
  600. package/examples/jsm/renderers/common/Bindings.js +0 -173
  601. package/examples/jsm/renderers/common/ChainMap.js +0 -89
  602. package/examples/jsm/renderers/common/PostProcessing.js +0 -25
  603. package/examples/jsm/renderers/common/RenderObject.js +0 -221
  604. package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +0 -44
  605. package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +0 -49
  606. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +0 -104
  607. package/examples/jsm/utils/GPUStatsPanel.js +0 -128
  608. package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
  609. package/src/renderers/WebGL1Renderer.js +0 -7
  610. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -10
  611. /package/{examples/jsm → src}/nodes/core/NodeAttribute.js +0 -0
  612. /package/{examples/jsm → src}/nodes/core/NodeCode.js +0 -0
  613. /package/{examples/jsm → src}/nodes/core/NodeFunctionInput.js +0 -0
  614. /package/{examples/jsm → src}/nodes/core/NodeParser.js +0 -0
  615. /package/{examples/jsm → src}/nodes/core/NodeVar.js +0 -0
  616. /package/{examples/jsm → src}/nodes/core/NodeVarying.js +0 -0
  617. /package/{examples/jsm → src}/nodes/core/UniformGroup.js +0 -0
  618. /package/{examples/jsm → src}/nodes/core/constants.js +0 -0
  619. /package/{examples/jsm → src}/nodes/materialx/DISCLAIMER.md +0 -0
  620. /package/{examples/jsm → src}/nodes/parsers/GLSLNodeParser.js +0 -0
  621. /package/{examples/jsm → src}/renderers/common/Binding.js +0 -0
  622. /package/{examples/jsm → src}/renderers/common/Buffer.js +0 -0
  623. /package/{examples/jsm → src}/renderers/common/BufferUtils.js +0 -0
  624. /package/{examples/jsm → src}/renderers/common/ComputePipeline.js +0 -0
  625. /package/{examples/jsm → src}/renderers/common/Constants.js +0 -0
  626. /package/{examples/jsm → src}/renderers/common/DataMap.js +0 -0
  627. /package/{examples/jsm → src}/renderers/common/Pipeline.js +0 -0
  628. /package/{examples/jsm → src}/renderers/common/ProgrammableStage.js +0 -0
  629. /package/{examples/jsm → src}/renderers/common/RenderLists.js +0 -0
  630. /package/{examples/jsm → src}/renderers/common/RenderPipeline.js +0 -0
  631. /package/{examples/jsm → src}/renderers/common/Sampler.js +0 -0
  632. /package/{examples/jsm → src}/renderers/common/StorageBuffer.js +0 -0
  633. /package/{examples/jsm → src}/renderers/common/UniformBuffer.js +0 -0
  634. /package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLCapabilities.js +0 -0
  635. /package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeParser.js +0 -0
@@ -0,0 +1,156 @@
1
+ import NodeMaterial from './NodeMaterial.js';
2
+ import { attribute } from '../../nodes/core/AttributeNode.js';
3
+ import { cameraProjectionMatrix } from '../../nodes/accessors/Camera.js';
4
+ import { materialColor, materialOpacity, materialPointWidth } from '../../nodes/accessors/MaterialNode.js'; // or should this be a property, instead?
5
+ import { modelViewMatrix } from '../../nodes/accessors/ModelNode.js';
6
+ import { positionGeometry } from '../../nodes/accessors/Position.js';
7
+ import { smoothstep, lengthSq } from '../../nodes/math/MathNode.js';
8
+ import { Fn, vec4, float } from '../../nodes/tsl/TSLBase.js';
9
+ import { uv } from '../../nodes/accessors/UV.js';
10
+ import { viewport } from '../../nodes/display/ScreenNode.js';
11
+
12
+ import { PointsMaterial } from '../PointsMaterial.js';
13
+
14
+ const _defaultValues = /*@__PURE__*/ new PointsMaterial();
15
+
16
+ class InstancedPointsNodeMaterial extends NodeMaterial {
17
+
18
+ static get type() {
19
+
20
+ return 'InstancedPointsNodeMaterial';
21
+
22
+ }
23
+
24
+ constructor( params = {} ) {
25
+
26
+ super();
27
+
28
+ this.lights = false;
29
+
30
+ this.useAlphaToCoverage = true;
31
+
32
+ this.useColor = params.vertexColors;
33
+
34
+ this.pointWidth = 1;
35
+
36
+ this.pointColorNode = null;
37
+
38
+ this.pointWidthNode = null;
39
+
40
+ this.setDefaultValues( _defaultValues );
41
+
42
+ this.setValues( params );
43
+
44
+ }
45
+
46
+ setup( builder ) {
47
+
48
+ this.setupShaders( builder );
49
+
50
+ super.setup( builder );
51
+
52
+ }
53
+
54
+ setupShaders( { renderer } ) {
55
+
56
+ const useAlphaToCoverage = this.alphaToCoverage;
57
+ const useColor = this.useColor;
58
+
59
+ this.vertexNode = Fn( () => {
60
+
61
+ const instancePosition = attribute( 'instancePosition' ).xyz;
62
+
63
+ // camera space
64
+ const mvPos = vec4( modelViewMatrix.mul( vec4( instancePosition, 1.0 ) ) );
65
+
66
+ const aspect = viewport.z.div( viewport.w );
67
+
68
+ // clip space
69
+ const clipPos = cameraProjectionMatrix.mul( mvPos );
70
+
71
+ // offset in ndc space
72
+ const offset = positionGeometry.xy.toVar();
73
+
74
+ offset.mulAssign( this.pointWidthNode ? this.pointWidthNode : materialPointWidth );
75
+
76
+ offset.assign( offset.div( viewport.z ) );
77
+ offset.y.assign( offset.y.mul( aspect ) );
78
+
79
+ // back to clip space
80
+ offset.assign( offset.mul( clipPos.w ) );
81
+
82
+ //clipPos.xy += offset;
83
+ clipPos.addAssign( vec4( offset, 0, 0 ) );
84
+
85
+ return clipPos;
86
+
87
+ } )();
88
+
89
+ this.fragmentNode = Fn( () => {
90
+
91
+ const alpha = float( 1 ).toVar();
92
+
93
+ const len2 = lengthSq( uv().mul( 2 ).sub( 1 ) );
94
+
95
+ if ( useAlphaToCoverage && renderer.samples > 1 ) {
96
+
97
+ const dlen = float( len2.fwidth() ).toVar();
98
+
99
+ alpha.assign( smoothstep( dlen.oneMinus(), dlen.add( 1 ), len2 ).oneMinus() );
100
+
101
+ } else {
102
+
103
+ len2.greaterThan( 1.0 ).discard();
104
+
105
+ }
106
+
107
+ let pointColorNode;
108
+
109
+ if ( this.pointColorNode ) {
110
+
111
+ pointColorNode = this.pointColorNode;
112
+
113
+ } else {
114
+
115
+ if ( useColor ) {
116
+
117
+ const instanceColor = attribute( 'instanceColor' );
118
+
119
+ pointColorNode = instanceColor.mul( materialColor );
120
+
121
+ } else {
122
+
123
+ pointColorNode = materialColor;
124
+
125
+ }
126
+
127
+ }
128
+
129
+ alpha.mulAssign( materialOpacity );
130
+
131
+ return vec4( pointColorNode, alpha );
132
+
133
+ } )();
134
+
135
+ }
136
+
137
+ get alphaToCoverage() {
138
+
139
+ return this.useAlphaToCoverage;
140
+
141
+ }
142
+
143
+ set alphaToCoverage( value ) {
144
+
145
+ if ( this.useAlphaToCoverage !== value ) {
146
+
147
+ this.useAlphaToCoverage = value;
148
+ this.needsUpdate = true;
149
+
150
+ }
151
+
152
+ }
153
+
154
+ }
155
+
156
+ export default InstancedPointsNodeMaterial;
@@ -1,32 +1,35 @@
1
- import NodeMaterial, { addNodeMaterial } from './NodeMaterial.js';
2
- import { temp } from '../core/VarNode.js';
3
- import { varying } from '../core/VaryingNode.js';
4
- import { property, varyingProperty } from '../core/PropertyNode.js';
5
- import { attribute } from '../core/AttributeNode.js';
6
- import { cameraProjectionMatrix } from '../accessors/CameraNode.js';
7
- import { materialColor, materialLineScale, materialLineDashSize, materialLineGapSize, materialLineDashOffset, materialLineWidth } from '../accessors/MaterialNode.js';
8
- import { modelViewMatrix } from '../accessors/ModelNode.js';
9
- import { positionGeometry } from '../accessors/PositionNode.js';
10
- import { mix, smoothstep } from '../math/MathNode.js';
11
- import { tslFn, float, vec2, vec3, vec4, If } from '../shadernode/ShaderNode.js';
12
- import { uv } from '../accessors/UVNode.js';
13
- import { viewport } from '../display/ViewportNode.js';
14
- import { dashSize, gapSize } from '../core/PropertyNode.js';
15
-
16
- import { LineDashedMaterial } from 'three';
17
-
18
- const defaultValues = new LineDashedMaterial();
1
+ import NodeMaterial from './NodeMaterial.js';
2
+ import { varyingProperty } from '../../nodes/core/PropertyNode.js';
3
+ import { attribute } from '../../nodes/core/AttributeNode.js';
4
+ import { cameraProjectionMatrix } from '../../nodes/accessors/Camera.js';
5
+ import { materialColor, materialLineScale, materialLineDashSize, materialLineGapSize, materialLineDashOffset, materialLineWidth } from '../../nodes/accessors/MaterialNode.js';
6
+ import { modelViewMatrix } from '../../nodes/accessors/ModelNode.js';
7
+ import { positionGeometry } from '../../nodes/accessors/Position.js';
8
+ import { mix, smoothstep } from '../../nodes/math/MathNode.js';
9
+ import { Fn, varying, float, vec2, vec3, vec4, If } from '../../nodes/tsl/TSLBase.js';
10
+ import { uv } from '../../nodes/accessors/UV.js';
11
+ import { viewport } from '../../nodes/display/ScreenNode.js';
12
+ import { dashSize, gapSize } from '../../nodes/core/PropertyNode.js';
13
+
14
+ import { LineDashedMaterial } from '../LineDashedMaterial.js';
15
+
16
+ const _defaultValues = /*@__PURE__*/ new LineDashedMaterial();
19
17
 
20
18
  class Line2NodeMaterial extends NodeMaterial {
21
19
 
20
+ static get type() {
21
+
22
+ return 'Line2NodeMaterial';
23
+
24
+ }
25
+
22
26
  constructor( params = {} ) {
23
27
 
24
28
  super();
25
29
 
26
- this.normals = false;
27
30
  this.lights = false;
28
31
 
29
- this.setDefaultValues( defaultValues );
32
+ this.setDefaultValues( _defaultValues );
30
33
 
31
34
  this.useAlphaToCoverage = true;
32
35
  this.useColor = params.vertexColors;
@@ -43,20 +46,26 @@ class Line2NodeMaterial extends NodeMaterial {
43
46
  this.dashSizeNode = null;
44
47
  this.gapSizeNode = null;
45
48
 
46
- this.setupShaders();
47
-
48
49
  this.setValues( params );
49
50
 
50
51
  }
51
52
 
52
- setupShaders() {
53
+ setup( builder ) {
54
+
55
+ this.setupShaders( builder );
56
+
57
+ super.setup( builder );
58
+
59
+ }
60
+
61
+ setupShaders( { renderer } ) {
53
62
 
54
63
  const useAlphaToCoverage = this.alphaToCoverage;
55
64
  const useColor = this.useColor;
56
65
  const useDash = this.dashed;
57
66
  const useWorldUnits = this.worldUnits;
58
67
 
59
- const trimSegment = tslFn( ( { start, end } ) => {
68
+ const trimSegment = Fn( ( { start, end } ) => {
60
69
 
61
70
  const a = cameraProjectionMatrix.element( 2 ).element( 2 ); // 3nd entry in 3th column
62
71
  const b = cameraProjectionMatrix.element( 3 ).element( 2 ); // 3nd entry in 4th column
@@ -66,22 +75,24 @@ class Line2NodeMaterial extends NodeMaterial {
66
75
 
67
76
  return vec4( mix( start.xyz, end.xyz, alpha ), end.w );
68
77
 
78
+ } ).setLayout( {
79
+ name: 'trimSegment',
80
+ type: 'vec4',
81
+ inputs: [
82
+ { name: 'start', type: 'vec4' },
83
+ { name: 'end', type: 'vec4' }
84
+ ]
69
85
  } );
70
86
 
71
- this.vertexNode = tslFn( () => {
72
-
73
- varyingProperty( 'vec2', 'vUv' ).assign( uv() );
87
+ this.vertexNode = Fn( () => {
74
88
 
75
89
  const instanceStart = attribute( 'instanceStart' );
76
90
  const instanceEnd = attribute( 'instanceEnd' );
77
91
 
78
92
  // camera space
79
93
 
80
- const start = property( 'vec4', 'start' );
81
- const end = property( 'vec4', 'end' );
82
-
83
- start.assign( modelViewMatrix.mul( vec4( instanceStart, 1.0 ) ) ); // force assignment into correct place in flow
84
- end.assign( modelViewMatrix.mul( vec4( instanceEnd, 1.0 ) ) );
94
+ const start = vec4( modelViewMatrix.mul( vec4( instanceStart, 1.0 ) ) ).toVar( 'start' );
95
+ const end = vec4( modelViewMatrix.mul( vec4( instanceEnd, 1.0 ) ) ).toVar( 'end' );
85
96
 
86
97
  if ( useWorldUnits ) {
87
98
 
@@ -105,7 +116,7 @@ class Line2NodeMaterial extends NodeMaterial {
105
116
 
106
117
  end.assign( trimSegment( { start: start, end: end } ) );
107
118
 
108
- } ).elseif( end.z.lessThan( 0.0 ).and( start.z.greaterThanEqual( 0.0 ) ), () => {
119
+ } ).ElseIf( end.z.lessThan( 0.0 ).and( start.z.greaterThanEqual( 0.0 ) ), () => {
109
120
 
110
121
  start.assign( trimSegment( { start: end, end: start } ) );
111
122
 
@@ -122,13 +133,13 @@ class Line2NodeMaterial extends NodeMaterial {
122
133
  const ndcEnd = clipEnd.xyz.div( clipEnd.w );
123
134
 
124
135
  // direction
125
- const dir = ndcEnd.xy.sub( ndcStart.xy ).temp();
136
+ const dir = ndcEnd.xy.sub( ndcStart.xy ).toVar();
126
137
 
127
138
  // account for clip-space aspect ratio
128
139
  dir.x.assign( dir.x.mul( aspect ) );
129
140
  dir.assign( dir.normalize() );
130
141
 
131
- const clip = temp( vec4() );
142
+ const clip = vec4().toVar();
132
143
 
133
144
  if ( useWorldUnits ) {
134
145
 
@@ -141,18 +152,18 @@ class Line2NodeMaterial extends NodeMaterial {
141
152
 
142
153
  const worldPos = varyingProperty( 'vec4', 'worldPos' );
143
154
 
144
- worldPos.assign( positionGeometry.y.lessThan( 0.5 ).cond( start, end) );
155
+ worldPos.assign( positionGeometry.y.lessThan( 0.5 ).select( start, end ) );
145
156
 
146
157
  // height offset
147
158
  const hw = materialLineWidth.mul( 0.5 );
148
- worldPos.addAssign( vec4( positionGeometry.x.lessThan( 0.0 ).cond( worldUp.mul( hw ), worldUp.mul( hw ).negate() ), 0 ) );
159
+ worldPos.addAssign( vec4( positionGeometry.x.lessThan( 0.0 ).select( worldUp.mul( hw ), worldUp.mul( hw ).negate() ), 0 ) );
149
160
 
150
161
  // don't extend the line if we're rendering dashes because we
151
162
  // won't be rendering the endcaps
152
163
  if ( ! useDash ) {
153
164
 
154
165
  // cap extension
155
- worldPos.addAssign( vec4( positionGeometry.y.lessThan( 0.5 ).cond( worldDir.mul( hw ).negate(), worldDir.mul( hw ) ), 0 ) );
166
+ worldPos.addAssign( vec4( positionGeometry.y.lessThan( 0.5 ).select( worldDir.mul( hw ).negate(), worldDir.mul( hw ) ), 0 ) );
156
167
 
157
168
  // add width to the box
158
169
  worldPos.addAssign( vec4( worldFwd.mul( hw ), 0 ) );
@@ -171,30 +182,28 @@ class Line2NodeMaterial extends NodeMaterial {
171
182
 
172
183
  // shift the depth of the projected points so the line
173
184
  // segments overlap neatly
174
- const clipPose = temp( vec3() );
185
+ const clipPose = vec3().toVar();
175
186
 
176
- clipPose.assign( positionGeometry.y.lessThan( 0.5 ).cond( ndcStart, ndcEnd ) );
187
+ clipPose.assign( positionGeometry.y.lessThan( 0.5 ).select( ndcStart, ndcEnd ) );
177
188
  clip.z.assign( clipPose.z.mul( clip.w ) );
178
189
 
179
190
  } else {
180
191
 
181
- const offset = property( 'vec2', 'offset' );
182
-
183
- offset.assign( vec2( dir.y, dir.x.negate() ) );
192
+ const offset = vec2( dir.y, dir.x.negate() ).toVar( 'offset' );
184
193
 
185
194
  // undo aspect ratio adjustment
186
195
  dir.x.assign( dir.x.div( aspect ) );
187
196
  offset.x.assign( offset.x.div( aspect ) );
188
197
 
189
198
  // sign flip
190
- offset.assign( positionGeometry.x.lessThan( 0.0 ).cond( offset.negate(), offset ) );
199
+ offset.assign( positionGeometry.x.lessThan( 0.0 ).select( offset.negate(), offset ) );
191
200
 
192
201
  // endcaps
193
202
  If( positionGeometry.y.lessThan( 0.0 ), () => {
194
203
 
195
204
  offset.assign( offset.sub( dir ) );
196
205
 
197
- } ).elseif( positionGeometry.y.greaterThan( 1.0 ), () => {
206
+ } ).ElseIf( positionGeometry.y.greaterThan( 1.0 ), () => {
198
207
 
199
208
  offset.assign( offset.add( dir ) );
200
209
 
@@ -207,7 +216,7 @@ class Line2NodeMaterial extends NodeMaterial {
207
216
  offset.assign( offset.div( viewport.w ) );
208
217
 
209
218
  // select end
210
- clip.assign( positionGeometry.y.lessThan( 0.5 ).cond( clipStart, clipEnd ) );
219
+ clip.assign( positionGeometry.y.lessThan( 0.5 ).select( clipStart, clipEnd ) );
211
220
 
212
221
  // back to clip space
213
222
  offset.assign( offset.mul( clip.w ) );
@@ -220,7 +229,7 @@ class Line2NodeMaterial extends NodeMaterial {
220
229
 
221
230
  } )();
222
231
 
223
- const closestLineToLine = tslFn( ( { p1, p2, p3, p4 } ) => {
232
+ const closestLineToLine = Fn( ( { p1, p2, p3, p4 } ) => {
224
233
 
225
234
  const p13 = p1.sub( p3 );
226
235
  const p43 = p4.sub( p3 );
@@ -243,9 +252,9 @@ class Line2NodeMaterial extends NodeMaterial {
243
252
 
244
253
  } );
245
254
 
246
- this.fragmentNode = tslFn( () => {
255
+ this.fragmentNode = Fn( () => {
247
256
 
248
- const vUv = varyingProperty( 'vec2', 'vUv' );
257
+ const vUv = uv();
249
258
 
250
259
  if ( useDash ) {
251
260
 
@@ -260,7 +269,7 @@ class Line2NodeMaterial extends NodeMaterial {
260
269
  const instanceDistanceStart = attribute( 'instanceDistanceStart' );
261
270
  const instanceDistanceEnd = attribute( 'instanceDistanceEnd' );
262
271
 
263
- const lineDistance = positionGeometry.y.lessThan( 0.5 ).cond( dashScaleNode.mul( instanceDistanceStart ), materialLineScale.mul( instanceDistanceEnd ) );
272
+ const lineDistance = positionGeometry.y.lessThan( 0.5 ).select( dashScaleNode.mul( instanceDistanceStart ), materialLineScale.mul( instanceDistanceEnd ) );
264
273
 
265
274
  const vLineDistance = varying( lineDistance.add( materialLineDashOffset ) );
266
275
  const vLineDistanceOffset = offsetNode ? vLineDistance.add( offsetNode ) : vLineDistance;
@@ -270,9 +279,7 @@ class Line2NodeMaterial extends NodeMaterial {
270
279
 
271
280
  }
272
281
 
273
- // force assignment into correct place in flow
274
- const alpha = property( 'float', 'alpha' );
275
- alpha.assign( 1 );
282
+ const alpha = float( 1 ).toVar( 'alpha' );
276
283
 
277
284
  if ( useWorldUnits ) {
278
285
 
@@ -292,7 +299,7 @@ class Line2NodeMaterial extends NodeMaterial {
292
299
 
293
300
  if ( ! useDash ) {
294
301
 
295
- if ( useAlphaToCoverage ) {
302
+ if ( useAlphaToCoverage && renderer.samples > 1 ) {
296
303
 
297
304
  const dnorm = norm.fwidth();
298
305
  alpha.assign( smoothstep( dnorm.negate().add( 0.5 ), dnorm.add( 0.5 ), norm ).oneMinus() );
@@ -309,16 +316,14 @@ class Line2NodeMaterial extends NodeMaterial {
309
316
 
310
317
  // round endcaps
311
318
 
312
- if ( useAlphaToCoverage ) {
319
+ if ( useAlphaToCoverage && renderer.samples > 1 ) {
313
320
 
314
321
  const a = vUv.x;
315
- const b = vUv.y.greaterThan( 0.0 ).cond( vUv.y.sub( 1.0 ), vUv.y.add( 1.0 ) );
322
+ const b = vUv.y.greaterThan( 0.0 ).select( vUv.y.sub( 1.0 ), vUv.y.add( 1.0 ) );
316
323
 
317
324
  const len2 = a.mul( a ).add( b.mul( b ) );
318
325
 
319
- // force assignment out of following 'if' statement - to avoid uniform control flow errors
320
- const dlen = property( 'float', 'dlen' );
321
- dlen.assign( len2.fwidth() );
326
+ const dlen = float( len2.fwidth() ).toVar( 'dlen' );
322
327
 
323
328
  If( vUv.y.abs().greaterThan( 1.0 ), () => {
324
329
 
@@ -331,7 +336,7 @@ class Line2NodeMaterial extends NodeMaterial {
331
336
  If( vUv.y.abs().greaterThan( 1.0 ), () => {
332
337
 
333
338
  const a = vUv.x;
334
- const b = vUv.y.greaterThan( 0.0 ).cond( vUv.y.sub( 1.0 ), vUv.y.add( 1.0 ) );
339
+ const b = vUv.y.greaterThan( 0.0 ).select( vUv.y.sub( 1.0 ), vUv.y.add( 1.0 ) );
335
340
  const len2 = a.mul( a ).add( b.mul( b ) );
336
341
 
337
342
  len2.greaterThan( 1.0 ).discard();
@@ -355,7 +360,7 @@ class Line2NodeMaterial extends NodeMaterial {
355
360
  const instanceColorStart = attribute( 'instanceColorStart' );
356
361
  const instanceColorEnd = attribute( 'instanceColorEnd' );
357
362
 
358
- const instanceColor = positionGeometry.y.lessThan( 0.5 ).cond( instanceColorStart, instanceColorEnd );
363
+ const instanceColor = positionGeometry.y.lessThan( 0.5 ).select( instanceColorStart, instanceColorEnd );
359
364
 
360
365
  lineColorNode = instanceColor.mul( materialColor );
361
366
 
@@ -371,8 +376,6 @@ class Line2NodeMaterial extends NodeMaterial {
371
376
 
372
377
  } )();
373
378
 
374
- this.needsUpdate = true;
375
-
376
379
  }
377
380
 
378
381
 
@@ -387,7 +390,7 @@ class Line2NodeMaterial extends NodeMaterial {
387
390
  if ( this.useWorldUnits !== value ) {
388
391
 
389
392
  this.useWorldUnits = value;
390
- this.setupShaders();
393
+ this.needsUpdate = true;
391
394
 
392
395
  }
393
396
 
@@ -405,7 +408,7 @@ class Line2NodeMaterial extends NodeMaterial {
405
408
  if ( this.useDash !== value ) {
406
409
 
407
410
  this.useDash = value;
408
- this.setupShaders();
411
+ this.needsUpdate = true;
409
412
 
410
413
  }
411
414
 
@@ -423,7 +426,7 @@ class Line2NodeMaterial extends NodeMaterial {
423
426
  if ( this.useAlphaToCoverage !== value ) {
424
427
 
425
428
  this.useAlphaToCoverage = value;
426
- this.setupShaders();
429
+ this.needsUpdate = true;
427
430
 
428
431
  }
429
432
 
@@ -432,5 +435,3 @@ class Line2NodeMaterial extends NodeMaterial {
432
435
  }
433
436
 
434
437
  export default Line2NodeMaterial;
435
-
436
- addNodeMaterial( 'Line2NodeMaterial', Line2NodeMaterial );
@@ -0,0 +1,31 @@
1
+ import NodeMaterial from './NodeMaterial.js';
2
+
3
+ import { LineBasicMaterial } from '../LineBasicMaterial.js';
4
+
5
+ const _defaultValues = /*@__PURE__*/ new LineBasicMaterial();
6
+
7
+ class LineBasicNodeMaterial extends NodeMaterial {
8
+
9
+ static get type() {
10
+
11
+ return 'LineBasicNodeMaterial';
12
+
13
+ }
14
+
15
+ constructor( parameters ) {
16
+
17
+ super();
18
+
19
+ this.isLineBasicNodeMaterial = true;
20
+
21
+ this.lights = false;
22
+
23
+ this.setDefaultValues( _defaultValues );
24
+
25
+ this.setValues( parameters );
26
+
27
+ }
28
+
29
+ }
30
+
31
+ export default LineBasicNodeMaterial;
@@ -1,15 +1,21 @@
1
- import NodeMaterial, { addNodeMaterial } from './NodeMaterial.js';
2
- import { attribute } from '../core/AttributeNode.js';
3
- import { varying } from '../core/VaryingNode.js';
4
- import { materialLineDashSize, materialLineGapSize, materialLineScale } from '../accessors/MaterialNode.js';
5
- import { dashSize, gapSize } from '../core/PropertyNode.js';
6
- import { float } from '../shadernode/ShaderNode.js';
7
- import { LineDashedMaterial } from 'three';
1
+ import NodeMaterial from './NodeMaterial.js';
2
+ import { attribute } from '../../nodes/core/AttributeNode.js';
3
+ import { materialLineDashSize, materialLineGapSize, materialLineScale } from '../../nodes/accessors/MaterialNode.js';
4
+ import { dashSize, gapSize } from '../../nodes/core/PropertyNode.js';
5
+ import { varying, float } from '../../nodes/tsl/TSLBase.js';
8
6
 
9
- const defaultValues = new LineDashedMaterial();
7
+ import { LineDashedMaterial } from '../LineDashedMaterial.js';
8
+
9
+ const _defaultValues = /*@__PURE__*/ new LineDashedMaterial();
10
10
 
11
11
  class LineDashedNodeMaterial extends NodeMaterial {
12
12
 
13
+ static get type() {
14
+
15
+ return 'LineDashedNodeMaterial';
16
+
17
+ }
18
+
13
19
  constructor( parameters ) {
14
20
 
15
21
  super();
@@ -17,9 +23,8 @@ class LineDashedNodeMaterial extends NodeMaterial {
17
23
  this.isLineDashedNodeMaterial = true;
18
24
 
19
25
  this.lights = false;
20
- this.normals = false;
21
26
 
22
- this.setDefaultValues( defaultValues );
27
+ this.setDefaultValues( _defaultValues );
23
28
 
24
29
  this.offsetNode = null;
25
30
  this.dashScaleNode = null;
@@ -50,5 +55,3 @@ class LineDashedNodeMaterial extends NodeMaterial {
50
55
  }
51
56
 
52
57
  export default LineDashedNodeMaterial;
53
-
54
- addNodeMaterial( 'LineDashedNodeMaterial', LineDashedNodeMaterial );
@@ -0,0 +1,77 @@
1
+ import NodeMaterial from './NodeMaterial.js';
2
+ import { materialLightMap } from '../../nodes/accessors/MaterialNode.js';
3
+ import BasicEnvironmentNode from '../../nodes/lighting/BasicEnvironmentNode.js';
4
+ import BasicLightMapNode from '../../nodes/lighting/BasicLightMapNode.js';
5
+ import BasicLightingModel from '../../nodes/functions/BasicLightingModel.js';
6
+ import { normalView } from '../../nodes/accessors/Normal.js';
7
+ import { diffuseColor } from '../../nodes/core/PropertyNode.js';
8
+
9
+ import { MeshBasicMaterial } from '../MeshBasicMaterial.js';
10
+
11
+ const _defaultValues = /*@__PURE__*/ new MeshBasicMaterial();
12
+
13
+ class MeshBasicNodeMaterial extends NodeMaterial {
14
+
15
+ static get type() {
16
+
17
+ return 'MeshBasicNodeMaterial';
18
+
19
+ }
20
+
21
+ constructor( parameters ) {
22
+
23
+ super();
24
+
25
+ this.isMeshBasicNodeMaterial = true;
26
+
27
+ this.lights = true;
28
+
29
+ this.setDefaultValues( _defaultValues );
30
+
31
+ this.setValues( parameters );
32
+
33
+ }
34
+
35
+ setupNormal() {
36
+
37
+ return normalView; // see #28839
38
+
39
+ }
40
+
41
+ setupEnvironment( builder ) {
42
+
43
+ const envNode = super.setupEnvironment( builder );
44
+
45
+ return envNode ? new BasicEnvironmentNode( envNode ) : null;
46
+
47
+ }
48
+
49
+ setupLightMap( builder ) {
50
+
51
+ let node = null;
52
+
53
+ if ( builder.material.lightMap ) {
54
+
55
+ node = new BasicLightMapNode( materialLightMap );
56
+
57
+ }
58
+
59
+ return node;
60
+
61
+ }
62
+
63
+ setupOutgoingLight() {
64
+
65
+ return diffuseColor.rgb;
66
+
67
+ }
68
+
69
+ setupLightingModel() {
70
+
71
+ return new BasicLightingModel();
72
+
73
+ }
74
+
75
+ }
76
+
77
+ export default MeshBasicNodeMaterial;
@@ -0,0 +1,47 @@
1
+ import NodeMaterial from './NodeMaterial.js';
2
+ import BasicEnvironmentNode from '../../nodes/lighting/BasicEnvironmentNode.js';
3
+ import PhongLightingModel from '../../nodes/functions/PhongLightingModel.js';
4
+
5
+ import { MeshLambertMaterial } from '../MeshLambertMaterial.js';
6
+
7
+ const _defaultValues = /*@__PURE__*/ new MeshLambertMaterial();
8
+
9
+ class MeshLambertNodeMaterial extends NodeMaterial {
10
+
11
+ static get type() {
12
+
13
+ return 'MeshLambertNodeMaterial';
14
+
15
+ }
16
+
17
+ constructor( parameters ) {
18
+
19
+ super();
20
+
21
+ this.isMeshLambertNodeMaterial = true;
22
+
23
+ this.lights = true;
24
+
25
+ this.setDefaultValues( _defaultValues );
26
+
27
+ this.setValues( parameters );
28
+
29
+ }
30
+
31
+ setupEnvironment( builder ) {
32
+
33
+ const envNode = super.setupEnvironment( builder );
34
+
35
+ return envNode ? new BasicEnvironmentNode( envNode ) : null;
36
+
37
+ }
38
+
39
+ setupLightingModel( /*builder*/ ) {
40
+
41
+ return new PhongLightingModel( false ); // ( specular ) -> force lambert
42
+
43
+ }
44
+
45
+ }
46
+
47
+ export default MeshLambertNodeMaterial;