super-three 0.171.0 → 0.173.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 (455) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/build/three.cjs +594 -427
  4. package/build/three.core.js +515 -81
  5. package/build/three.core.min.js +2 -2
  6. package/build/three.module.js +79 -350
  7. package/build/three.module.min.js +2 -2
  8. package/build/three.tsl.js +20 -7
  9. package/build/three.tsl.min.js +2 -2
  10. package/build/three.webgpu.js +29362 -3427
  11. package/build/three.webgpu.min.js +2 -2
  12. package/build/three.webgpu.nodes.js +29361 -3427
  13. package/build/three.webgpu.nodes.min.js +2 -2
  14. package/examples/jsm/Addons.js +0 -5
  15. package/examples/jsm/animation/CCDIKSolver.js +9 -7
  16. package/examples/jsm/capabilities/WebGPU.js +1 -1
  17. package/examples/jsm/controls/ArcballControls.js +48 -37
  18. package/examples/jsm/controls/OrbitControls.js +5 -4
  19. package/examples/jsm/csm/CSMShadowNode.js +16 -11
  20. package/examples/jsm/curves/NURBSCurve.js +1 -1
  21. package/examples/jsm/curves/NURBSUtils.js +3 -0
  22. package/examples/jsm/effects/OutlineEffect.js +1 -1
  23. package/examples/jsm/exporters/GLTFExporter.js +34 -29
  24. package/examples/jsm/exporters/KTX2Exporter.js +1 -1
  25. package/examples/jsm/exporters/PLYExporter.js +2 -2
  26. package/examples/jsm/geometries/TextGeometry.js +1 -12
  27. package/examples/jsm/helpers/TextureHelperGPU.js +15 -5
  28. package/examples/jsm/helpers/VertexNormalsHelper.js +2 -0
  29. package/examples/jsm/interactive/InteractiveGroup.js +108 -51
  30. package/examples/jsm/libs/demuxer_mp4.js +109 -0
  31. package/examples/jsm/lights/LightProbeGenerator.js +3 -3
  32. package/examples/jsm/lines/webgpu/LineSegments2.js +15 -6
  33. package/examples/jsm/loaders/3MFLoader.js +6 -3
  34. package/examples/jsm/loaders/BVHLoader.js +1 -1
  35. package/examples/jsm/loaders/ColladaLoader.js +5 -5
  36. package/examples/jsm/loaders/DDSLoader.js +42 -0
  37. package/examples/jsm/loaders/GCodeLoader.js +4 -2
  38. package/examples/jsm/loaders/GLTFLoader.js +22 -4
  39. package/examples/jsm/loaders/KTX2Loader.js +6 -1
  40. package/examples/jsm/loaders/KTXLoader.js +4 -4
  41. package/examples/jsm/loaders/LDrawLoader.js +1 -1
  42. package/examples/jsm/loaders/LottieLoader.js +1 -1
  43. package/examples/jsm/loaders/MTLLoader.js +1 -0
  44. package/examples/jsm/loaders/NRRDLoader.js +1 -1
  45. package/examples/jsm/loaders/PLYLoader.js +7 -7
  46. package/examples/jsm/loaders/PVRLoader.js +1 -1
  47. package/examples/jsm/loaders/SVGLoader.js +2 -2
  48. package/examples/jsm/loaders/TDSLoader.js +1 -2
  49. package/examples/jsm/loaders/VRMLLoader.js +7 -7
  50. package/examples/jsm/loaders/lwo/IFFParser.js +4 -4
  51. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -1
  52. package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
  53. package/examples/jsm/math/ConvexHull.js +1 -1
  54. package/examples/jsm/math/OBB.js +17 -0
  55. package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
  56. package/examples/jsm/misc/ProgressiveLightMap.js +4 -3
  57. package/examples/jsm/misc/ProgressiveLightMapGPU.js +14 -13
  58. package/examples/jsm/misc/Volume.js +27 -17
  59. package/examples/jsm/misc/VolumeSlice.js +7 -5
  60. package/examples/jsm/modifiers/CurveModifier.js +10 -8
  61. package/examples/jsm/modifiers/CurveModifierGPU.js +9 -7
  62. package/examples/jsm/modifiers/SimplifyModifier.js +2 -2
  63. package/examples/jsm/objects/GroundedSkybox.js +4 -4
  64. package/examples/jsm/objects/Sky.js +2 -2
  65. package/examples/jsm/objects/SkyMesh.js +3 -3
  66. package/examples/jsm/objects/Water2.js +1 -1
  67. package/examples/jsm/objects/Water2Mesh.js +2 -2
  68. package/examples/jsm/objects/WaterMesh.js +29 -24
  69. package/examples/jsm/physics/JoltPhysics.js +7 -7
  70. package/examples/jsm/physics/RapierPhysics.js +4 -4
  71. package/examples/jsm/postprocessing/BloomPass.js +2 -2
  72. package/examples/jsm/postprocessing/EffectComposer.js +1 -2
  73. package/examples/jsm/postprocessing/OutlinePass.js +4 -4
  74. package/examples/jsm/postprocessing/OutputPass.js +2 -0
  75. package/examples/jsm/postprocessing/SAOPass.js +1 -2
  76. package/examples/jsm/postprocessing/SMAAPass.js +1 -3
  77. package/examples/jsm/postprocessing/SSAOPass.js +2 -4
  78. package/examples/jsm/postprocessing/SSRPass.js +2 -4
  79. package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -2
  80. package/examples/jsm/renderers/SVGRenderer.js +6 -4
  81. package/examples/jsm/shaders/BokehShader2.js +1 -1
  82. package/examples/jsm/shaders/GodRaysShader.js +3 -3
  83. package/examples/jsm/shaders/OutputShader.js +5 -1
  84. package/examples/jsm/shaders/SobelOperatorShader.js +1 -1
  85. package/examples/jsm/transpiler/GLSLDecoder.js +2 -2
  86. package/examples/jsm/transpiler/TSLEncoder.js +2 -0
  87. package/examples/jsm/tsl/display/AfterImageNode.js +93 -4
  88. package/examples/jsm/tsl/display/AnaglyphPassNode.js +46 -2
  89. package/examples/jsm/tsl/display/AnamorphicNode.js +118 -5
  90. package/examples/jsm/tsl/display/BleachBypass.js +10 -0
  91. package/examples/jsm/tsl/display/BloomNode.js +233 -26
  92. package/examples/jsm/tsl/display/DenoiseNode.js +141 -25
  93. package/examples/jsm/tsl/display/DepthOfFieldNode.js +80 -1
  94. package/examples/jsm/tsl/display/DotScreenNode.js +50 -5
  95. package/examples/jsm/tsl/display/FXAANode.js +52 -3
  96. package/examples/jsm/tsl/display/FilmNode.js +47 -1
  97. package/examples/jsm/tsl/display/GTAONode.js +210 -14
  98. package/examples/jsm/tsl/display/GaussianBlurNode.js +152 -8
  99. package/examples/jsm/tsl/display/LensflareNode.js +131 -13
  100. package/examples/jsm/tsl/display/Lut3DNode.js +55 -1
  101. package/examples/jsm/tsl/display/MotionBlur.js +12 -2
  102. package/examples/jsm/tsl/display/OutlineNode.js +343 -26
  103. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +36 -2
  104. package/examples/jsm/tsl/display/PixelationPassNode.js +142 -9
  105. package/examples/jsm/tsl/display/RGBShiftNode.js +49 -2
  106. package/examples/jsm/tsl/display/SMAANode.js +187 -46
  107. package/examples/jsm/tsl/display/SSAAPassNode.js +110 -25
  108. package/examples/jsm/tsl/display/SSRNode.js +194 -21
  109. package/examples/jsm/tsl/display/Sepia.js +9 -0
  110. package/examples/jsm/tsl/display/SobelOperatorNode.js +54 -4
  111. package/examples/jsm/tsl/display/StereoCompositePassNode.js +79 -3
  112. package/examples/jsm/tsl/display/StereoPassNode.js +41 -3
  113. package/examples/jsm/tsl/display/TRAAPassNode.js +116 -21
  114. package/examples/jsm/tsl/display/TransitionNode.js +71 -6
  115. package/examples/jsm/tsl/display/hashBlur.js +14 -3
  116. package/examples/jsm/tsl/lighting/TiledLightsNode.js +40 -34
  117. package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
  118. package/examples/jsm/utils/CameraUtils.js +4 -1
  119. package/examples/jsm/utils/GeometryUtils.js +22 -19
  120. package/examples/jsm/utils/SceneUtils.js +2 -2
  121. package/examples/jsm/webxr/XRControllerModelFactory.js +6 -1
  122. package/examples/jsm/webxr/XREstimatedLight.js +1 -1
  123. package/package.json +8 -3
  124. package/src/Three.Core.js +4 -0
  125. package/src/Three.Legacy.js +0 -21
  126. package/src/Three.TSL.js +18 -5
  127. package/src/Three.WebGPU.Nodes.js +2 -2
  128. package/src/Three.WebGPU.js +2 -2
  129. package/src/animation/PropertyBinding.js +2 -2
  130. package/src/cameras/ArrayCamera.js +1 -0
  131. package/src/cameras/PerspectiveCamera.js +18 -2
  132. package/src/constants.js +6 -1
  133. package/src/core/BufferAttribute.js +4 -0
  134. package/src/core/EventDispatcher.js +8 -6
  135. package/src/core/RenderTarget.js +18 -0
  136. package/src/core/RenderTarget3D.js +22 -0
  137. package/src/core/RenderTargetArray.js +22 -0
  138. package/src/extras/Earcut.js +1 -1
  139. package/src/extras/ImageUtils.js +1 -11
  140. package/src/extras/PMREMGenerator.js +20 -0
  141. package/src/extras/TextureUtils.js +6 -0
  142. package/src/helpers/CameraHelper.js +16 -13
  143. package/src/loaders/nodes/NodeLoader.js +59 -0
  144. package/src/loaders/nodes/NodeMaterialLoader.js +45 -0
  145. package/src/loaders/nodes/NodeObjectLoader.js +61 -0
  146. package/src/materials/nodes/Line2NodeMaterial.js +128 -34
  147. package/src/materials/nodes/LineBasicNodeMaterial.js +17 -2
  148. package/src/materials/nodes/LineDashedNodeMaterial.js +78 -5
  149. package/src/materials/nodes/MeshBasicNodeMaterial.js +56 -0
  150. package/src/materials/nodes/MeshLambertNodeMaterial.js +35 -0
  151. package/src/materials/nodes/MeshMatcapNodeMaterial.js +22 -2
  152. package/src/materials/nodes/MeshNormalNodeMaterial.js +21 -2
  153. package/src/materials/nodes/MeshPhongNodeMaterial.js +64 -1
  154. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +269 -0
  155. package/src/materials/nodes/MeshSSSNodeMaterial.js +97 -6
  156. package/src/materials/nodes/MeshStandardNodeMaterial.js +78 -0
  157. package/src/materials/nodes/MeshToonNodeMaterial.js +28 -0
  158. package/src/materials/nodes/NodeMaterial.js +476 -23
  159. package/src/materials/nodes/NodeMaterials.js +0 -1
  160. package/src/materials/nodes/PointsNodeMaterial.js +121 -10
  161. package/src/materials/nodes/ShadowNodeMaterial.js +29 -0
  162. package/src/materials/nodes/SpriteNodeMaterial.js +78 -20
  163. package/src/materials/nodes/VolumeNodeMaterial.js +80 -4
  164. package/src/materials/nodes/manager/NodeMaterialObserver.js +95 -0
  165. package/src/nodes/Nodes.js +5 -6
  166. package/src/nodes/TSL.js +6 -3
  167. package/src/nodes/accessors/AccessorsUtils.js +27 -0
  168. package/src/nodes/accessors/Arrays.js +47 -6
  169. package/src/nodes/accessors/BatchNode.js +42 -6
  170. package/src/nodes/accessors/Bitangent.js +37 -0
  171. package/src/nodes/accessors/BufferAttributeNode.js +178 -5
  172. package/src/nodes/accessors/BufferNode.js +63 -0
  173. package/src/nodes/accessors/BuiltinNode.js +38 -0
  174. package/src/nodes/accessors/Camera.js +113 -3
  175. package/src/nodes/accessors/ClippingNode.js +71 -2
  176. package/src/nodes/accessors/CubeTextureNode.js +64 -0
  177. package/src/nodes/accessors/InstanceNode.js +85 -2
  178. package/src/nodes/accessors/InstancedMeshNode.js +28 -3
  179. package/src/nodes/accessors/Lights.js +50 -1
  180. package/src/nodes/accessors/MaterialNode.js +306 -12
  181. package/src/nodes/accessors/MaterialProperties.js +7 -0
  182. package/src/nodes/accessors/MaterialReferenceNode.js +53 -13
  183. package/src/nodes/accessors/ModelNode.js +100 -5
  184. package/src/nodes/accessors/ModelViewProjectionNode.js +10 -38
  185. package/src/nodes/accessors/MorphNode.js +48 -4
  186. package/src/nodes/accessors/Normal.js +65 -5
  187. package/src/nodes/accessors/Object3DNode.js +101 -1
  188. package/src/nodes/accessors/PointUVNode.js +26 -0
  189. package/src/nodes/accessors/Position.js +56 -7
  190. package/src/nodes/accessors/ReferenceBaseNode.js +186 -0
  191. package/src/nodes/accessors/ReferenceNode.js +201 -2
  192. package/src/nodes/accessors/ReflectVector.js +24 -0
  193. package/src/nodes/accessors/RendererReferenceNode.js +46 -1
  194. package/src/nodes/accessors/SceneNode.js +54 -0
  195. package/src/nodes/accessors/SkinningNode.js +127 -1
  196. package/src/nodes/accessors/StorageBufferNode.js +209 -8
  197. package/src/nodes/accessors/StorageTextureNode.js +118 -0
  198. package/src/nodes/accessors/Tangent.js +38 -2
  199. package/src/nodes/accessors/Texture3DNode.js +91 -7
  200. package/src/nodes/accessors/TextureBicubic.js +12 -2
  201. package/src/nodes/accessors/TextureNode.js +316 -10
  202. package/src/nodes/accessors/TextureSizeNode.js +42 -0
  203. package/src/nodes/accessors/UV.js +10 -1
  204. package/src/nodes/accessors/UniformArrayNode.js +231 -25
  205. package/src/nodes/accessors/UserDataNode.js +46 -0
  206. package/src/nodes/accessors/VelocityNode.js +80 -0
  207. package/src/nodes/accessors/VertexColorNode.js +39 -2
  208. package/src/nodes/code/CodeNode.js +95 -1
  209. package/src/nodes/code/ExpressionNode.js +28 -0
  210. package/src/nodes/code/FunctionCallNode.js +37 -0
  211. package/src/nodes/code/FunctionNode.js +45 -0
  212. package/src/nodes/code/ScriptableNode.js +223 -1
  213. package/src/nodes/code/ScriptableValueNode.js +85 -1
  214. package/src/nodes/core/ArrayNode.js +125 -0
  215. package/src/nodes/core/AssignNode.js +48 -2
  216. package/src/nodes/core/AttributeNode.js +43 -0
  217. package/src/nodes/core/BypassNode.js +47 -2
  218. package/src/nodes/core/CacheNode.js +53 -2
  219. package/src/nodes/core/ConstNode.js +32 -0
  220. package/src/nodes/core/ContextNode.js +65 -0
  221. package/src/nodes/core/IndexNode.js +68 -7
  222. package/src/nodes/core/InputNode.js +48 -0
  223. package/src/nodes/core/LightingModel.js +60 -0
  224. package/src/nodes/core/MRTNode.js +66 -0
  225. package/src/nodes/core/Node.js +350 -12
  226. package/src/nodes/core/NodeAttribute.js +38 -0
  227. package/src/nodes/core/NodeBuilder.js +1166 -26
  228. package/src/nodes/core/NodeCache.js +41 -2
  229. package/src/nodes/core/NodeCode.js +31 -0
  230. package/src/nodes/core/NodeFrame.js +123 -2
  231. package/src/nodes/core/NodeFunction.js +46 -0
  232. package/src/nodes/core/NodeFunctionInput.js +44 -0
  233. package/src/nodes/core/NodeParser.js +11 -0
  234. package/src/nodes/core/NodeUniform.js +52 -0
  235. package/src/nodes/core/NodeUtils.js +152 -1
  236. package/src/nodes/core/NodeVar.js +47 -1
  237. package/src/nodes/core/NodeVarying.js +28 -0
  238. package/src/nodes/core/OutputStructNode.js +51 -10
  239. package/src/nodes/core/ParameterNode.js +28 -0
  240. package/src/nodes/core/PropertyNode.js +232 -0
  241. package/src/nodes/core/StackNode.js +98 -1
  242. package/src/nodes/core/StructNode.js +121 -0
  243. package/src/nodes/core/StructType.js +13 -0
  244. package/src/nodes/core/StructTypeNode.js +105 -6
  245. package/src/nodes/core/TempNode.js +31 -5
  246. package/src/nodes/core/UniformGroupNode.js +82 -7
  247. package/src/nodes/core/UniformNode.js +66 -0
  248. package/src/nodes/core/VarNode.js +146 -7
  249. package/src/nodes/core/VaryingNode.js +100 -3
  250. package/src/nodes/core/constants.js +36 -0
  251. package/src/nodes/display/BlendModes.js +88 -1
  252. package/src/nodes/display/BumpMapNode.js +37 -0
  253. package/src/nodes/display/ColorAdjustment.js +53 -11
  254. package/src/nodes/display/ColorSpaceFunctions.js +16 -0
  255. package/src/nodes/display/ColorSpaceNode.js +82 -0
  256. package/src/nodes/display/FrontFacingNode.js +29 -0
  257. package/src/nodes/display/NormalMapNode.js +43 -0
  258. package/src/nodes/display/PassNode.js +300 -7
  259. package/src/nodes/display/PosterizeNode.js +33 -0
  260. package/src/nodes/display/RenderOutputNode.js +66 -1
  261. package/src/nodes/display/ScreenNode.js +96 -0
  262. package/src/nodes/display/ToneMappingFunctions.js +58 -10
  263. package/src/nodes/display/ToneMappingNode.js +55 -2
  264. package/src/nodes/display/ToonOutlinePassNode.js +73 -0
  265. package/src/nodes/display/ViewportDepthNode.js +122 -8
  266. package/src/nodes/display/ViewportDepthTextureNode.js +23 -0
  267. package/src/nodes/display/ViewportSharedTextureNode.js +23 -0
  268. package/src/nodes/display/ViewportTextureNode.js +57 -0
  269. package/src/nodes/fog/Fog.js +110 -0
  270. package/src/nodes/functions/BasicLightingModel.js +24 -0
  271. package/src/nodes/functions/PhongLightingModel.js +34 -2
  272. package/src/nodes/functions/PhysicalLightingModel.js +167 -8
  273. package/src/nodes/functions/ShadowMaskModel.js +23 -0
  274. package/src/nodes/functions/ToonLightingModel.js +20 -0
  275. package/src/nodes/functions/material/getAlphaHashThreshold.js +1 -3
  276. package/src/nodes/functions/material/getParallaxCorrectNormal.js +16 -1
  277. package/src/nodes/geometry/RangeNode.js +54 -2
  278. package/src/nodes/gpgpu/AtomicFunctionNode.js +174 -2
  279. package/src/nodes/gpgpu/BarrierNode.js +47 -0
  280. package/src/nodes/gpgpu/ComputeBuiltinNode.js +134 -0
  281. package/src/nodes/gpgpu/ComputeNode.js +106 -2
  282. package/src/nodes/gpgpu/WorkgroupInfoNode.js +115 -6
  283. package/src/nodes/lighting/AONode.js +18 -0
  284. package/src/nodes/lighting/AmbientLightNode.js +10 -0
  285. package/src/nodes/lighting/AnalyticLightNode.js +97 -2
  286. package/src/nodes/lighting/BasicEnvironmentNode.js +19 -0
  287. package/src/nodes/lighting/BasicLightMapNode.js +17 -0
  288. package/src/nodes/lighting/DirectionalLightNode.js +10 -0
  289. package/src/nodes/lighting/EnvironmentNode.js +18 -0
  290. package/src/nodes/lighting/HemisphereLightNode.js +31 -0
  291. package/src/nodes/lighting/IESSpotLightNode.js +11 -0
  292. package/src/nodes/lighting/IrradianceNode.js +17 -0
  293. package/src/nodes/lighting/LightProbeNode.js +20 -0
  294. package/src/nodes/lighting/LightUtils.js +12 -0
  295. package/src/nodes/lighting/LightingContextNode.js +48 -0
  296. package/src/nodes/lighting/LightingNode.js +15 -6
  297. package/src/nodes/lighting/LightsNode.js +132 -1
  298. package/src/nodes/lighting/PointLightNode.js +32 -1
  299. package/src/nodes/lighting/PointShadowNode.js +54 -1
  300. package/src/nodes/lighting/RectAreaLightNode.js +44 -6
  301. package/src/nodes/lighting/ShadowBaseNode.js +93 -0
  302. package/src/nodes/lighting/ShadowNode.js +241 -35
  303. package/src/nodes/lighting/SpotLightNode.js +43 -0
  304. package/src/nodes/math/ConditionalNode.js +78 -4
  305. package/src/nodes/math/Hash.js +9 -0
  306. package/src/nodes/math/MathNode.js +627 -11
  307. package/src/nodes/math/MathUtils.js +45 -1
  308. package/src/nodes/math/OperatorNode.js +329 -18
  309. package/src/nodes/math/TriNoise3D.js +18 -7
  310. package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
  311. package/src/nodes/parsers/GLSLNodeParser.js +11 -0
  312. package/src/nodes/pmrem/PMREMNode.js +133 -0
  313. package/src/nodes/pmrem/PMREMUtils.js +2 -2
  314. package/src/nodes/procedural/Checker.js +9 -0
  315. package/src/nodes/shapes/Shapes.js +33 -0
  316. package/src/nodes/tsl/TSLBase.js +3 -2
  317. package/src/nodes/tsl/TSLCore.js +22 -2
  318. package/src/nodes/utils/ArrayElementNode.js +39 -3
  319. package/src/nodes/utils/ConvertNode.js +31 -0
  320. package/src/nodes/utils/CubeMapNode.js +78 -0
  321. package/src/nodes/utils/Discard.js +16 -0
  322. package/src/nodes/utils/EquirectUVNode.js +31 -1
  323. package/src/nodes/utils/FlipNode.js +38 -0
  324. package/src/nodes/utils/FunctionOverloadingNode.js +53 -1
  325. package/src/nodes/utils/JoinNode.js +25 -0
  326. package/src/nodes/utils/LoopNode.js +82 -2
  327. package/src/nodes/utils/MatcapUVNode.js +17 -0
  328. package/src/nodes/utils/MaxMipLevelNode.js +49 -0
  329. package/src/nodes/utils/MemberNode.js +68 -0
  330. package/src/nodes/utils/Oscillators.js +33 -0
  331. package/src/nodes/utils/Packing.js +17 -0
  332. package/src/nodes/utils/PostProcessingUtils.js +28 -23
  333. package/src/nodes/utils/RTTNode.js +123 -2
  334. package/src/nodes/utils/ReflectorNode.js +174 -4
  335. package/src/nodes/utils/RemapNode.js +79 -0
  336. package/src/nodes/utils/RotateNode.js +41 -0
  337. package/src/nodes/utils/SetNode.js +44 -1
  338. package/src/nodes/utils/SplitNode.js +55 -3
  339. package/src/nodes/utils/SpriteSheetUVNode.js +46 -0
  340. package/src/nodes/utils/SpriteUtils.js +17 -0
  341. package/src/nodes/utils/StorageArrayElementNode.js +54 -0
  342. package/src/nodes/utils/Timer.js +40 -0
  343. package/src/nodes/utils/TriplanarTexturesNode.js +84 -0
  344. package/src/nodes/utils/UVUtils.js +20 -0
  345. package/src/nodes/utils/ViewportUtils.js +13 -0
  346. package/src/objects/BatchedMesh.js +2 -3
  347. package/src/objects/ClippingGroup.js +49 -0
  348. package/src/objects/Line.js +6 -6
  349. package/src/renderers/WebGLRenderer.js +30 -4
  350. package/src/renderers/common/Animation.js +85 -0
  351. package/src/renderers/common/Attributes.js +36 -0
  352. package/src/renderers/common/Backend.js +502 -44
  353. package/src/renderers/common/Background.js +48 -1
  354. package/src/renderers/common/BindGroup.js +43 -0
  355. package/src/renderers/common/Binding.js +35 -0
  356. package/src/renderers/common/Bindings.js +93 -1
  357. package/src/renderers/common/Buffer.js +49 -0
  358. package/src/renderers/common/BufferUtils.js +27 -0
  359. package/src/renderers/common/BundleGroup.js +57 -0
  360. package/src/renderers/common/ChainMap.js +45 -6
  361. package/src/renderers/common/ClippingContext.js +108 -15
  362. package/src/renderers/common/Color4.js +40 -0
  363. package/src/renderers/common/ComputePipeline.js +24 -0
  364. package/src/renderers/common/CubeRenderTarget.js +13 -0
  365. package/src/renderers/common/DataMap.js +37 -1
  366. package/src/renderers/common/Geometries.js +91 -14
  367. package/src/renderers/common/IndirectStorageBufferAttribute.js +25 -2
  368. package/src/renderers/common/Info.js +78 -35
  369. package/src/renderers/common/Lighting.js +34 -6
  370. package/src/renderers/common/Pipeline.js +22 -0
  371. package/src/renderers/common/Pipelines.js +148 -5
  372. package/src/renderers/common/PostProcessing.js +99 -11
  373. package/src/renderers/common/ProgrammableStage.js +60 -2
  374. package/src/renderers/common/QuadMesh.js +54 -5
  375. package/src/renderers/common/RenderBundle.js +14 -8
  376. package/src/renderers/common/RenderBundles.js +39 -10
  377. package/src/renderers/common/RenderContext.js +201 -2
  378. package/src/renderers/common/RenderContexts.js +59 -6
  379. package/src/renderers/common/RenderList.js +178 -0
  380. package/src/renderers/common/RenderLists.js +40 -3
  381. package/src/renderers/common/RenderObject.js +400 -17
  382. package/src/renderers/common/RenderObjects.js +103 -7
  383. package/src/renderers/common/RenderPipeline.js +24 -0
  384. package/src/renderers/common/Renderer.js +1170 -86
  385. package/src/renderers/common/RendererUtils.js +193 -0
  386. package/src/renderers/common/SampledTexture.js +120 -0
  387. package/src/renderers/common/Sampler.js +30 -0
  388. package/src/renderers/common/StorageBuffer.js +24 -0
  389. package/src/renderers/common/StorageBufferAttribute.js +31 -2
  390. package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
  391. package/src/renderers/common/StorageTexture.js +38 -0
  392. package/src/renderers/common/Textures.js +97 -7
  393. package/src/renderers/common/TimestampQueryPool.js +39 -0
  394. package/src/renderers/common/Uniform.js +225 -3
  395. package/src/renderers/common/UniformBuffer.js +19 -0
  396. package/src/renderers/common/UniformsGroup.js +141 -2
  397. package/src/renderers/common/XRManager.js +1193 -0
  398. package/src/renderers/common/XRRenderTarget.js +74 -0
  399. package/src/renderers/common/extras/PMREMGenerator.js +76 -10
  400. package/src/renderers/common/nodes/NodeBuilderState.js +99 -5
  401. package/src/renderers/common/nodes/NodeLibrary.js +89 -0
  402. package/src/renderers/common/nodes/NodeSampledTexture.js +90 -2
  403. package/src/renderers/common/nodes/NodeSampler.js +28 -0
  404. package/src/renderers/common/nodes/NodeStorageBuffer.js +35 -0
  405. package/src/renderers/common/nodes/NodeUniform.js +243 -2
  406. package/src/renderers/common/nodes/NodeUniformBuffer.js +29 -0
  407. package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
  408. package/src/renderers/common/nodes/Nodes.js +352 -78
  409. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
  410. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
  411. package/src/renderers/webgl/WebGLBackground.js +4 -0
  412. package/src/renderers/webgl-fallback/WebGLBackend.js +819 -116
  413. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +347 -18
  414. package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +58 -1
  415. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
  416. package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
  417. package/src/renderers/webgl-fallback/utils/WebGLState.js +323 -11
  418. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +168 -22
  419. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +359 -0
  420. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
  421. package/src/renderers/webgpu/WebGPUBackend.js +578 -164
  422. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +36 -0
  423. package/src/renderers/webgpu/WebGPURenderer.js +36 -0
  424. package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +20 -8
  425. package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +21 -8
  426. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +674 -52
  427. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +17 -0
  428. package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
  429. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +95 -14
  430. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +94 -1
  431. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +102 -3
  432. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +98 -1
  433. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +262 -18
  434. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +274 -0
  435. package/src/renderers/webgpu/utils/WebGPUUtils.js +116 -4
  436. package/src/renderers/webxr/WebXRDepthSensing.js +1 -1
  437. package/src/renderers/webxr/WebXRManager.js +19 -2
  438. package/src/textures/Data3DTexture.js +2 -2
  439. package/src/textures/Texture.js +4 -0
  440. package/src/textures/VideoFrameTexture.js +35 -0
  441. package/examples/jsm/animation/MMDAnimationHelper.js +0 -1209
  442. package/examples/jsm/animation/MMDPhysics.js +0 -1408
  443. package/examples/jsm/exporters/MMDExporter.js +0 -223
  444. package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -176
  445. package/examples/jsm/libs/mmdparser.module.js +0 -11530
  446. package/examples/jsm/loaders/MMDLoader.js +0 -2298
  447. package/examples/jsm/objects/InstancedPoints.js +0 -19
  448. package/examples/jsm/shaders/MMDToonShader.js +0 -134
  449. package/src/materials/nodes/InstancedPointsNodeMaterial.js +0 -156
  450. package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -24
  451. package/src/nodes/core/UniformGroup.js +0 -13
  452. package/src/nodes/fog/FogExp2Node.js +0 -35
  453. package/src/nodes/fog/FogNode.js +0 -50
  454. package/src/nodes/fog/FogRangeNode.js +0 -36
  455. package/src/renderers/common/PostProcessingUtils.js +0 -86
@@ -1,16 +1,44 @@
1
1
  import Sampler from '../Sampler.js';
2
2
 
3
+ /**
4
+ * A special form of sampler binding type.
5
+ * It's texture value is managed by a node object.
6
+ *
7
+ * @private
8
+ * @augments Sampler
9
+ */
3
10
  class NodeSampler extends Sampler {
4
11
 
12
+ /**
13
+ * Constructs a new node-based sampler.
14
+ *
15
+ * @param {String} name - The samplers's name.
16
+ * @param {TextureNode} textureNode - The texture node.
17
+ * @param {UniformGroupNode} groupNode - The uniform group node.
18
+ */
5
19
  constructor( name, textureNode, groupNode ) {
6
20
 
7
21
  super( name, textureNode ? textureNode.value : null );
8
22
 
23
+ /**
24
+ * The texture node.
25
+ *
26
+ * @type {TextureNode}
27
+ */
9
28
  this.textureNode = textureNode;
29
+
30
+ /**
31
+ * The uniform group node.
32
+ *
33
+ * @type {UniformGroupNode}
34
+ */
10
35
  this.groupNode = groupNode;
11
36
 
12
37
  }
13
38
 
39
+ /**
40
+ * Updates the texture value of this sampler.
41
+ */
14
42
  update() {
15
43
 
16
44
  this.texture = this.textureNode.value;
@@ -3,18 +3,53 @@ import { NodeAccess } from '../../../nodes/core/constants.js';
3
3
 
4
4
  let _id = 0;
5
5
 
6
+ /**
7
+ * A special form of storage buffer binding type.
8
+ * It's buffer value is managed by a node object.
9
+ *
10
+ * @private
11
+ * @augments StorageBuffer
12
+ */
6
13
  class NodeStorageBuffer extends StorageBuffer {
7
14
 
15
+ /**
16
+ * Constructs a new node-based storage buffer.
17
+ *
18
+ * @param {StorageBufferNode} nodeUniform - The storage buffer node.
19
+ * @param {UniformGroupNode} groupNode - The uniform group node.
20
+ */
8
21
  constructor( nodeUniform, groupNode ) {
9
22
 
10
23
  super( 'StorageBuffer_' + _id ++, nodeUniform ? nodeUniform.value : null );
11
24
 
25
+ /**
26
+ * The node uniform.
27
+ *
28
+ * @type {StorageBufferNode}
29
+ */
12
30
  this.nodeUniform = nodeUniform;
31
+
32
+ /**
33
+ * The access type.
34
+ *
35
+ * @type {String}
36
+ */
13
37
  this.access = nodeUniform ? nodeUniform.access : NodeAccess.READ_WRITE;
38
+
39
+ /**
40
+ * The uniform group node.
41
+ *
42
+ * @type {UniformGroupNode}
43
+ */
14
44
  this.groupNode = groupNode;
15
45
 
16
46
  }
17
47
 
48
+ /**
49
+ * The storage buffer.
50
+ *
51
+ * @type {BufferAttribute}
52
+ */
18
53
  get buffer() {
19
54
 
20
55
  return this.nodeUniform.value;
@@ -1,24 +1,51 @@
1
1
  import {
2
2
  NumberUniform, Vector2Uniform, Vector3Uniform, Vector4Uniform,
3
- ColorUniform, Matrix3Uniform, Matrix4Uniform
3
+ ColorUniform, Matrix2Uniform, Matrix3Uniform, Matrix4Uniform
4
4
  } from '../Uniform.js';
5
5
 
6
+ /**
7
+ * A special form of Number uniform binding type.
8
+ * It's value is managed by a node object.
9
+ *
10
+ * @private
11
+ * @augments NumberUniform
12
+ */
6
13
  class NumberNodeUniform extends NumberUniform {
7
14
 
15
+ /**
16
+ * Constructs a new node-based Number uniform.
17
+ *
18
+ * @param {NodeUniform} nodeUniform - The node uniform.
19
+ */
8
20
  constructor( nodeUniform ) {
9
21
 
10
22
  super( nodeUniform.name, nodeUniform.value );
11
23
 
24
+ /**
25
+ * The node uniform.
26
+ *
27
+ * @type {NodeUniform}
28
+ */
12
29
  this.nodeUniform = nodeUniform;
13
30
 
14
31
  }
15
32
 
33
+ /**
34
+ * Overwritten to return the value of the node uniform.
35
+ *
36
+ * @return {Number} The value.
37
+ */
16
38
  getValue() {
17
39
 
18
40
  return this.nodeUniform.value;
19
41
 
20
42
  }
21
43
 
44
+ /**
45
+ * Returns the node uniform data type.
46
+ *
47
+ * @return {String} The data type.
48
+ */
22
49
  getType() {
23
50
 
24
51
  return this.nodeUniform.type;
@@ -27,22 +54,49 @@ class NumberNodeUniform extends NumberUniform {
27
54
 
28
55
  }
29
56
 
57
+ /**
58
+ * A special form of Vector2 uniform binding type.
59
+ * It's value is managed by a node object.
60
+ *
61
+ * @private
62
+ * @augments Vector2Uniform
63
+ */
30
64
  class Vector2NodeUniform extends Vector2Uniform {
31
65
 
66
+ /**
67
+ * Constructs a new node-based Vector2 uniform.
68
+ *
69
+ * @param {NodeUniform} nodeUniform - The node uniform.
70
+ */
32
71
  constructor( nodeUniform ) {
33
72
 
34
73
  super( nodeUniform.name, nodeUniform.value );
35
74
 
75
+ /**
76
+ * The node uniform.
77
+ *
78
+ * @type {NodeUniform}
79
+ */
36
80
  this.nodeUniform = nodeUniform;
37
81
 
38
82
  }
39
83
 
84
+ /**
85
+ * Overwritten to return the value of the node uniform.
86
+ *
87
+ * @return {Vector2} The value.
88
+ */
40
89
  getValue() {
41
90
 
42
91
  return this.nodeUniform.value;
43
92
 
44
93
  }
45
94
 
95
+ /**
96
+ * Returns the node uniform data type.
97
+ *
98
+ * @return {String} The data type.
99
+ */
46
100
  getType() {
47
101
 
48
102
  return this.nodeUniform.type;
@@ -51,22 +105,49 @@ class Vector2NodeUniform extends Vector2Uniform {
51
105
 
52
106
  }
53
107
 
108
+ /**
109
+ * A special form of Vector3 uniform binding type.
110
+ * It's value is managed by a node object.
111
+ *
112
+ * @private
113
+ * @augments Vector3Uniform
114
+ */
54
115
  class Vector3NodeUniform extends Vector3Uniform {
55
116
 
117
+ /**
118
+ * Constructs a new node-based Vector3 uniform.
119
+ *
120
+ * @param {NodeUniform} nodeUniform - The node uniform.
121
+ */
56
122
  constructor( nodeUniform ) {
57
123
 
58
124
  super( nodeUniform.name, nodeUniform.value );
59
125
 
126
+ /**
127
+ * The node uniform.
128
+ *
129
+ * @type {NodeUniform}
130
+ */
60
131
  this.nodeUniform = nodeUniform;
61
132
 
62
133
  }
63
134
 
135
+ /**
136
+ * Overwritten to return the value of the node uniform.
137
+ *
138
+ * @return {Vector3} The value.
139
+ */
64
140
  getValue() {
65
141
 
66
142
  return this.nodeUniform.value;
67
143
 
68
144
  }
69
145
 
146
+ /**
147
+ * Returns the node uniform data type.
148
+ *
149
+ * @return {String} The data type.
150
+ */
70
151
  getType() {
71
152
 
72
153
  return this.nodeUniform.type;
@@ -75,22 +156,49 @@ class Vector3NodeUniform extends Vector3Uniform {
75
156
 
76
157
  }
77
158
 
159
+ /**
160
+ * A special form of Vector4 uniform binding type.
161
+ * It's value is managed by a node object.
162
+ *
163
+ * @private
164
+ * @augments Vector4Uniform
165
+ */
78
166
  class Vector4NodeUniform extends Vector4Uniform {
79
167
 
168
+ /**
169
+ * Constructs a new node-based Vector4 uniform.
170
+ *
171
+ * @param {NodeUniform} nodeUniform - The node uniform.
172
+ */
80
173
  constructor( nodeUniform ) {
81
174
 
82
175
  super( nodeUniform.name, nodeUniform.value );
83
176
 
177
+ /**
178
+ * The node uniform.
179
+ *
180
+ * @type {NodeUniform}
181
+ */
84
182
  this.nodeUniform = nodeUniform;
85
183
 
86
184
  }
87
185
 
186
+ /**
187
+ * Overwritten to return the value of the node uniform.
188
+ *
189
+ * @return {Vector4} The value.
190
+ */
88
191
  getValue() {
89
192
 
90
193
  return this.nodeUniform.value;
91
194
 
92
195
  }
93
196
 
197
+ /**
198
+ * Returns the node uniform data type.
199
+ *
200
+ * @return {String} The data type.
201
+ */
94
202
  getType() {
95
203
 
96
204
  return this.nodeUniform.type;
@@ -99,22 +207,49 @@ class Vector4NodeUniform extends Vector4Uniform {
99
207
 
100
208
  }
101
209
 
210
+ /**
211
+ * A special form of Color uniform binding type.
212
+ * It's value is managed by a node object.
213
+ *
214
+ * @private
215
+ * @augments ColorUniform
216
+ */
102
217
  class ColorNodeUniform extends ColorUniform {
103
218
 
219
+ /**
220
+ * Constructs a new node-based Color uniform.
221
+ *
222
+ * @param {NodeUniform} nodeUniform - The node uniform.
223
+ */
104
224
  constructor( nodeUniform ) {
105
225
 
106
226
  super( nodeUniform.name, nodeUniform.value );
107
227
 
228
+ /**
229
+ * The node uniform.
230
+ *
231
+ * @type {NodeUniform}
232
+ */
108
233
  this.nodeUniform = nodeUniform;
109
234
 
110
235
  }
111
236
 
237
+ /**
238
+ * Overwritten to return the value of the node uniform.
239
+ *
240
+ * @return {Color} The value.
241
+ */
112
242
  getValue() {
113
243
 
114
244
  return this.nodeUniform.value;
115
245
 
116
246
  }
117
247
 
248
+ /**
249
+ * Returns the node uniform data type.
250
+ *
251
+ * @return {String} The data type.
252
+ */
118
253
  getType() {
119
254
 
120
255
  return this.nodeUniform.type;
@@ -123,22 +258,101 @@ class ColorNodeUniform extends ColorUniform {
123
258
 
124
259
  }
125
260
 
261
+
262
+ /**
263
+ * A special form of Matrix2 uniform binding type.
264
+ * It's value is managed by a node object.
265
+ *
266
+ * @private
267
+ * @augments Matrix2Uniform
268
+ */
269
+ class Matrix2NodeUniform extends Matrix2Uniform {
270
+
271
+ /**
272
+ * Constructs a new node-based Matrix2 uniform.
273
+ *
274
+ * @param {NodeUniform} nodeUniform - The node uniform.
275
+ */
276
+ constructor( nodeUniform ) {
277
+
278
+ super( nodeUniform.name, nodeUniform.value );
279
+
280
+ /**
281
+ * The node uniform.
282
+ *
283
+ * @type {NodeUniform}
284
+ */
285
+ this.nodeUniform = nodeUniform;
286
+
287
+ }
288
+
289
+ /**
290
+ * Overwritten to return the value of the node uniform.
291
+ *
292
+ * @return {Matrix2} The value.
293
+ */
294
+ getValue() {
295
+
296
+ return this.nodeUniform.value;
297
+
298
+ }
299
+
300
+ /**
301
+ * Returns the node uniform data type.
302
+ *
303
+ * @return {String} The data type.
304
+ */
305
+ getType() {
306
+
307
+ return this.nodeUniform.type;
308
+
309
+ }
310
+
311
+ }
312
+
313
+ /**
314
+ * A special form of Matrix3 uniform binding type.
315
+ * It's value is managed by a node object.
316
+ *
317
+ * @private
318
+ * @augments Matrix3Uniform
319
+ */
126
320
  class Matrix3NodeUniform extends Matrix3Uniform {
127
321
 
322
+ /**
323
+ * Constructs a new node-based Matrix3 uniform.
324
+ *
325
+ * @param {NodeUniform} nodeUniform - The node uniform.
326
+ */
128
327
  constructor( nodeUniform ) {
129
328
 
130
329
  super( nodeUniform.name, nodeUniform.value );
131
330
 
331
+ /**
332
+ * The node uniform.
333
+ *
334
+ * @type {NodeUniform}
335
+ */
132
336
  this.nodeUniform = nodeUniform;
133
337
 
134
338
  }
135
339
 
340
+ /**
341
+ * Overwritten to return the value of the node uniform.
342
+ *
343
+ * @return {Matrix3} The value.
344
+ */
136
345
  getValue() {
137
346
 
138
347
  return this.nodeUniform.value;
139
348
 
140
349
  }
141
350
 
351
+ /**
352
+ * Returns the node uniform data type.
353
+ *
354
+ * @return {String} The data type.
355
+ */
142
356
  getType() {
143
357
 
144
358
  return this.nodeUniform.type;
@@ -147,22 +361,49 @@ class Matrix3NodeUniform extends Matrix3Uniform {
147
361
 
148
362
  }
149
363
 
364
+ /**
365
+ * A special form of Matrix4 uniform binding type.
366
+ * It's value is managed by a node object.
367
+ *
368
+ * @private
369
+ * @augments Matrix4Uniform
370
+ */
150
371
  class Matrix4NodeUniform extends Matrix4Uniform {
151
372
 
373
+ /**
374
+ * Constructs a new node-based Matrix4 uniform.
375
+ *
376
+ * @param {NodeUniform} nodeUniform - The node uniform.
377
+ */
152
378
  constructor( nodeUniform ) {
153
379
 
154
380
  super( nodeUniform.name, nodeUniform.value );
155
381
 
382
+ /**
383
+ * The node uniform.
384
+ *
385
+ * @type {NodeUniform}
386
+ */
156
387
  this.nodeUniform = nodeUniform;
157
388
 
158
389
  }
159
390
 
391
+ /**
392
+ * Overwritten to return the value of the node uniform.
393
+ *
394
+ * @return {Matrix4} The value.
395
+ */
160
396
  getValue() {
161
397
 
162
398
  return this.nodeUniform.value;
163
399
 
164
400
  }
165
401
 
402
+ /**
403
+ * Returns the node uniform data type.
404
+ *
405
+ * @return {String} The data type.
406
+ */
166
407
  getType() {
167
408
 
168
409
  return this.nodeUniform.type;
@@ -173,5 +414,5 @@ class Matrix4NodeUniform extends Matrix4Uniform {
173
414
 
174
415
  export {
175
416
  NumberNodeUniform, Vector2NodeUniform, Vector3NodeUniform, Vector4NodeUniform,
176
- ColorNodeUniform, Matrix3NodeUniform, Matrix4NodeUniform
417
+ ColorNodeUniform, Matrix2NodeUniform, Matrix3NodeUniform, Matrix4NodeUniform
177
418
  };
@@ -2,17 +2,46 @@ import UniformBuffer from '../UniformBuffer.js';
2
2
 
3
3
  let _id = 0;
4
4
 
5
+ /**
6
+ * A special form of uniform buffer binding type.
7
+ * It's buffer value is managed by a node object.
8
+ *
9
+ * @private
10
+ * @augments UniformBuffer
11
+ */
5
12
  class NodeUniformBuffer extends UniformBuffer {
6
13
 
14
+ /**
15
+ * Constructs a new node-based uniform buffer.
16
+ *
17
+ * @param {BufferNode} nodeUniform - The uniform buffer node.
18
+ * @param {UniformGroupNode} groupNode - The uniform group node.
19
+ */
7
20
  constructor( nodeUniform, groupNode ) {
8
21
 
9
22
  super( 'UniformBuffer_' + _id ++, nodeUniform ? nodeUniform.value : null );
10
23
 
24
+ /**
25
+ * The uniform buffer node.
26
+ *
27
+ * @type {BufferNode}
28
+ */
11
29
  this.nodeUniform = nodeUniform;
30
+
31
+ /**
32
+ * The uniform group node.
33
+ *
34
+ * @type {UniformGroupNode}
35
+ */
12
36
  this.groupNode = groupNode;
13
37
 
14
38
  }
15
39
 
40
+ /**
41
+ * The uniform buffer.
42
+ *
43
+ * @type {Float32Array}
44
+ */
16
45
  get buffer() {
17
46
 
18
47
  return this.nodeUniform.value;
@@ -2,37 +2,50 @@ import UniformsGroup from '../UniformsGroup.js';
2
2
 
3
3
  let _id = 0;
4
4
 
5
+ /**
6
+ * A special form of uniforms group that represents
7
+ * the individual uniforms as node-based uniforms.
8
+ *
9
+ * @private
10
+ * @augments UniformsGroup
11
+ */
5
12
  class NodeUniformsGroup extends UniformsGroup {
6
13
 
14
+ /**
15
+ * Constructs a new node-based uniforms group.
16
+ *
17
+ * @param {String} name - The group's name.
18
+ * @param {UniformGroupNode} groupNode - The uniform group node.
19
+ */
7
20
  constructor( name, groupNode ) {
8
21
 
9
22
  super( name );
10
23
 
24
+ /**
25
+ * The group's ID.
26
+ *
27
+ * @type {Number}
28
+ */
11
29
  this.id = _id ++;
30
+
31
+ /**
32
+ * The uniform group node.
33
+ *
34
+ * @type {UniformGroupNode}
35
+ */
12
36
  this.groupNode = groupNode;
13
37
 
38
+ /**
39
+ * This flag can be used for type testing.
40
+ *
41
+ * @type {Boolean}
42
+ * @readonly
43
+ * @default true
44
+ */
14
45
  this.isNodeUniformsGroup = true;
15
46
 
16
47
  }
17
48
 
18
- getNodes() {
19
-
20
- const nodes = [];
21
-
22
- for ( const uniform of this.uniforms ) {
23
-
24
- const node = uniform.nodeUniform.node;
25
-
26
- if ( ! node ) throw new Error( 'NodeUniformsGroup: Uniform has no node.' );
27
-
28
- nodes.push( node );
29
-
30
- }
31
-
32
- return nodes;
33
-
34
- }
35
-
36
49
  }
37
50
 
38
51
  export default NodeUniformsGroup;