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
@@ -6,18 +6,55 @@ import { DepthStencilFormat, DepthFormat, UnsignedIntType, UnsignedInt248Type, E
6
6
 
7
7
  const _size = /*@__PURE__*/ new Vector3();
8
8
 
9
+ /**
10
+ * This module manages the textures of the renderer.
11
+ *
12
+ * @private
13
+ * @augments DataMap
14
+ */
9
15
  class Textures extends DataMap {
10
16
 
17
+ /**
18
+ * Constructs a new texture management component.
19
+ *
20
+ * @param {Renderer} renderer - The renderer.
21
+ * @param {Backend} backend - The renderer's backend.
22
+ * @param {Info} info - Renderer component for managing metrics and monitoring data.
23
+ */
11
24
  constructor( renderer, backend, info ) {
12
25
 
13
26
  super();
14
27
 
28
+ /**
29
+ * The renderer.
30
+ *
31
+ * @type {Renderer}
32
+ */
15
33
  this.renderer = renderer;
34
+
35
+ /**
36
+ * The backend.
37
+ *
38
+ * @type {Backend}
39
+ */
16
40
  this.backend = backend;
41
+
42
+ /**
43
+ * Renderer component for managing metrics and monitoring data.
44
+ *
45
+ * @type {Info}
46
+ */
17
47
  this.info = info;
18
48
 
19
49
  }
20
50
 
51
+ /**
52
+ * Updates the given render target. Based on the given render target configuration,
53
+ * it updates the texture states representing the attachments of the framebuffer.
54
+ *
55
+ * @param {RenderTarget} renderTarget - The render target to update.
56
+ * @param {Number} [activeMipmapLevel=0] - The active mipmap level.
57
+ */
21
58
  updateRenderTarget( renderTarget, activeMipmapLevel = 0 ) {
22
59
 
23
60
  const renderTargetData = this.get( renderTarget );
@@ -87,21 +124,28 @@ class Textures extends DataMap {
87
124
 
88
125
  //
89
126
 
127
+
90
128
  const options = { sampleCount };
91
129
 
92
- for ( let i = 0; i < textures.length; i ++ ) {
130
+ // XR render targets require no texture updates
93
131
 
94
- const texture = textures[ i ];
132
+ if ( renderTarget.isXRRenderTarget !== true ) {
95
133
 
96
- if ( textureNeedsUpdate ) texture.needsUpdate = true;
134
+ for ( let i = 0; i < textures.length; i ++ ) {
97
135
 
98
- this.updateTexture( texture, options );
136
+ const texture = textures[ i ];
99
137
 
100
- }
138
+ if ( textureNeedsUpdate ) texture.needsUpdate = true;
139
+
140
+ this.updateTexture( texture, options );
101
141
 
102
- if ( depthTexture ) {
142
+ }
143
+
144
+ if ( depthTexture ) {
103
145
 
104
- this.updateTexture( depthTexture, options );
146
+ this.updateTexture( depthTexture, options );
147
+
148
+ }
105
149
 
106
150
  }
107
151
 
@@ -139,6 +183,14 @@ class Textures extends DataMap {
139
183
 
140
184
  }
141
185
 
186
+ /**
187
+ * Updates the given texture. Depending on the texture state, this method
188
+ * triggers the upload of texture data to the GPU memory. If the texture data are
189
+ * not yet ready for the upload, it uses default texture data for as a placeholder.
190
+ *
191
+ * @param {Texture} texture - The texture to update.
192
+ * @param {Object} [options={}] - The options.
193
+ */
142
194
  updateTexture( texture, options = {} ) {
143
195
 
144
196
  const textureData = this.get( texture );
@@ -292,6 +344,18 @@ class Textures extends DataMap {
292
344
 
293
345
  }
294
346
 
347
+ /**
348
+ * Computes the size of the given texture and writes the result
349
+ * into the target vector. This vector is also returned by the
350
+ * method.
351
+ *
352
+ * If no texture data are available for the compute yet, the method
353
+ * returns default size values.
354
+ *
355
+ * @param {Texture} texture - The texture to compute the size for.
356
+ * @param {Vector3} target - The target vector.
357
+ * @return {Vector3} The target vector.
358
+ */
295
359
  getSize( texture, target = _size ) {
296
360
 
297
361
  let image = texture.images ? texture.images[ 0 ] : texture.image;
@@ -314,6 +378,14 @@ class Textures extends DataMap {
314
378
 
315
379
  }
316
380
 
381
+ /**
382
+ * Computes the number of mipmap levels for the given texture.
383
+ *
384
+ * @param {Texture} texture - The texture.
385
+ * @param {Number} width - The texture's width.
386
+ * @param {Number} height - The texture's height.
387
+ * @return {Number} The number of mipmap levels.
388
+ */
317
389
  getMipLevels( texture, width, height ) {
318
390
 
319
391
  let mipLevelCount;
@@ -340,12 +412,24 @@ class Textures extends DataMap {
340
412
 
341
413
  }
342
414
 
415
+ /**
416
+ * Returns `true` if the given texture requires mipmaps.
417
+ *
418
+ * @param {Texture} texture - The texture.
419
+ * @return {Boolean} Whether mipmaps are required or not.
420
+ */
343
421
  needsMipmaps( texture ) {
344
422
 
345
423
  return this.isEnvironmentTexture( texture ) || texture.isCompressedTexture === true || texture.generateMipmaps;
346
424
 
347
425
  }
348
426
 
427
+ /**
428
+ * Returns `true` if the given texture is an environment map.
429
+ *
430
+ * @param {Texture} texture - The texture.
431
+ * @return {Boolean} Whether the given texture is an environment map or not.
432
+ */
349
433
  isEnvironmentTexture( texture ) {
350
434
 
351
435
  const mapping = texture.mapping;
@@ -354,6 +438,12 @@ class Textures extends DataMap {
354
438
 
355
439
  }
356
440
 
441
+ /**
442
+ * Frees internal resource when the given texture isn't
443
+ * required anymore.
444
+ *
445
+ * @param {Texture} texture - The texture to destroy.
446
+ */
357
447
  _destroyTexture( texture ) {
358
448
 
359
449
  this.backend.destroySampler( texture );
@@ -0,0 +1,39 @@
1
+ class TimestampQueryPool {
2
+
3
+ constructor( maxQueries = 256 ) {
4
+
5
+ this.trackTimestamp = true;
6
+ this.maxQueries = maxQueries;
7
+ this.currentQueryIndex = 0; // how many queries allocated so far
8
+ this.queryOffsets = new Map(); // track offsets for different contexts
9
+ this.isDisposed = false;
10
+ this.lastValue = 0;
11
+ this.pendingResolve = false;
12
+
13
+ }
14
+
15
+ /**
16
+ * Allocate queries for a specific renderContext.
17
+ *
18
+ * @abstract
19
+ */
20
+ allocateQueriesForContext( /* renderContext */ ) {}
21
+
22
+ /**
23
+ * Resolve all timestamps and return data (or process them).
24
+ *
25
+ * @abstract
26
+ * @returns {Promise<Number>|Number} The resolved timestamp value.
27
+ */
28
+ async resolveQueriesAsync() {}
29
+
30
+ /**
31
+ * Dispose of the query pool.
32
+ *
33
+ * @abstract
34
+ */
35
+ dispose() {}
36
+
37
+ }
38
+
39
+ export default TimestampQueryPool;
@@ -1,30 +1,84 @@
1
1
  import { Color } from '../../math/Color.js';
2
+ import { Matrix2 } from '../../math/Matrix2.js';
2
3
  import { Matrix3 } from '../../math/Matrix3.js';
3
4
  import { Matrix4 } from '../../math/Matrix4.js';
4
5
  import { Vector2 } from '../../math/Vector2.js';
5
6
  import { Vector3 } from '../../math/Vector3.js';
6
7
  import { Vector4 } from '../../math/Vector4.js';
7
8
 
9
+ /**
10
+ * Abstract base class for uniforms.
11
+ *
12
+ * @abstract
13
+ * @private
14
+ */
8
15
  class Uniform {
9
16
 
17
+ /**
18
+ * Constructs a new uniform.
19
+ *
20
+ * @param {String} name - The uniform's name.
21
+ * @param {Any} value - The uniform's value.
22
+ */
10
23
  constructor( name, value ) {
11
24
 
25
+ /**
26
+ * The uniform's name.
27
+ *
28
+ * @type {String}
29
+ */
12
30
  this.name = name;
31
+
32
+ /**
33
+ * The uniform's value.
34
+ *
35
+ * @type {Any}
36
+ */
13
37
  this.value = value;
14
38
 
15
- this.boundary = 0; // used to build the uniform buffer according to the STD140 layout
39
+ /**
40
+ * Used to build the uniform buffer according to the STD140 layout.
41
+ * Derived uniforms will set this property to a data type specific
42
+ * value.
43
+ *
44
+ * @type {Number}
45
+ */
46
+ this.boundary = 0;
47
+
48
+ /**
49
+ * The item size. Derived uniforms will set this property to a data
50
+ * type specific value.
51
+ *
52
+ * @type {Number}
53
+ */
16
54
  this.itemSize = 0;
17
55
 
18
- this.offset = 0; // this property is set by WebGPUUniformsGroup and marks the start position in the uniform buffer
56
+ /**
57
+ * This property is set by {@link UniformsGroup} and marks
58
+ * the start position in the uniform buffer.
59
+ *
60
+ * @type {Number}
61
+ */
62
+ this.offset = 0;
19
63
 
20
64
  }
21
65
 
66
+ /**
67
+ * Sets the uniform's value.
68
+ *
69
+ * @param {Any} value - The value to set.
70
+ */
22
71
  setValue( value ) {
23
72
 
24
73
  this.value = value;
25
74
 
26
75
  }
27
76
 
77
+ /**
78
+ * Returns the uniform's value.
79
+ *
80
+ * @return {Any} The value.
81
+ */
28
82
  getValue() {
29
83
 
30
84
  return this.value;
@@ -33,12 +87,31 @@ class Uniform {
33
87
 
34
88
  }
35
89
 
90
+ /**
91
+ * Represents a Number uniform.
92
+ *
93
+ * @private
94
+ * @augments Uniform
95
+ */
36
96
  class NumberUniform extends Uniform {
37
97
 
98
+ /**
99
+ * Constructs a new Number uniform.
100
+ *
101
+ * @param {String} name - The uniform's name.
102
+ * @param {Number} value - The uniform's value.
103
+ */
38
104
  constructor( name, value = 0 ) {
39
105
 
40
106
  super( name, value );
41
107
 
108
+ /**
109
+ * This flag can be used for type testing.
110
+ *
111
+ * @type {Boolean}
112
+ * @readonly
113
+ * @default true
114
+ */
42
115
  this.isNumberUniform = true;
43
116
 
44
117
  this.boundary = 4;
@@ -48,12 +121,31 @@ class NumberUniform extends Uniform {
48
121
 
49
122
  }
50
123
 
124
+ /**
125
+ * Represents a Vector2 uniform.
126
+ *
127
+ * @private
128
+ * @augments Uniform
129
+ */
51
130
  class Vector2Uniform extends Uniform {
52
131
 
132
+ /**
133
+ * Constructs a new Number uniform.
134
+ *
135
+ * @param {String} name - The uniform's name.
136
+ * @param {Vector2} value - The uniform's value.
137
+ */
53
138
  constructor( name, value = new Vector2() ) {
54
139
 
55
140
  super( name, value );
56
141
 
142
+ /**
143
+ * This flag can be used for type testing.
144
+ *
145
+ * @type {Boolean}
146
+ * @readonly
147
+ * @default true
148
+ */
57
149
  this.isVector2Uniform = true;
58
150
 
59
151
  this.boundary = 8;
@@ -63,12 +155,31 @@ class Vector2Uniform extends Uniform {
63
155
 
64
156
  }
65
157
 
158
+ /**
159
+ * Represents a Vector3 uniform.
160
+ *
161
+ * @private
162
+ * @augments Uniform
163
+ */
66
164
  class Vector3Uniform extends Uniform {
67
165
 
166
+ /**
167
+ * Constructs a new Number uniform.
168
+ *
169
+ * @param {String} name - The uniform's name.
170
+ * @param {Vector3} value - The uniform's value.
171
+ */
68
172
  constructor( name, value = new Vector3() ) {
69
173
 
70
174
  super( name, value );
71
175
 
176
+ /**
177
+ * This flag can be used for type testing.
178
+ *
179
+ * @type {Boolean}
180
+ * @readonly
181
+ * @default true
182
+ */
72
183
  this.isVector3Uniform = true;
73
184
 
74
185
  this.boundary = 16;
@@ -78,12 +189,31 @@ class Vector3Uniform extends Uniform {
78
189
 
79
190
  }
80
191
 
192
+ /**
193
+ * Represents a Vector4 uniform.
194
+ *
195
+ * @private
196
+ * @augments Uniform
197
+ */
81
198
  class Vector4Uniform extends Uniform {
82
199
 
200
+ /**
201
+ * Constructs a new Number uniform.
202
+ *
203
+ * @param {String} name - The uniform's name.
204
+ * @param {Vector4} value - The uniform's value.
205
+ */
83
206
  constructor( name, value = new Vector4() ) {
84
207
 
85
208
  super( name, value );
86
209
 
210
+ /**
211
+ * This flag can be used for type testing.
212
+ *
213
+ * @type {Boolean}
214
+ * @readonly
215
+ * @default true
216
+ */
87
217
  this.isVector4Uniform = true;
88
218
 
89
219
  this.boundary = 16;
@@ -93,12 +223,31 @@ class Vector4Uniform extends Uniform {
93
223
 
94
224
  }
95
225
 
226
+ /**
227
+ * Represents a Color uniform.
228
+ *
229
+ * @private
230
+ * @augments Uniform
231
+ */
96
232
  class ColorUniform extends Uniform {
97
233
 
234
+ /**
235
+ * Constructs a new Number uniform.
236
+ *
237
+ * @param {String} name - The uniform's name.
238
+ * @param {Color} value - The uniform's value.
239
+ */
98
240
  constructor( name, value = new Color() ) {
99
241
 
100
242
  super( name, value );
101
243
 
244
+ /**
245
+ * This flag can be used for type testing.
246
+ *
247
+ * @type {Boolean}
248
+ * @readonly
249
+ * @default true
250
+ */
102
251
  this.isColorUniform = true;
103
252
 
104
253
  this.boundary = 16;
@@ -108,12 +257,66 @@ class ColorUniform extends Uniform {
108
257
 
109
258
  }
110
259
 
260
+ /**
261
+ * Represents a Matrix2 uniform.
262
+ *
263
+ * @private
264
+ * @augments Uniform
265
+ */
266
+ class Matrix2Uniform extends Uniform {
267
+
268
+ /**
269
+ * Constructs a new Number uniform.
270
+ *
271
+ * @param {String} name - The uniform's name.
272
+ * @param {Matrix2} value - The uniform's value.
273
+ */
274
+ constructor( name, value = new Matrix2() ) {
275
+
276
+ super( name, value );
277
+
278
+ /**
279
+ * This flag can be used for type testing.
280
+ *
281
+ * @type {Boolean}
282
+ * @readonly
283
+ * @default true
284
+ */
285
+ this.isMatrix2Uniform = true;
286
+
287
+ this.boundary = 16;
288
+ this.itemSize = 4;
289
+
290
+ }
291
+
292
+ }
293
+
294
+
295
+ /**
296
+ * Represents a Matrix3 uniform.
297
+ *
298
+ * @private
299
+ * @augments Uniform
300
+ */
111
301
  class Matrix3Uniform extends Uniform {
112
302
 
303
+ /**
304
+ * Constructs a new Number uniform.
305
+ *
306
+ * @param {String} name - The uniform's name.
307
+ * @param {Matrix3} value - The uniform's value.
308
+ */
113
309
  constructor( name, value = new Matrix3() ) {
114
310
 
115
311
  super( name, value );
116
312
 
313
+ /**
314
+ * This flag can be used for type testing.
315
+ *
316
+ * @type {Boolean}
317
+ * @readonly
318
+ * @default true
319
+ */
117
320
  this.isMatrix3Uniform = true;
118
321
 
119
322
  this.boundary = 48;
@@ -123,12 +326,31 @@ class Matrix3Uniform extends Uniform {
123
326
 
124
327
  }
125
328
 
329
+ /**
330
+ * Represents a Matrix4 uniform.
331
+ *
332
+ * @private
333
+ * @augments Uniform
334
+ */
126
335
  class Matrix4Uniform extends Uniform {
127
336
 
337
+ /**
338
+ * Constructs a new Number uniform.
339
+ *
340
+ * @param {String} name - The uniform's name.
341
+ * @param {Matrix4} value - The uniform's value.
342
+ */
128
343
  constructor( name, value = new Matrix4() ) {
129
344
 
130
345
  super( name, value );
131
346
 
347
+ /**
348
+ * This flag can be used for type testing.
349
+ *
350
+ * @type {Boolean}
351
+ * @readonly
352
+ * @default true
353
+ */
132
354
  this.isMatrix4Uniform = true;
133
355
 
134
356
  this.boundary = 64;
@@ -141,5 +363,5 @@ class Matrix4Uniform extends Uniform {
141
363
  export {
142
364
  NumberUniform,
143
365
  Vector2Uniform, Vector3Uniform, Vector4Uniform, ColorUniform,
144
- Matrix3Uniform, Matrix4Uniform
366
+ Matrix2Uniform, Matrix3Uniform, Matrix4Uniform
145
367
  };
@@ -1,11 +1,30 @@
1
1
  import Buffer from './Buffer.js';
2
2
 
3
+ /**
4
+ * Represents a uniform buffer binding type.
5
+ *
6
+ * @private
7
+ * @augments Buffer
8
+ */
3
9
  class UniformBuffer extends Buffer {
4
10
 
11
+ /**
12
+ * Constructs a new uniform buffer.
13
+ *
14
+ * @param {String} name - The buffer's name.
15
+ * @param {TypedArray} [buffer=null] - The buffer.
16
+ */
5
17
  constructor( name, buffer = null ) {
6
18
 
7
19
  super( name, buffer );
8
20
 
21
+ /**
22
+ * This flag can be used for type testing.
23
+ *
24
+ * @type {Boolean}
25
+ * @readonly
26
+ * @default true
27
+ */
9
28
  this.isUniformBuffer = true;
10
29
 
11
30
  }