@types/three 0.182.0 → 0.183.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.
- three/README.md +1 -1
- three/examples/jsm/Addons.d.ts +0 -3
- three/examples/jsm/controls/OrbitControls.d.ts +39 -0
- three/examples/jsm/effects/AnaglyphEffect.d.ts +4 -0
- three/examples/jsm/environments/ColorEnvironment.d.ts +9 -0
- three/examples/jsm/gpgpu/BitonicSort.d.ts +5 -5
- three/examples/jsm/helpers/AnimationPathHelper.d.ts +38 -0
- three/examples/jsm/helpers/ViewHelper.d.ts +4 -1
- three/examples/jsm/inspector/tabs/Parameters.d.ts +3 -0
- three/examples/jsm/inspector/ui/Item.d.ts +5 -0
- three/examples/jsm/libs/meshopt_decoder.module.d.ts +1 -1
- three/examples/jsm/lights/LightProbeGenerator.d.ts +11 -5
- three/examples/jsm/loaders/ColladaLoader.d.ts +27 -4
- three/examples/jsm/objects/SkyMesh.d.ts +11 -6
- three/examples/jsm/objects/Water2Mesh.d.ts +7 -7
- three/examples/jsm/objects/WaterMesh.d.ts +6 -6
- three/examples/jsm/postprocessing/EffectComposer.d.ts +9 -10
- three/examples/jsm/postprocessing/UnrealBloomPass.d.ts +4 -9
- three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +30 -0
- three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -1
- three/examples/jsm/tsl/display/BilateralBlurNode.d.ts +27 -0
- three/examples/jsm/tsl/display/BloomNode.d.ts +5 -5
- three/examples/jsm/tsl/display/CRT.d.ts +22 -0
- three/examples/jsm/tsl/display/DenoiseNode.d.ts +5 -5
- three/examples/jsm/tsl/display/DotScreenNode.d.ts +4 -6
- three/examples/jsm/tsl/display/GTAONode.d.ts +8 -8
- three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +4 -2
- three/examples/jsm/tsl/display/GodraysNode.d.ts +20 -0
- three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -6
- three/examples/jsm/tsl/display/Lut3DNode.d.ts +5 -5
- three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -1
- three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -6
- three/examples/jsm/tsl/display/PixelationPassNode.d.ts +10 -10
- three/examples/jsm/tsl/display/RGBShiftNode.d.ts +2 -2
- three/examples/jsm/tsl/display/RetroPassNode.d.ts +17 -0
- three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -1
- three/examples/jsm/tsl/display/SSGINode.d.ts +11 -11
- three/examples/jsm/tsl/display/SSRNode.d.ts +6 -6
- three/examples/jsm/tsl/display/SSSNode.d.ts +5 -5
- three/examples/jsm/tsl/display/Shape.d.ts +3 -0
- three/examples/jsm/tsl/display/TransitionNode.d.ts +3 -3
- three/examples/jsm/tsl/display/boxBlur.d.ts +1 -1
- three/examples/jsm/tsl/display/depthAwareBlend.d.ts +15 -0
- three/examples/jsm/tsl/display/hashBlur.d.ts +1 -1
- three/examples/jsm/tsl/math/Bayer.d.ts +2 -0
- three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -2
- three/package.json +3 -3
- three/src/Three.Core.d.ts +1 -1
- three/src/Three.TSL.d.ts +6 -11
- three/src/Three.WebGPU.Nodes.d.ts +2 -0
- three/src/Three.WebGPU.d.ts +3 -0
- three/src/Three.d.ts +2 -2
- three/src/animation/AnimationClip.d.ts +1 -1
- three/src/animation/KeyframeTrack.d.ts +19 -5
- three/src/animation/PropertyMixer.d.ts +5 -4
- three/src/audio/Audio.d.ts +224 -157
- three/src/audio/AudioAnalyser.d.ts +32 -27
- three/src/audio/AudioContext.d.ts +12 -12
- three/src/audio/AudioListener.d.ts +44 -65
- three/src/audio/PositionalAudio.d.ts +69 -62
- three/src/cameras/ArrayCamera.d.ts +21 -24
- three/src/cameras/Camera.d.ts +14 -53
- three/src/cameras/CubeCamera.d.ts +32 -28
- three/src/cameras/OrthographicCamera.d.ts +70 -100
- three/src/cameras/PerspectiveCamera.d.ts +133 -146
- three/src/cameras/StereoCamera.d.ts +24 -30
- three/src/constants.d.ts +14 -2
- three/src/core/Clock.d.ts +3 -0
- three/src/core/Object3D.d.ts +31 -7
- three/src/geometries/TorusGeometry.d.ts +22 -3
- three/src/helpers/ArrowHelper.d.ts +34 -50
- three/src/helpers/AxesHelper.d.ts +22 -36
- three/src/helpers/Box3Helper.d.ts +14 -25
- three/src/helpers/BoxHelper.d.ts +28 -39
- three/src/helpers/CameraHelper.d.ts +31 -52
- three/src/helpers/DirectionalLightHelper.d.ts +32 -53
- three/src/helpers/GridHelper.d.ts +15 -29
- three/src/helpers/HemisphereLightHelper.d.ts +26 -49
- three/src/helpers/PlaneHelper.d.ts +21 -33
- three/src/helpers/PointLightHelper.d.ts +25 -50
- three/src/helpers/PolarGridHelper.d.ts +19 -32
- three/src/helpers/SkeletonHelper.d.ts +26 -50
- three/src/helpers/SpotLightHelper.d.ts +28 -55
- three/src/lights/AmbientLight.d.ts +15 -23
- three/src/lights/DirectionalLight.d.ts +40 -82
- three/src/lights/DirectionalLightShadow.d.ts +6 -61
- three/src/lights/HemisphereLight.d.ts +20 -47
- three/src/lights/Light.d.ts +18 -48
- three/src/lights/LightProbe.d.ts +24 -29
- three/src/lights/LightShadow.d.ts +107 -91
- three/src/lights/PointLight.d.ts +36 -77
- three/src/lights/PointLightShadow.d.ts +9 -6
- three/src/lights/RectAreaLight.d.ts +39 -59
- three/src/lights/SpotLight.d.ts +62 -116
- three/src/lights/SpotLightShadow.d.ts +17 -59
- three/src/lights/webgpu/IESSpotLight.d.ts +13 -1
- three/src/lights/webgpu/ProjectorLight.d.ts +9 -10
- three/src/materials/MeshLambertMaterial.d.ts +6 -0
- three/src/materials/MeshPhongMaterial.d.ts +6 -0
- three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
- three/src/materials/nodes/LineBasicNodeMaterial.d.ts +0 -4
- three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +1 -2
- three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +0 -2
- three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +0 -2
- three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +5 -8
- three/src/materials/nodes/MeshToonNodeMaterial.d.ts +0 -4
- three/src/materials/nodes/NodeMaterial.d.ts +9 -3
- three/src/materials/nodes/SpriteNodeMaterial.d.ts +0 -3
- three/src/materials/nodes/VolumeNodeMaterial.d.ts +0 -2
- three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +39 -93
- three/src/math/Color.d.ts +1 -0
- three/src/math/Vector3.d.ts +2 -2
- three/src/math/interpolants/BezierInterpolant.d.ts +7 -0
- three/src/nodes/Nodes.d.ts +55 -35
- three/src/nodes/TSL.d.ts +2 -5
- three/src/nodes/accessors/Arrays.d.ts +19 -10
- three/src/nodes/accessors/BufferAttributeNode.d.ts +99 -33
- three/src/nodes/accessors/BufferNode.d.ts +21 -7
- three/src/nodes/accessors/Camera.d.ts +10 -10
- three/src/nodes/accessors/CubeTextureNode.d.ts +1 -1
- three/src/nodes/accessors/InstanceNode.d.ts +6 -0
- three/src/nodes/accessors/Lights.d.ts +9 -6
- three/src/nodes/accessors/MaterialNode.d.ts +1 -3
- three/src/nodes/accessors/MaterialProperties.d.ts +4 -4
- three/src/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
- three/src/nodes/accessors/ModelNode.d.ts +34 -17
- three/src/nodes/accessors/MorphNode.d.ts +1 -1
- three/src/nodes/accessors/Normal.d.ts +13 -15
- three/src/nodes/accessors/Object3DNode.d.ts +35 -16
- three/src/nodes/accessors/Position.d.ts +9 -7
- three/src/nodes/accessors/ReferenceNode.d.ts +16 -7
- three/src/nodes/accessors/ReflectVector.d.ts +4 -5
- three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -1
- three/src/nodes/accessors/SceneProperties.d.ts +5 -0
- three/src/nodes/accessors/SkinningNode.d.ts +5 -3
- three/src/nodes/accessors/StorageBufferNode.d.ts +49 -22
- three/src/nodes/accessors/StorageTextureNode.d.ts +1 -1
- three/src/nodes/accessors/Tangent.d.ts +5 -7
- three/src/nodes/accessors/Texture3DNode.d.ts +1 -1
- three/src/nodes/accessors/TextureBicubic.d.ts +3 -2
- three/src/nodes/accessors/TextureNode.d.ts +19 -18
- three/src/nodes/accessors/UV.d.ts +1 -1
- three/src/nodes/accessors/UniformArrayNode.d.ts +10 -8
- three/src/nodes/accessors/UserDataNode.d.ts +1 -1
- three/src/nodes/accessors/VelocityNode.d.ts +3 -3
- three/src/nodes/accessors/VertexColorNode.d.ts +1 -1
- three/src/nodes/code/FunctionCallNode.d.ts +0 -1
- three/src/nodes/code/FunctionNode.d.ts +7 -3
- three/src/nodes/core/ArrayNode.d.ts +2 -3
- three/src/nodes/core/AttributeNode.d.ts +12 -6
- three/src/nodes/core/BypassNode.d.ts +2 -3
- three/src/nodes/core/ConstNode.d.ts +10 -3
- three/src/nodes/core/ContextNode.d.ts +23 -28
- three/src/nodes/core/IndexNode.d.ts +1 -1
- three/src/nodes/core/InputNode.d.ts +12 -4
- three/src/nodes/core/InspectorNode.d.ts +2 -3
- three/src/nodes/core/IsolateNode.d.ts +2 -7
- three/src/nodes/core/MRTNode.d.ts +7 -0
- three/src/nodes/core/Node.d.ts +258 -39
- three/src/nodes/core/NodeAttribute.d.ts +30 -5
- three/src/nodes/core/NodeBuilder.d.ts +5 -3
- three/src/nodes/core/NodeCache.d.ts +24 -48
- three/src/nodes/core/NodeError.d.ts +9 -0
- three/src/nodes/core/NodeParser.d.ts +2 -0
- three/src/nodes/core/NodeUniform.d.ts +33 -9
- three/src/nodes/core/NodeVar.d.ts +33 -5
- three/src/nodes/core/NodeVarying.d.ts +32 -4
- three/src/nodes/core/ParameterNode.d.ts +11 -4
- three/src/nodes/core/PropertyNode.d.ts +45 -35
- three/src/nodes/core/StackTrace.d.ts +9 -0
- three/src/nodes/core/StructType.d.ts +3 -1
- three/src/nodes/core/StructTypeNode.d.ts +19 -5
- three/src/nodes/core/TempNode.d.ts +9 -3
- three/src/nodes/core/UniformNode.d.ts +53 -15
- three/src/nodes/core/VarNode.d.ts +15 -14
- three/src/nodes/core/VaryingNode.d.ts +14 -19
- three/src/nodes/core/constants.d.ts +9 -4
- three/src/nodes/display/BlendModes.d.ts +7 -27
- three/src/nodes/display/ColorAdjustment.d.ts +8 -9
- three/src/nodes/display/ColorSpaceNode.d.ts +2 -8
- three/src/nodes/display/FrontFacingNode.d.ts +1 -1
- three/src/nodes/display/PassNode.d.ts +9 -5
- three/src/nodes/display/RenderOutputNode.d.ts +3 -7
- three/src/nodes/display/ScreenNode.d.ts +25 -17
- three/src/nodes/display/ToneMappingNode.d.ts +3 -7
- three/src/nodes/display/ViewportDepthNode.d.ts +11 -7
- three/src/nodes/display/ViewportTextureNode.d.ts +2 -0
- three/src/nodes/fog/Fog.d.ts +5 -3
- three/src/nodes/geometry/RangeNode.d.ts +51 -9
- three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +2 -0
- three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
- three/src/nodes/gpgpu/ComputeNode.d.ts +2 -7
- three/src/nodes/lighting/AnalyticLightNode.d.ts +1 -1
- three/src/nodes/lighting/HemisphereLightNode.d.ts +3 -2
- three/src/nodes/lighting/LightProbeNode.d.ts +1 -1
- three/src/nodes/lighting/LightUtils.d.ts +1 -1
- three/src/nodes/lighting/LightingContextNode.d.ts +1 -1
- three/src/nodes/lighting/SpotLightNode.d.ts +0 -6
- three/src/nodes/materialx/MaterialXNodes.d.ts +11 -11
- three/src/nodes/math/BitcountNode.d.ts +2 -0
- three/src/nodes/math/ConditionalNode.d.ts +43 -22
- three/src/nodes/math/Hash.d.ts +1 -1
- three/src/nodes/math/MathNode.d.ts +603 -267
- three/src/nodes/math/MathUtils.d.ts +9 -5
- three/src/nodes/math/OperatorNode.d.ts +490 -227
- three/src/nodes/math/TriNoise3D.d.ts +3 -3
- three/src/nodes/pmrem/PMREMNode.d.ts +1 -1
- three/src/nodes/procedural/Checker.d.ts +1 -1
- three/src/nodes/tsl/TSLCore.d.ts +1683 -224
- three/src/nodes/utils/ArrayElementNode.d.ts +9 -4
- three/src/nodes/utils/DebugNode.d.ts +2 -5
- three/src/nodes/utils/Discard.d.ts +2 -3
- three/src/nodes/utils/FlipNode.d.ts +11 -0
- three/src/nodes/utils/LoopNode.d.ts +17 -13
- three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -1
- three/src/nodes/utils/Oscillators.d.ts +4 -4
- three/src/nodes/utils/Packing.d.ts +3 -3
- three/src/nodes/utils/PostProcessingUtils.d.ts +5 -5
- three/src/nodes/utils/RemapNode.d.ts +33 -39
- three/src/nodes/utils/RotateNode.d.ts +17 -8
- three/src/nodes/utils/SplitNode.d.ts +1 -2
- three/src/nodes/utils/SpriteSheetUV.d.ts +7 -0
- three/src/nodes/utils/StorageArrayElementNode.d.ts +18 -9
- three/src/nodes/utils/Timer.d.ts +4 -4
- three/src/nodes/utils/TriplanarTextures.d.ts +2 -2
- three/src/nodes/utils/UVUtils.d.ts +6 -4
- three/src/objects/BatchedMesh.d.ts +6 -4
- three/src/objects/InstancedMesh.d.ts +32 -24
- three/src/renderers/WebGLRenderer.d.ts +4 -93
- three/src/renderers/common/Animation.d.ts +46 -9
- three/src/renderers/common/Attributes.d.ts +11 -13
- three/src/renderers/common/Backend.d.ts +0 -2
- three/src/renderers/common/Background.d.ts +17 -15
- three/src/renderers/common/BindGroup.d.ts +27 -13
- three/src/renderers/common/Binding.d.ts +15 -3
- three/src/renderers/common/Bindings.d.ts +41 -17
- three/src/renderers/common/BlendMode.d.ts +22 -0
- three/src/renderers/common/Buffer.d.ts +35 -11
- three/src/renderers/common/BufferUtils.d.ts +3 -4
- three/src/renderers/common/BundleGroup.d.ts +16 -6
- three/src/renderers/common/CanvasTarget.d.ts +76 -13
- three/src/renderers/common/ChainMap.d.ts +12 -9
- three/src/renderers/common/ClippingContext.d.ts +61 -10
- three/src/renderers/common/Color4.d.ts +10 -5
- three/src/renderers/common/ComputePipeline.d.ts +16 -2
- three/src/renderers/common/Constants.d.ts +5 -3
- three/src/renderers/common/CubeRenderTarget.d.ts +24 -7
- three/src/renderers/common/DataMap.d.ts +10 -18
- three/src/renderers/common/Geometries.d.ts +39 -20
- three/src/renderers/common/Info.d.ts +62 -9
- three/src/renderers/common/InspectorBase.d.ts +19 -7
- three/src/renderers/common/Lighting.d.ts +2 -6
- three/src/renderers/common/Pipeline.d.ts +14 -2
- three/src/renderers/common/Pipelines.d.ts +58 -60
- three/src/renderers/common/PostProcessing.d.ts +14 -17
- three/src/renderers/common/ProgrammableStage.d.ts +48 -8
- three/src/renderers/common/RenderBundle.d.ts +4 -2
- three/src/renderers/common/RenderBundles.d.ts +6 -3
- three/src/renderers/common/RenderContext.d.ts +175 -7
- three/src/renderers/common/RenderContexts.d.ts +20 -25
- three/src/renderers/common/RenderList.d.ts +77 -11
- three/src/renderers/common/RenderLists.d.ts +16 -4
- three/src/renderers/common/RenderObject.d.ts +223 -47
- three/src/renderers/common/{RenderPipeline.d.ts → RenderObjectPipeline.d.ts} +17 -5
- three/src/renderers/common/RenderObjects.d.ts +55 -22
- three/src/renderers/common/Renderer.d.ts +625 -207
- three/src/renderers/common/Textures.d.ts +24 -46
- three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
- three/src/renderers/common/Uniform.d.ts +143 -58
- three/src/renderers/common/UniformBuffer.d.ts +7 -5
- three/src/renderers/common/UniformsGroup.d.ts +50 -35
- three/src/renderers/common/XRManager.d.ts +321 -83
- three/src/renderers/common/XRRenderTarget.d.ts +49 -6
- three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
- three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
- three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
- three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
- three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
- three/src/renderers/shaders/UniformsLib.d.ts +0 -3
- three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
- three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
- three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
- three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
- three/src/renderers/webgl/WebGLLights.d.ts +19 -18
- three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
- three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
- three/src/renderers/webgl/WebGLPrograms.d.ts +2 -2
- three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
- three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
- three/src/renderers/webgl/WebGLState.d.ts +305 -28
- three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
- three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
- three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
- three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
- three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
- three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
- three/src/scenes/Fog.d.ts +31 -37
- three/src/scenes/FogExp2.d.ts +26 -31
- three/src/scenes/Scene.d.ts +51 -65
- three/src/textures/CompressedArrayTexture.d.ts +1 -1
- three/src/textures/DataArrayTexture.d.ts +1 -1
- three/src/utils.d.ts +5 -0
- three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
- three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
- three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
- three/src/nodes/accessors/SceneNode.d.ts +0 -21
- three/src/nodes/code/ScriptableNode.d.ts +0 -21
- three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
- three/src/nodes/display/PosterizeNode.d.ts +0 -13
- three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
- three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
- 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
|
-
*
|
|
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
|
-
|
|
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
|
|
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
|
-
*
|
|
19
|
+
* The renderer.
|
|
22
20
|
*
|
|
23
|
-
* @
|
|
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
|
-
|
|
23
|
+
renderer: Renderer;
|
|
30
24
|
/**
|
|
31
|
-
*
|
|
25
|
+
* A dictionary that manages render contexts.
|
|
32
26
|
*
|
|
33
|
-
* @
|
|
34
|
-
* @return {RenderContext} The render context.
|
|
27
|
+
* @type {Object<string,RenderContext>}
|
|
35
28
|
*/
|
|
36
|
-
|
|
29
|
+
_renderContexts: {
|
|
30
|
+
[x: string]: RenderContext;
|
|
31
|
+
};
|
|
37
32
|
/**
|
|
38
|
-
* Returns a
|
|
33
|
+
* Returns a render context for the given scene, camera and render target.
|
|
39
34
|
*
|
|
40
|
-
* @
|
|
41
|
-
* @param {
|
|
42
|
-
* @
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
*
|
|
116
|
+
* How many objects perform occlusion query tests.
|
|
51
117
|
*
|
|
52
|
-
* @
|
|
53
|
-
* @
|
|
54
|
-
* @param {Camera} camera - The camera the scene is rendered with.
|
|
118
|
+
* @type {number}
|
|
119
|
+
* @default 0
|
|
55
120
|
*/
|
|
56
|
-
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
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:
|
|
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;
|