@types/three 0.182.0 → 0.183.1

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 (313) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +0 -3
  3. three/examples/jsm/controls/OrbitControls.d.ts +39 -0
  4. three/examples/jsm/effects/AnaglyphEffect.d.ts +4 -0
  5. three/examples/jsm/environments/ColorEnvironment.d.ts +9 -0
  6. three/examples/jsm/gpgpu/BitonicSort.d.ts +5 -5
  7. three/examples/jsm/helpers/AnimationPathHelper.d.ts +38 -0
  8. three/examples/jsm/helpers/ViewHelper.d.ts +4 -1
  9. three/examples/jsm/inspector/tabs/Parameters.d.ts +3 -0
  10. three/examples/jsm/inspector/ui/Item.d.ts +5 -0
  11. three/examples/jsm/libs/meshopt_decoder.module.d.ts +1 -1
  12. three/examples/jsm/lights/LightProbeGenerator.d.ts +11 -5
  13. three/examples/jsm/loaders/ColladaLoader.d.ts +27 -4
  14. three/examples/jsm/objects/SkyMesh.d.ts +11 -6
  15. three/examples/jsm/objects/Water2Mesh.d.ts +7 -7
  16. three/examples/jsm/objects/WaterMesh.d.ts +6 -6
  17. three/examples/jsm/postprocessing/EffectComposer.d.ts +9 -10
  18. three/examples/jsm/postprocessing/UnrealBloomPass.d.ts +4 -9
  19. three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +30 -0
  20. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -1
  21. three/examples/jsm/tsl/display/BilateralBlurNode.d.ts +27 -0
  22. three/examples/jsm/tsl/display/BloomNode.d.ts +5 -5
  23. three/examples/jsm/tsl/display/CRT.d.ts +22 -0
  24. three/examples/jsm/tsl/display/DenoiseNode.d.ts +5 -5
  25. three/examples/jsm/tsl/display/DotScreenNode.d.ts +4 -6
  26. three/examples/jsm/tsl/display/GTAONode.d.ts +8 -8
  27. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +4 -2
  28. three/examples/jsm/tsl/display/GodraysNode.d.ts +20 -0
  29. three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -6
  30. three/examples/jsm/tsl/display/Lut3DNode.d.ts +5 -5
  31. three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -1
  32. three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -6
  33. three/examples/jsm/tsl/display/PixelationPassNode.d.ts +10 -10
  34. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +2 -2
  35. three/examples/jsm/tsl/display/RetroPassNode.d.ts +17 -0
  36. three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -1
  37. three/examples/jsm/tsl/display/SSGINode.d.ts +11 -11
  38. three/examples/jsm/tsl/display/SSRNode.d.ts +6 -6
  39. three/examples/jsm/tsl/display/SSSNode.d.ts +5 -5
  40. three/examples/jsm/tsl/display/Shape.d.ts +3 -0
  41. three/examples/jsm/tsl/display/TransitionNode.d.ts +3 -3
  42. three/examples/jsm/tsl/display/boxBlur.d.ts +1 -1
  43. three/examples/jsm/tsl/display/depthAwareBlend.d.ts +15 -0
  44. three/examples/jsm/tsl/display/hashBlur.d.ts +1 -1
  45. three/examples/jsm/tsl/math/Bayer.d.ts +2 -0
  46. three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -2
  47. three/package.json +3 -3
  48. three/src/Three.Core.d.ts +1 -1
  49. three/src/Three.TSL.d.ts +6 -11
  50. three/src/Three.WebGPU.Nodes.d.ts +2 -0
  51. three/src/Three.WebGPU.d.ts +3 -0
  52. three/src/Three.d.ts +2 -2
  53. three/src/animation/AnimationClip.d.ts +1 -1
  54. three/src/animation/KeyframeTrack.d.ts +19 -5
  55. three/src/animation/PropertyMixer.d.ts +5 -4
  56. three/src/audio/Audio.d.ts +224 -157
  57. three/src/audio/AudioAnalyser.d.ts +32 -27
  58. three/src/audio/AudioContext.d.ts +12 -12
  59. three/src/audio/AudioListener.d.ts +44 -65
  60. three/src/audio/PositionalAudio.d.ts +69 -62
  61. three/src/cameras/ArrayCamera.d.ts +21 -24
  62. three/src/cameras/Camera.d.ts +14 -53
  63. three/src/cameras/CubeCamera.d.ts +32 -28
  64. three/src/cameras/OrthographicCamera.d.ts +70 -100
  65. three/src/cameras/PerspectiveCamera.d.ts +133 -146
  66. three/src/cameras/StereoCamera.d.ts +24 -30
  67. three/src/constants.d.ts +14 -2
  68. three/src/core/Clock.d.ts +3 -0
  69. three/src/core/Object3D.d.ts +31 -7
  70. three/src/geometries/TorusGeometry.d.ts +22 -3
  71. three/src/helpers/ArrowHelper.d.ts +34 -50
  72. three/src/helpers/AxesHelper.d.ts +22 -36
  73. three/src/helpers/Box3Helper.d.ts +14 -25
  74. three/src/helpers/BoxHelper.d.ts +28 -39
  75. three/src/helpers/CameraHelper.d.ts +31 -52
  76. three/src/helpers/DirectionalLightHelper.d.ts +32 -53
  77. three/src/helpers/GridHelper.d.ts +15 -29
  78. three/src/helpers/HemisphereLightHelper.d.ts +26 -49
  79. three/src/helpers/PlaneHelper.d.ts +21 -33
  80. three/src/helpers/PointLightHelper.d.ts +25 -50
  81. three/src/helpers/PolarGridHelper.d.ts +19 -32
  82. three/src/helpers/SkeletonHelper.d.ts +26 -50
  83. three/src/helpers/SpotLightHelper.d.ts +28 -55
  84. three/src/lights/AmbientLight.d.ts +15 -23
  85. three/src/lights/DirectionalLight.d.ts +40 -82
  86. three/src/lights/DirectionalLightShadow.d.ts +6 -61
  87. three/src/lights/HemisphereLight.d.ts +20 -47
  88. three/src/lights/Light.d.ts +18 -48
  89. three/src/lights/LightProbe.d.ts +24 -29
  90. three/src/lights/LightShadow.d.ts +107 -91
  91. three/src/lights/PointLight.d.ts +36 -77
  92. three/src/lights/PointLightShadow.d.ts +9 -6
  93. three/src/lights/RectAreaLight.d.ts +39 -59
  94. three/src/lights/SpotLight.d.ts +62 -116
  95. three/src/lights/SpotLightShadow.d.ts +17 -59
  96. three/src/lights/webgpu/IESSpotLight.d.ts +13 -1
  97. three/src/lights/webgpu/ProjectorLight.d.ts +9 -10
  98. three/src/materials/MeshLambertMaterial.d.ts +6 -0
  99. three/src/materials/MeshPhongMaterial.d.ts +6 -0
  100. three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
  101. three/src/materials/nodes/LineBasicNodeMaterial.d.ts +0 -4
  102. three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +1 -2
  103. three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +0 -2
  104. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +0 -2
  105. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +5 -8
  106. three/src/materials/nodes/MeshToonNodeMaterial.d.ts +0 -4
  107. three/src/materials/nodes/NodeMaterial.d.ts +9 -3
  108. three/src/materials/nodes/SpriteNodeMaterial.d.ts +0 -3
  109. three/src/materials/nodes/VolumeNodeMaterial.d.ts +0 -2
  110. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +39 -93
  111. three/src/math/Color.d.ts +1 -0
  112. three/src/math/Vector3.d.ts +2 -2
  113. three/src/math/interpolants/BezierInterpolant.d.ts +7 -0
  114. three/src/nodes/Nodes.d.ts +55 -35
  115. three/src/nodes/TSL.d.ts +2 -5
  116. three/src/nodes/accessors/Arrays.d.ts +19 -10
  117. three/src/nodes/accessors/BufferAttributeNode.d.ts +99 -33
  118. three/src/nodes/accessors/BufferNode.d.ts +21 -7
  119. three/src/nodes/accessors/Camera.d.ts +10 -10
  120. three/src/nodes/accessors/CubeTextureNode.d.ts +1 -1
  121. three/src/nodes/accessors/InstanceNode.d.ts +6 -0
  122. three/src/nodes/accessors/Lights.d.ts +9 -6
  123. three/src/nodes/accessors/MaterialNode.d.ts +1 -3
  124. three/src/nodes/accessors/MaterialProperties.d.ts +4 -4
  125. three/src/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
  126. three/src/nodes/accessors/ModelNode.d.ts +34 -17
  127. three/src/nodes/accessors/MorphNode.d.ts +1 -1
  128. three/src/nodes/accessors/Normal.d.ts +13 -15
  129. three/src/nodes/accessors/Object3DNode.d.ts +35 -16
  130. three/src/nodes/accessors/Position.d.ts +9 -7
  131. three/src/nodes/accessors/ReferenceNode.d.ts +16 -7
  132. three/src/nodes/accessors/ReflectVector.d.ts +4 -5
  133. three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -1
  134. three/src/nodes/accessors/SceneProperties.d.ts +5 -0
  135. three/src/nodes/accessors/SkinningNode.d.ts +5 -3
  136. three/src/nodes/accessors/StorageBufferNode.d.ts +49 -22
  137. three/src/nodes/accessors/StorageTextureNode.d.ts +1 -1
  138. three/src/nodes/accessors/Tangent.d.ts +5 -7
  139. three/src/nodes/accessors/Texture3DNode.d.ts +1 -1
  140. three/src/nodes/accessors/TextureBicubic.d.ts +3 -2
  141. three/src/nodes/accessors/TextureNode.d.ts +19 -18
  142. three/src/nodes/accessors/UV.d.ts +1 -1
  143. three/src/nodes/accessors/UniformArrayNode.d.ts +10 -8
  144. three/src/nodes/accessors/UserDataNode.d.ts +1 -1
  145. three/src/nodes/accessors/VelocityNode.d.ts +3 -3
  146. three/src/nodes/accessors/VertexColorNode.d.ts +1 -1
  147. three/src/nodes/code/FunctionCallNode.d.ts +0 -1
  148. three/src/nodes/code/FunctionNode.d.ts +7 -3
  149. three/src/nodes/core/ArrayNode.d.ts +2 -3
  150. three/src/nodes/core/AttributeNode.d.ts +12 -6
  151. three/src/nodes/core/BypassNode.d.ts +2 -3
  152. three/src/nodes/core/ConstNode.d.ts +10 -3
  153. three/src/nodes/core/ContextNode.d.ts +23 -28
  154. three/src/nodes/core/IndexNode.d.ts +1 -1
  155. three/src/nodes/core/InputNode.d.ts +12 -4
  156. three/src/nodes/core/InspectorNode.d.ts +2 -3
  157. three/src/nodes/core/IsolateNode.d.ts +2 -7
  158. three/src/nodes/core/MRTNode.d.ts +7 -0
  159. three/src/nodes/core/Node.d.ts +258 -39
  160. three/src/nodes/core/NodeAttribute.d.ts +30 -5
  161. three/src/nodes/core/NodeBuilder.d.ts +5 -3
  162. three/src/nodes/core/NodeCache.d.ts +24 -48
  163. three/src/nodes/core/NodeError.d.ts +9 -0
  164. three/src/nodes/core/NodeParser.d.ts +2 -0
  165. three/src/nodes/core/NodeUniform.d.ts +33 -9
  166. three/src/nodes/core/NodeVar.d.ts +33 -5
  167. three/src/nodes/core/NodeVarying.d.ts +32 -4
  168. three/src/nodes/core/ParameterNode.d.ts +11 -4
  169. three/src/nodes/core/PropertyNode.d.ts +45 -35
  170. three/src/nodes/core/StackTrace.d.ts +9 -0
  171. three/src/nodes/core/StructType.d.ts +3 -1
  172. three/src/nodes/core/StructTypeNode.d.ts +19 -5
  173. three/src/nodes/core/TempNode.d.ts +9 -3
  174. three/src/nodes/core/UniformNode.d.ts +53 -15
  175. three/src/nodes/core/VarNode.d.ts +15 -14
  176. three/src/nodes/core/VaryingNode.d.ts +14 -19
  177. three/src/nodes/core/constants.d.ts +9 -4
  178. three/src/nodes/display/BlendModes.d.ts +7 -27
  179. three/src/nodes/display/ColorAdjustment.d.ts +8 -9
  180. three/src/nodes/display/ColorSpaceNode.d.ts +2 -8
  181. three/src/nodes/display/FrontFacingNode.d.ts +1 -1
  182. three/src/nodes/display/PassNode.d.ts +9 -5
  183. three/src/nodes/display/RenderOutputNode.d.ts +3 -7
  184. three/src/nodes/display/ScreenNode.d.ts +25 -17
  185. three/src/nodes/display/ToneMappingNode.d.ts +3 -7
  186. three/src/nodes/display/ViewportDepthNode.d.ts +11 -7
  187. three/src/nodes/display/ViewportTextureNode.d.ts +2 -0
  188. three/src/nodes/fog/Fog.d.ts +5 -3
  189. three/src/nodes/geometry/RangeNode.d.ts +51 -9
  190. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +2 -0
  191. three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
  192. three/src/nodes/gpgpu/ComputeNode.d.ts +2 -7
  193. three/src/nodes/lighting/AnalyticLightNode.d.ts +1 -1
  194. three/src/nodes/lighting/HemisphereLightNode.d.ts +3 -2
  195. three/src/nodes/lighting/LightProbeNode.d.ts +1 -1
  196. three/src/nodes/lighting/LightUtils.d.ts +1 -1
  197. three/src/nodes/lighting/LightingContextNode.d.ts +1 -1
  198. three/src/nodes/lighting/SpotLightNode.d.ts +0 -6
  199. three/src/nodes/materialx/MaterialXNodes.d.ts +11 -11
  200. three/src/nodes/math/BitcountNode.d.ts +2 -0
  201. three/src/nodes/math/ConditionalNode.d.ts +43 -22
  202. three/src/nodes/math/Hash.d.ts +1 -1
  203. three/src/nodes/math/MathNode.d.ts +603 -267
  204. three/src/nodes/math/MathUtils.d.ts +9 -5
  205. three/src/nodes/math/OperatorNode.d.ts +490 -227
  206. three/src/nodes/math/TriNoise3D.d.ts +3 -3
  207. three/src/nodes/pmrem/PMREMNode.d.ts +1 -1
  208. three/src/nodes/procedural/Checker.d.ts +1 -1
  209. three/src/nodes/tsl/TSLCore.d.ts +1683 -224
  210. three/src/nodes/utils/ArrayElementNode.d.ts +9 -4
  211. three/src/nodes/utils/DebugNode.d.ts +2 -5
  212. three/src/nodes/utils/Discard.d.ts +2 -3
  213. three/src/nodes/utils/FlipNode.d.ts +11 -0
  214. three/src/nodes/utils/LoopNode.d.ts +17 -13
  215. three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -1
  216. three/src/nodes/utils/Oscillators.d.ts +4 -4
  217. three/src/nodes/utils/Packing.d.ts +3 -3
  218. three/src/nodes/utils/PostProcessingUtils.d.ts +5 -5
  219. three/src/nodes/utils/RemapNode.d.ts +33 -39
  220. three/src/nodes/utils/RotateNode.d.ts +17 -8
  221. three/src/nodes/utils/SplitNode.d.ts +1 -2
  222. three/src/nodes/utils/SpriteSheetUV.d.ts +7 -0
  223. three/src/nodes/utils/StorageArrayElementNode.d.ts +18 -9
  224. three/src/nodes/utils/Timer.d.ts +4 -4
  225. three/src/nodes/utils/TriplanarTextures.d.ts +2 -2
  226. three/src/nodes/utils/UVUtils.d.ts +6 -4
  227. three/src/objects/BatchedMesh.d.ts +6 -4
  228. three/src/objects/InstancedMesh.d.ts +32 -24
  229. three/src/renderers/WebGLRenderer.d.ts +4 -93
  230. three/src/renderers/common/Animation.d.ts +46 -9
  231. three/src/renderers/common/Attributes.d.ts +11 -13
  232. three/src/renderers/common/Backend.d.ts +0 -2
  233. three/src/renderers/common/Background.d.ts +17 -15
  234. three/src/renderers/common/BindGroup.d.ts +27 -13
  235. three/src/renderers/common/Binding.d.ts +15 -3
  236. three/src/renderers/common/Bindings.d.ts +41 -17
  237. three/src/renderers/common/BlendMode.d.ts +22 -0
  238. three/src/renderers/common/Buffer.d.ts +35 -11
  239. three/src/renderers/common/BufferUtils.d.ts +3 -4
  240. three/src/renderers/common/BundleGroup.d.ts +16 -6
  241. three/src/renderers/common/CanvasTarget.d.ts +76 -13
  242. three/src/renderers/common/ChainMap.d.ts +12 -9
  243. three/src/renderers/common/ClippingContext.d.ts +61 -10
  244. three/src/renderers/common/Color4.d.ts +10 -5
  245. three/src/renderers/common/ComputePipeline.d.ts +16 -2
  246. three/src/renderers/common/Constants.d.ts +5 -3
  247. three/src/renderers/common/CubeRenderTarget.d.ts +24 -7
  248. three/src/renderers/common/DataMap.d.ts +10 -18
  249. three/src/renderers/common/Geometries.d.ts +39 -20
  250. three/src/renderers/common/Info.d.ts +62 -9
  251. three/src/renderers/common/InspectorBase.d.ts +19 -7
  252. three/src/renderers/common/Lighting.d.ts +2 -6
  253. three/src/renderers/common/Pipeline.d.ts +14 -2
  254. three/src/renderers/common/Pipelines.d.ts +58 -60
  255. three/src/renderers/common/PostProcessing.d.ts +14 -17
  256. three/src/renderers/common/ProgrammableStage.d.ts +48 -8
  257. three/src/renderers/common/RenderBundle.d.ts +4 -2
  258. three/src/renderers/common/RenderBundles.d.ts +6 -3
  259. three/src/renderers/common/RenderContext.d.ts +175 -7
  260. three/src/renderers/common/RenderContexts.d.ts +20 -25
  261. three/src/renderers/common/RenderList.d.ts +77 -11
  262. three/src/renderers/common/RenderLists.d.ts +16 -4
  263. three/src/renderers/common/RenderObject.d.ts +223 -47
  264. three/src/renderers/common/RenderObjectPipeline.d.ts +33 -0
  265. three/src/renderers/common/RenderObjects.d.ts +55 -22
  266. three/src/renderers/common/RenderPipeline.d.ts +20 -17
  267. three/src/renderers/common/Renderer.d.ts +625 -207
  268. three/src/renderers/common/Textures.d.ts +24 -46
  269. three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
  270. three/src/renderers/common/Uniform.d.ts +143 -58
  271. three/src/renderers/common/UniformBuffer.d.ts +7 -5
  272. three/src/renderers/common/UniformsGroup.d.ts +50 -35
  273. three/src/renderers/common/XRManager.d.ts +321 -83
  274. three/src/renderers/common/XRRenderTarget.d.ts +49 -6
  275. three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
  276. three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
  277. three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
  278. three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
  279. three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
  280. three/src/renderers/shaders/UniformsLib.d.ts +0 -3
  281. three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
  282. three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
  283. three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
  284. three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
  285. three/src/renderers/webgl/WebGLLights.d.ts +19 -18
  286. three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
  287. three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
  288. three/src/renderers/webgl/WebGLPrograms.d.ts +2 -2
  289. three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
  290. three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
  291. three/src/renderers/webgl/WebGLState.d.ts +305 -28
  292. three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
  293. three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
  294. three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
  295. three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
  296. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
  297. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
  298. three/src/scenes/Fog.d.ts +31 -37
  299. three/src/scenes/FogExp2.d.ts +26 -31
  300. three/src/scenes/Scene.d.ts +51 -65
  301. three/src/textures/CompressedArrayTexture.d.ts +1 -1
  302. three/src/textures/DataArrayTexture.d.ts +1 -1
  303. three/src/utils.d.ts +5 -0
  304. three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
  305. three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
  306. three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
  307. three/src/nodes/accessors/SceneNode.d.ts +0 -21
  308. three/src/nodes/code/ScriptableNode.d.ts +0 -21
  309. three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
  310. three/src/nodes/display/PosterizeNode.d.ts +0 -13
  311. three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
  312. three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
  313. three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +0 -9
@@ -1,8 +1,11 @@
1
+ import { Camera } from "../../cameras/Camera.js";
1
2
  import { RenderTarget } from "../../core/RenderTarget.js";
2
3
  import { Vector4 } from "../../math/Vector4.js";
4
+ import MRTNode from "../../nodes/core/MRTNode.js";
3
5
  import { DepthTexture } from "../../textures/DepthTexture.js";
4
6
  import { Texture } from "../../textures/Texture.js";
5
7
  import ClippingContext from "./ClippingContext.js";
8
+
6
9
  /**
7
10
  * Any render or compute command is executed in a specific context that defines
8
11
  * the state of the renderer and its backend. Typical examples for such context
@@ -12,42 +15,205 @@ import ClippingContext from "./ClippingContext.js";
12
15
  * @private
13
16
  */
14
17
  declare class RenderContext {
18
+ /**
19
+ * The context's ID.
20
+ *
21
+ * @type {number}
22
+ */
15
23
  id: number;
24
+ /**
25
+ * The MRT configuration.
26
+ *
27
+ * @type {?MRTNode}
28
+ * @default null
29
+ */
30
+ mrt: MRTNode | null;
31
+ /**
32
+ * Whether the current active framebuffer has a color attachment.
33
+ *
34
+ * @type {boolean}
35
+ * @default true
36
+ */
16
37
  color: boolean;
38
+ /**
39
+ * Whether the color attachment should be cleared or not.
40
+ *
41
+ * @type {boolean}
42
+ * @default true
43
+ */
17
44
  clearColor: boolean;
45
+ /**
46
+ * The clear color value.
47
+ *
48
+ * @type {Object}
49
+ * @default true
50
+ */
18
51
  clearColorValue: {
19
52
  r: number;
20
53
  g: number;
21
54
  b: number;
22
55
  a: number;
23
56
  };
57
+ /**
58
+ * Whether the current active framebuffer has a depth attachment.
59
+ *
60
+ * @type {boolean}
61
+ * @default true
62
+ */
24
63
  depth: boolean;
64
+ /**
65
+ * Whether the depth attachment should be cleared or not.
66
+ *
67
+ * @type {boolean}
68
+ * @default true
69
+ */
25
70
  clearDepth: boolean;
71
+ /**
72
+ * The clear depth value.
73
+ *
74
+ * @type {number}
75
+ * @default 1
76
+ */
26
77
  clearDepthValue: number;
78
+ /**
79
+ * Whether the current active framebuffer has a stencil attachment.
80
+ *
81
+ * @type {boolean}
82
+ * @default false
83
+ */
27
84
  stencil: boolean;
85
+ /**
86
+ * Whether the stencil attachment should be cleared or not.
87
+ *
88
+ * @type {boolean}
89
+ * @default true
90
+ */
28
91
  clearStencil: boolean;
92
+ /**
93
+ * The clear stencil value.
94
+ *
95
+ * @type {number}
96
+ * @default 1
97
+ */
29
98
  clearStencilValue: number;
99
+ /**
100
+ * By default the viewport encloses the entire framebuffer If a smaller
101
+ * viewport is manually defined, this property is to `true` by the renderer.
102
+ *
103
+ * @type {boolean}
104
+ * @default false
105
+ */
30
106
  viewport: boolean;
107
+ /**
108
+ * The viewport value. This value is in physical pixels meaning it incorporates
109
+ * the renderer's pixel ratio. The viewport property of render targets or
110
+ * the renderer is in logical pixels.
111
+ *
112
+ * @type {Vector4}
113
+ */
31
114
  viewportValue: Vector4;
115
+ /**
116
+ * When the scissor test is active and scissor rectangle smaller than the
117
+ * framebuffers dimensions, this property is to `true` by the renderer.
118
+ *
119
+ * @type {boolean}
120
+ * @default false
121
+ */
32
122
  scissor: boolean;
123
+ /**
124
+ * The scissor rectangle.
125
+ *
126
+ * @type {Vector4}
127
+ */
33
128
  scissorValue: Vector4;
129
+ /**
130
+ * The active render target.
131
+ *
132
+ * @type {?RenderTarget}
133
+ * @default null
134
+ */
34
135
  renderTarget: RenderTarget | null;
136
+ /**
137
+ * The textures of the active render target.
138
+ * `null` when no render target is set.
139
+ *
140
+ * @type {?Array<Texture>}
141
+ * @default null
142
+ */
35
143
  textures: Texture[] | null;
144
+ /**
145
+ * The depth texture of the active render target.
146
+ * `null` when no render target is set.
147
+ *
148
+ * @type {?DepthTexture}
149
+ * @default null
150
+ */
36
151
  depthTexture: DepthTexture | null;
152
+ /**
153
+ * The active cube face.
154
+ *
155
+ * @type {number}
156
+ * @default 0
157
+ */
37
158
  activeCubeFace: number;
159
+ /**
160
+ * The active mipmap level.
161
+ *
162
+ * @type {number}
163
+ * @default 0
164
+ */
165
+ activeMipmapLevel: number;
166
+ /**
167
+ * The number of MSAA samples. This value is always `1` when
168
+ * MSAA isn't used.
169
+ *
170
+ * @type {number}
171
+ * @default 1
172
+ */
38
173
  sampleCount: number;
174
+ /**
175
+ * The active render target's width in physical pixels.
176
+ *
177
+ * @type {number}
178
+ * @default 0
179
+ */
39
180
  width: number;
181
+ /**
182
+ * The active render target's height in physical pixels.
183
+ *
184
+ * @type {number}
185
+ * @default 0
186
+ */
40
187
  height: number;
188
+ /**
189
+ * The occlusion query count.
190
+ *
191
+ * @type {number}
192
+ * @default 0
193
+ */
41
194
  occlusionQueryCount: number;
195
+ /**
196
+ * The current clipping context.
197
+ *
198
+ * @type {?ClippingContext}
199
+ * @default null
200
+ */
42
201
  clippingContext: ClippingContext | null;
43
- readonly isRenderContext: true;
44
- depthClearValue?: number | undefined;
45
- stencilClearValue?: number | undefined;
46
- activeMipmapLevel?: number | undefined;
47
202
  /**
48
- * Constructs a new render context.
203
+ * The current camera.
204
+ *
205
+ * @type {?Camera}
206
+ * @default null
207
+ */
208
+ camera: Camera | null;
209
+ /**
210
+ * This flag can be used for type testing.
211
+ *
212
+ * @type {boolean}
213
+ * @readonly
214
+ * @default true
49
215
  */
50
- constructor();
216
+ readonly isRenderContext: boolean;
51
217
  /**
52
218
  * Returns the cache key of this render context.
53
219
  *
@@ -55,6 +221,7 @@ declare class RenderContext {
55
221
  */
56
222
  getCacheKey(): number;
57
223
  }
224
+
58
225
  /**
59
226
  * Computes a cache key for the given render context. This key
60
227
  * should identify the render target state so it is possible to
@@ -63,5 +230,6 @@ declare class RenderContext {
63
230
  * @param {RenderContext} renderContext - The render context.
64
231
  * @return {number} The cache key.
65
232
  */
66
- export declare function getCacheKey(renderContext: RenderContext): number;
233
+ export function getCacheKey(renderContext: RenderContext): number;
234
+
67
235
  export default RenderContext;
@@ -1,52 +1,47 @@
1
- import { Camera } from "../../cameras/Camera.js";
2
1
  import { RenderTarget } from "../../core/RenderTarget.js";
3
2
  import MRTNode from "../../nodes/core/MRTNode.js";
4
- import { Scene } from "../../scenes/Scene.js";
5
- import ChainMap from "./ChainMap.js";
6
3
  import RenderContext from "./RenderContext.js";
4
+ import Renderer from "./Renderer.js";
5
+
7
6
  /**
8
7
  * This module manages the render contexts of the renderer.
9
8
  *
10
9
  * @private
11
10
  */
12
11
  declare class RenderContexts {
13
- chainMaps: {
14
- [attachmentState: string]: ChainMap<readonly [Scene, Camera], RenderContext> | undefined;
15
- };
16
12
  /**
17
13
  * Constructs a new render context management component.
14
+ *
15
+ * @param {Renderer} renderer - The renderer.
18
16
  */
19
- constructor();
17
+ constructor(renderer: Renderer);
20
18
  /**
21
- * Returns a render context for the given scene, camera and render target.
19
+ * The renderer.
22
20
  *
23
- * @param {Scene} scene - The scene.
24
- * @param {Camera} camera - The camera that is used to render the scene.
25
- * @param {?RenderTarget} [renderTarget=null] - The active render target.
26
- * @param {?MRT} [mrt=null] - The active multiple render target.
27
- * @return {RenderContext} The render context.
21
+ * @type {Renderer}
28
22
  */
29
- get(scene: Scene, camera: Camera, renderTarget?: RenderTarget | null, mrt?: MRTNode | null): RenderContext;
23
+ renderer: Renderer;
30
24
  /**
31
- * Returns a render context intended for clear operations.
25
+ * A dictionary that manages render contexts.
32
26
  *
33
- * @param {?RenderTarget} [renderTarget=null] - The active render target.
34
- * @return {RenderContext} The render context.
27
+ * @type {Object<string,RenderContext>}
35
28
  */
36
- getForClear(renderTarget?: RenderTarget | null): RenderContext;
29
+ _renderContexts: {
30
+ [x: string]: RenderContext;
31
+ };
37
32
  /**
38
- * Returns a chain map for the given attachment state.
33
+ * Returns a render context for the given scene, camera and render target.
39
34
  *
40
- * @private
41
- * @param {string} attachmentState - The attachment state.
42
- * @return {ChainMap} The chain map.
35
+ * @param {?RenderTarget} [renderTarget=null] - The active render target.
36
+ * @param {?MRTNode} [mrt=null] - The MRT configuration
37
+ * @param {?number} [callDepth=0] - The call depth of the renderer.
38
+ * @return {RenderContext} The render context.
43
39
  */
44
- _getChainMap(
45
- attachmentState: string,
46
- ): ChainMap<readonly [Scene<import("../../Three.Core.js").Object3DEventMap>, Camera], RenderContext>;
40
+ get(renderTarget?: RenderTarget | null, mrt?: MRTNode | null, callDepth?: number | null): RenderContext;
47
41
  /**
48
42
  * Frees internal resources.
49
43
  */
50
44
  dispose(): void;
51
45
  }
46
+
52
47
  export default RenderContexts;
@@ -3,15 +3,18 @@ import { BufferGeometry, GeometryGroup } from "../../core/BufferGeometry.js";
3
3
  import { Object3D } from "../../core/Object3D.js";
4
4
  import { Light } from "../../lights/Light.js";
5
5
  import { Material } from "../../materials/Material.js";
6
- import { LightsNode } from "../../nodes/Nodes.js";
6
+ import LightsNode from "../../nodes/lighting/LightsNode.js";
7
+ import { Scene } from "../../scenes/Scene.js";
7
8
  import BundleGroup from "./BundleGroup.js";
8
9
  import ClippingContext from "./ClippingContext.js";
9
10
  import Lighting from "./Lighting.js";
11
+
10
12
  export interface Bundle {
11
13
  bundleGroup: BundleGroup;
12
14
  camera: Camera;
13
15
  renderList: RenderList;
14
16
  }
17
+
15
18
  export interface RenderItem {
16
19
  id: number | null;
17
20
  object: Object3D | null;
@@ -23,6 +26,7 @@ export interface RenderItem {
23
26
  group: GeometryGroup | null;
24
27
  clippingContext: ClippingContext | null;
25
28
  }
29
+
26
30
  /**
27
31
  * When the renderer analyzes the scene at the beginning of a render call,
28
32
  * it stores 3D object for further processing in render lists. Depending on the
@@ -35,25 +39,86 @@ export interface RenderItem {
35
39
  * @augments Pipeline
36
40
  */
37
41
  declare class RenderList {
42
+ /**
43
+ * Constructs a render list.
44
+ *
45
+ * @param {Lighting} lighting - The lighting management component.
46
+ * @param {Scene} scene - The scene.
47
+ * @param {Camera} camera - The camera the scene is rendered with.
48
+ */
49
+ constructor(lighting: Lighting, scene: Scene, camera: Camera);
50
+ /**
51
+ * 3D objects are transformed into render items and stored in this array.
52
+ *
53
+ * @type {Array<Object>}
54
+ */
38
55
  renderItems: RenderItem[];
56
+ /**
57
+ * The current render items index.
58
+ *
59
+ * @type {number}
60
+ * @default 0
61
+ */
39
62
  renderItemsIndex: number;
63
+ /**
64
+ * A list with opaque render items.
65
+ *
66
+ * @type {Array<Object>}
67
+ */
40
68
  opaque: RenderItem[];
69
+ /**
70
+ * A list with transparent render items which require
71
+ * double pass rendering (e.g. transmissive objects).
72
+ *
73
+ * @type {Array<Object>}
74
+ */
41
75
  transparentDoublePass: RenderItem[];
76
+ /**
77
+ * A list with transparent render items.
78
+ *
79
+ * @type {Array<Object>}
80
+ */
42
81
  transparent: RenderItem[];
82
+ /**
83
+ * A list with transparent render bundle data.
84
+ *
85
+ * @type {Array<Object>}
86
+ */
43
87
  bundles: Bundle[];
88
+ /**
89
+ * The render list's lights node. This node is later
90
+ * relevant for the actual analytical light nodes which
91
+ * compute the scene's lighting in the shader.
92
+ *
93
+ * @type {LightsNode}
94
+ */
44
95
  lightsNode: LightsNode;
96
+ /**
97
+ * The scene's lights stored in an array. This array
98
+ * is used to setup the lights node.
99
+ *
100
+ * @type {Array<Light>}
101
+ */
45
102
  lightsArray: Light[];
46
- scene: Object3D;
103
+ /**
104
+ * The scene.
105
+ *
106
+ * @type {Scene}
107
+ */
108
+ scene: Scene;
109
+ /**
110
+ * The camera the scene is rendered with.
111
+ *
112
+ * @type {Camera}
113
+ */
47
114
  camera: Camera;
48
- occlusionQueryCount: number;
49
115
  /**
50
- * Constructs a render list.
116
+ * How many objects perform occlusion query tests.
51
117
  *
52
- * @param {Lighting} lighting - The lighting management component.
53
- * @param {Scene} scene - The scene.
54
- * @param {Camera} camera - The camera the scene is rendered with.
118
+ * @type {number}
119
+ * @default 0
55
120
  */
56
- constructor(lighting: Lighting, scene: Object3D, camera: Camera);
121
+ occlusionQueryCount: number;
57
122
  /**
58
123
  * This method is called right at the beginning of a render call
59
124
  * before the scene is analyzed. It prepares the internal data
@@ -85,7 +150,7 @@ declare class RenderList {
85
150
  groupOrder: number,
86
151
  z: number,
87
152
  group: GeometryGroup | null,
88
- clippingContext: ClippingContext | null,
153
+ clippingContext: ClippingContext,
89
154
  ): RenderItem;
90
155
  /**
91
156
  * Pushes the given object as a render item to the internal render lists.
@@ -106,7 +171,7 @@ declare class RenderList {
106
171
  groupOrder: number,
107
172
  z: number,
108
173
  group: GeometryGroup | null,
109
- clippingContext: ClippingContext | null,
174
+ clippingContext: ClippingContext,
110
175
  ): void;
111
176
  /**
112
177
  * Inserts the given object as a render item at the start of the internal render lists.
@@ -127,7 +192,7 @@ declare class RenderList {
127
192
  groupOrder: number,
128
193
  z: number,
129
194
  group: GeometryGroup | null,
130
- clippingContext: ClippingContext | null,
195
+ clippingContext: ClippingContext,
131
196
  ): void;
132
197
  /**
133
198
  * Pushes render bundle group data into the render list.
@@ -157,4 +222,5 @@ declare class RenderList {
157
222
  */
158
223
  finish(): void;
159
224
  }
225
+
160
226
  export default RenderList;
@@ -1,8 +1,9 @@
1
1
  import { Camera } from "../../cameras/Camera.js";
2
- import { Object3D } from "../../core/Object3D.js";
2
+ import { Scene } from "../../scenes/Scene.js";
3
3
  import ChainMap from "./ChainMap.js";
4
4
  import Lighting from "./Lighting.js";
5
5
  import RenderList from "./RenderList.js";
6
+
6
7
  /**
7
8
  * This renderer module manages the render lists which are unique
8
9
  * per scene and camera combination.
@@ -10,14 +11,24 @@ import RenderList from "./RenderList.js";
10
11
  * @private
11
12
  */
12
13
  declare class RenderLists {
13
- lighting: Lighting;
14
- lists: ChainMap<readonly [Object3D, Camera], RenderList>;
15
14
  /**
16
15
  * Constructs a render lists management component.
17
16
  *
18
17
  * @param {Lighting} lighting - The lighting management component.
19
18
  */
20
19
  constructor(lighting: Lighting);
20
+ /**
21
+ * The lighting management component.
22
+ *
23
+ * @type {Lighting}
24
+ */
25
+ lighting: Lighting;
26
+ /**
27
+ * The internal chain map which holds the render lists.
28
+ *
29
+ * @type {ChainMap}
30
+ */
31
+ lists: ChainMap;
21
32
  /**
22
33
  * Returns a render list for the given scene and camera.
23
34
  *
@@ -25,10 +36,11 @@ declare class RenderLists {
25
36
  * @param {Camera} camera - The camera.
26
37
  * @return {RenderList} The render list.
27
38
  */
28
- get(scene: Object3D, camera: Camera): RenderList;
39
+ get(scene: Scene, camera: Camera): RenderList;
29
40
  /**
30
41
  * Frees all internal resources.
31
42
  */
32
43
  dispose(): void;
33
44
  }
45
+
34
46
  export default RenderLists;