@types/three 0.164.1 → 0.166.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 (181) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/controls/TransformControls.d.ts +8 -6
  3. three/examples/jsm/exporters/GLTFExporter.d.ts +6 -0
  4. three/examples/jsm/exporters/USDZExporter.d.ts +4 -2
  5. three/examples/jsm/geometries/TeapotGeometry.d.ts +24 -0
  6. three/examples/jsm/helpers/ViewHelper.d.ts +8 -6
  7. three/examples/jsm/lines/LineMaterial.d.ts +2 -4
  8. three/examples/jsm/loaders/DDSLoader.d.ts +8 -2
  9. three/examples/jsm/loaders/FontLoader.d.ts +1 -1
  10. three/examples/jsm/loaders/GLTFLoader.d.ts +12 -7
  11. three/examples/jsm/loaders/KTXLoader.d.ts +8 -2
  12. three/examples/jsm/loaders/LDrawLoader.d.ts +1 -1
  13. three/examples/jsm/loaders/PVRLoader.d.ts +2 -2
  14. three/examples/jsm/modifiers/EdgeSplitModifier.d.ts +17 -10
  15. three/examples/jsm/nodes/Nodes.d.ts +21 -57
  16. three/examples/jsm/nodes/accessors/BitangentNode.d.ts +4 -22
  17. three/examples/jsm/nodes/accessors/BufferAttributeNode.d.ts +50 -0
  18. three/examples/jsm/nodes/accessors/BufferNode.d.ts +3 -4
  19. three/examples/jsm/nodes/accessors/CameraNode.d.ts +11 -20
  20. three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts +1 -1
  21. three/examples/jsm/nodes/accessors/MaterialNode.d.ts +4 -1
  22. three/examples/jsm/nodes/accessors/ModelNode.d.ts +3 -0
  23. three/examples/jsm/nodes/accessors/ModelViewProjectionNode.d.ts +1 -2
  24. three/examples/jsm/nodes/accessors/NormalNode.d.ts +9 -17
  25. three/examples/jsm/nodes/accessors/PositionNode.d.ts +6 -26
  26. three/examples/jsm/nodes/accessors/ReferenceNode.d.ts +3 -4
  27. three/examples/jsm/nodes/accessors/ReflectVectorNode.d.ts +3 -8
  28. three/examples/jsm/nodes/accessors/RendererReferenceNode.d.ts +2 -3
  29. three/examples/jsm/nodes/accessors/StorageBufferNode.d.ts +16 -4
  30. three/examples/jsm/nodes/accessors/StorageTextureNode.d.ts +40 -0
  31. three/examples/jsm/nodes/accessors/TangentNode.d.ts +8 -23
  32. three/examples/jsm/nodes/accessors/Texture3DNode.d.ts +16 -0
  33. three/examples/jsm/nodes/accessors/TextureNode.d.ts +1 -1
  34. three/examples/jsm/nodes/accessors/UVNode.d.ts +1 -8
  35. three/examples/jsm/nodes/accessors/UniformsNode.d.ts +0 -2
  36. three/examples/jsm/nodes/accessors/UserDataNode.d.ts +4 -3
  37. three/examples/jsm/nodes/code/CodeNode.d.ts +0 -1
  38. three/examples/jsm/nodes/code/ExpressionNode.d.ts +2 -3
  39. three/examples/jsm/nodes/core/AttributeNode.d.ts +11 -4
  40. three/examples/jsm/nodes/core/CacheNode.d.ts +4 -5
  41. three/examples/jsm/nodes/core/ConstNode.d.ts +1 -2
  42. three/examples/jsm/nodes/core/InputNode.d.ts +1 -2
  43. three/examples/jsm/nodes/core/LightingModel.d.ts +11 -0
  44. three/examples/jsm/nodes/core/Node.d.ts +102 -42
  45. three/examples/jsm/nodes/core/NodeAttribute.d.ts +7 -4
  46. three/examples/jsm/nodes/core/NodeBuilder.d.ts +30 -26
  47. three/examples/jsm/nodes/core/NodeCache.d.ts +48 -6
  48. three/examples/jsm/nodes/core/NodeFunction.d.ts +2 -2
  49. three/examples/jsm/nodes/core/NodeKeywords.d.ts +10 -7
  50. three/examples/jsm/nodes/core/NodeParser.d.ts +4 -4
  51. three/examples/jsm/nodes/core/NodeUniform.d.ts +8 -11
  52. three/examples/jsm/nodes/core/NodeVar.d.ts +5 -4
  53. three/examples/jsm/nodes/core/NodeVarying.d.ts +5 -6
  54. three/examples/jsm/nodes/core/PropertyNode.d.ts +4 -4
  55. three/examples/jsm/nodes/core/StackNode.d.ts +7 -1
  56. three/examples/jsm/nodes/core/StructTypeNode.d.ts +8 -0
  57. three/examples/jsm/nodes/core/TempNode.d.ts +1 -2
  58. three/examples/jsm/nodes/core/UniformGroup.d.ts +7 -0
  59. three/examples/jsm/nodes/core/UniformGroupNode.d.ts +21 -0
  60. three/examples/jsm/nodes/core/UniformNode.d.ts +16 -11
  61. three/examples/jsm/nodes/core/VarNode.d.ts +2 -0
  62. three/examples/jsm/nodes/core/VaryingNode.d.ts +4 -0
  63. three/examples/jsm/nodes/core/constants.d.ts +27 -79
  64. three/examples/jsm/nodes/display/DepthOfFieldNode.d.ts +30 -0
  65. three/examples/jsm/nodes/display/DotScreenNode.d.ts +32 -0
  66. three/examples/jsm/nodes/display/PassNode.d.ts +1 -1
  67. three/examples/jsm/nodes/display/RGBShiftNode.d.ts +24 -0
  68. three/examples/jsm/nodes/display/SobelOperatorNode.d.ts +17 -0
  69. three/examples/jsm/nodes/display/ViewportDepthNode.d.ts +4 -6
  70. three/examples/jsm/nodes/functions/BSDF/LTC.d.ts +9 -0
  71. three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts +2 -0
  72. three/examples/jsm/nodes/functions/ToonLightingModel.d.ts +4 -0
  73. three/examples/jsm/nodes/lighting/RectAreaLightNode.d.ts +10 -0
  74. three/examples/jsm/nodes/loaders/NodeLoader.d.ts +3 -3
  75. three/examples/jsm/nodes/loaders/NodeObjectLoader.d.ts +2 -3
  76. three/examples/jsm/nodes/materials/LineBasicNodeMaterial.d.ts +2 -0
  77. three/examples/jsm/nodes/materials/Materials.d.ts +3 -0
  78. three/examples/jsm/nodes/materials/MeshBasicNodeMaterial.d.ts +5 -1
  79. three/examples/jsm/nodes/materials/MeshMatcapNodeMaterial.d.ts +28 -0
  80. three/examples/jsm/nodes/materials/MeshNormalNodeMaterial.d.ts +2 -0
  81. three/examples/jsm/nodes/materials/MeshPhongNodeMaterial.d.ts +7 -4
  82. three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts +24 -17
  83. three/examples/jsm/nodes/materials/MeshSSSNodeMaterial.d.ts +6 -7
  84. three/examples/jsm/nodes/materials/MeshStandardNodeMaterial.d.ts +8 -5
  85. three/examples/jsm/nodes/materials/MeshToonNodeMaterial.d.ts +38 -0
  86. three/examples/jsm/nodes/materials/NodeMaterial.d.ts +41 -37
  87. three/examples/jsm/nodes/materials/PointsNodeMaterial.d.ts +1 -0
  88. three/examples/jsm/nodes/materials/ShadowNodeMaterial.d.ts +1 -0
  89. three/examples/jsm/nodes/materials/SpriteNodeMaterial.d.ts +3 -3
  90. three/examples/jsm/nodes/materials/VolumeNodeMaterial.d.ts +10 -0
  91. three/examples/jsm/nodes/materialx/lib/mx_hsv.d.ts +1 -0
  92. three/examples/jsm/nodes/materialx/lib/mx_noise.d.ts +230 -0
  93. three/examples/jsm/nodes/math/MathNode.d.ts +5 -1
  94. three/examples/jsm/nodes/shadernode/ShaderNode.d.ts +58 -36
  95. three/examples/jsm/nodes/utils/ConvertNode.d.ts +2 -3
  96. three/examples/jsm/nodes/utils/DiscardNode.d.ts +1 -0
  97. three/examples/jsm/nodes/utils/EquirectUVNode.d.ts +2 -2
  98. three/examples/jsm/nodes/utils/SplitNode.d.ts +1 -1
  99. three/examples/jsm/nodes/utils/TriplanarTexturesNode.d.ts +4 -5
  100. three/examples/jsm/objects/Sky.d.ts +18 -0
  101. three/examples/jsm/renderers/common/Animation.d.ts +14 -0
  102. three/examples/jsm/renderers/common/Attributes.d.ts +20 -0
  103. three/examples/jsm/renderers/common/Background.d.ts +22 -0
  104. three/examples/jsm/renderers/common/BindGroup.d.ts +9 -0
  105. three/examples/jsm/renderers/common/Binding.d.ts +8 -0
  106. three/examples/jsm/renderers/common/Bindings.d.ts +42 -0
  107. three/examples/jsm/renderers/common/Buffer.d.ts +11 -0
  108. three/examples/jsm/renderers/common/BufferUtils.d.ts +4 -0
  109. three/examples/jsm/renderers/common/ChainMap.d.ts +9 -0
  110. three/examples/jsm/renderers/common/ClippingContext.d.ts +18 -0
  111. three/examples/jsm/renderers/common/Color4.d.ts +6 -5
  112. three/examples/jsm/renderers/common/ComputePipeline.d.ts +8 -0
  113. three/examples/jsm/renderers/common/Constants.d.ts +9 -0
  114. three/examples/jsm/renderers/common/CubeRenderTarget.d.ts +7 -0
  115. three/examples/jsm/renderers/common/DataMap.d.ts +20 -0
  116. three/examples/jsm/renderers/common/Geometries.d.ts +28 -0
  117. three/examples/jsm/renderers/common/Info.d.ts +25 -13
  118. three/examples/jsm/renderers/common/Pipeline.d.ts +6 -0
  119. three/examples/jsm/renderers/common/Pipelines.d.ts +68 -0
  120. three/examples/jsm/renderers/common/PostProcessing.d.ts +2 -0
  121. three/examples/jsm/renderers/common/ProgrammableStage.d.ts +15 -0
  122. three/examples/jsm/renderers/common/RenderBundle.d.ts +8 -0
  123. three/examples/jsm/renderers/common/RenderBundles.d.ts +10 -0
  124. three/examples/jsm/renderers/common/RenderContext.d.ts +38 -0
  125. three/examples/jsm/renderers/common/RenderContexts.d.ts +13 -0
  126. three/examples/jsm/renderers/common/RenderList.d.ts +62 -0
  127. three/examples/jsm/renderers/common/RenderLists.d.ts +10 -0
  128. three/examples/jsm/renderers/common/RenderObject.d.ts +73 -0
  129. three/examples/jsm/renderers/common/RenderObjects.d.ts +59 -0
  130. three/examples/jsm/renderers/common/RenderPipeline.d.ts +8 -0
  131. three/examples/jsm/renderers/common/Renderer.d.ts +186 -208
  132. three/examples/jsm/renderers/common/SampledTexture.d.ts +27 -0
  133. three/examples/jsm/renderers/common/Sampler.d.ts +11 -0
  134. three/examples/jsm/renderers/common/StorageBufferAttribute.d.ts +7 -0
  135. three/examples/jsm/renderers/common/StorageInstancedBufferAttribute.d.ts +7 -0
  136. three/examples/jsm/renderers/common/Textures.d.ts +64 -0
  137. three/examples/jsm/renderers/common/Uniform.d.ts +40 -0
  138. three/examples/jsm/renderers/common/UniformBuffer.d.ts +6 -0
  139. three/examples/jsm/renderers/common/UniformsGroup.d.ts +32 -0
  140. three/examples/jsm/renderers/common/nodes/NodeBuilderState.d.ts +30 -0
  141. three/examples/jsm/renderers/common/nodes/NodeSampledTexture.d.ts +29 -0
  142. three/examples/jsm/renderers/common/nodes/NodeSampler.d.ts +12 -0
  143. three/examples/jsm/renderers/common/nodes/NodeUniform.d.ts +63 -0
  144. three/examples/jsm/renderers/common/nodes/NodeUniformsGroup.d.ts +11 -0
  145. three/examples/jsm/renderers/common/nodes/Nodes.d.ts +95 -0
  146. three/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +123 -0
  147. three/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.d.ts +6 -0
  148. three/examples/jsm/renderers/webgpu/nodes/WGSLNodeParser.d.ts +6 -0
  149. three/examples/jsm/renderers/webgpu/utils/WebGPUConstants.d.ts +328 -0
  150. three/examples/jsm/utils/SceneUtils.d.ts +9 -3
  151. three/package.json +4 -4
  152. three/src/Three.d.ts +1 -0
  153. three/src/animation/tracks/StringKeyframeTrack.d.ts +1 -2
  154. three/src/constants.d.ts +6 -0
  155. three/src/core/BufferGeometry.d.ts +19 -17
  156. three/src/core/InterleavedBuffer.d.ts +2 -0
  157. three/src/extras/ShapeUtils.d.ts +5 -8
  158. three/src/extras/TextureUtils.d.ts +42 -0
  159. three/src/lights/LightShadow.d.ts +5 -0
  160. three/src/loaders/LoaderUtils.d.ts +9 -6
  161. three/src/materials/Material.d.ts +21 -12
  162. three/src/math/Color.d.ts +1 -1
  163. three/src/math/Matrix3.d.ts +2 -0
  164. three/src/math/Matrix4.d.ts +2 -0
  165. three/src/math/Vector4.d.ts +6 -0
  166. three/src/objects/BatchedMesh.d.ts +66 -47
  167. three/src/objects/InstancedMesh.d.ts +3 -3
  168. three/src/renderers/WebGLRenderer.d.ts +41 -19
  169. three/src/renderers/shaders/UniformsLib.d.ts +3 -0
  170. three/src/renderers/webgl/WebGLPrograms.d.ts +1 -1
  171. three/src/renderers/webxr/WebXRDepthSensing.d.ts +3 -1
  172. three/src/renderers/webxr/WebXRManager.d.ts +33 -23
  173. three/src/textures/CompressedArrayTexture.d.ts +36 -19
  174. three/src/textures/CompressedTexture.d.ts +16 -8
  175. three/src/textures/DataArrayTexture.d.ts +37 -20
  176. three/src/textures/FramebufferTexture.d.ts +1 -1
  177. three/src/textures/Texture.d.ts +3 -1
  178. three/src/utils.d.ts +2 -0
  179. three/examples/jsm/renderers/webgl/nodes/SlotNode.d.ts +0 -17
  180. three/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.d.ts +0 -37
  181. three/examples/jsm/renderers/webgl/nodes/WebGLNodes.d.ts +0 -3
@@ -1,11 +1,13 @@
1
+ /// <reference types="webxr" />
1
2
  import {
3
+ Box2,
4
+ BufferAttribute,
2
5
  BufferGeometry,
3
6
  Camera,
4
7
  Color,
5
8
  ColorSpace,
6
- CoordinateSystem,
7
9
  FramebufferTexture,
8
- Group,
10
+ GeometryGroup,
9
11
  Material,
10
12
  Object3D,
11
13
  Plane,
@@ -20,259 +22,216 @@ import {
20
22
  import Node from "../../nodes/core/Node.js";
21
23
  import ComputeNode from "../../nodes/gpgpu/ComputeNode.js";
22
24
  import LightsNode from "../../nodes/lighting/LightsNode.js";
23
- import Color4 from "./../common/Color4.js";
25
+ import Animation from "./Animation.js";
26
+ import Attributes from "./Attributes.js";
24
27
  import Backend from "./Backend.js";
28
+ import Background from "./Background.js";
29
+ import Bindings from "./Bindings.js";
30
+ import Color4 from "./Color4.js";
31
+ import Geometries from "./Geometries.js";
25
32
  import Info from "./Info.js";
26
-
33
+ import Nodes from "./nodes/Nodes.js";
34
+ import Pipelines from "./Pipelines.js";
35
+ import RenderBundle from "./RenderBundle.js";
36
+ import RenderBundles from "./RenderBundles.js";
37
+ import RenderContext from "./RenderContext.js";
38
+ import RenderContexts from "./RenderContexts.js";
39
+ import RenderList, { Bundle, RenderItem } from "./RenderList.js";
40
+ import RenderLists from "./RenderLists.js";
41
+ import RenderObjects from "./RenderObjects.js";
42
+ import Textures from "./Textures.js";
27
43
  export interface RendererParameters {
28
44
  logarithmicDepthBuffer?: boolean | undefined;
29
45
  alpha?: boolean | undefined;
30
46
  }
31
-
32
- /**
33
- * Generic Renderer interface containing either a WebGL or WebGPU backend.
34
- */
35
- export default class Renderer {
36
- /**
37
- * @default true
38
- */
47
+ declare class Renderer {
39
48
  readonly isRenderer: true;
40
-
41
49
  domElement: HTMLCanvasElement;
42
-
43
- /**
44
- * The renderer backend; could be WebGLBackend or WebGPUBackend
45
- */
46
50
  backend: Backend;
47
-
48
- /**
49
- * @default true
50
- */
51
51
  autoClear: boolean;
52
-
53
- /**
54
- * @default true
55
- */
56
52
  autoClearColor: boolean;
57
-
58
- /**
59
- * @default true
60
- */
61
53
  autoClearDepth: boolean;
62
-
63
- /**
64
- * @default true
65
- */
66
54
  autoClearStencil: boolean;
67
-
68
- /**
69
- * @default SRGBColorSpace
70
- */
55
+ alpha: boolean;
56
+ logarithmicDepthBuffer: boolean;
71
57
  outputColorSpace: ColorSpace;
72
-
73
- /**
74
- * @default NoToneMapping
75
- */
76
58
  toneMapping: ToneMapping;
77
-
78
- /**
79
- * @default 1.0
80
- */
81
59
  toneMappingExposure: number;
82
-
83
- /**
84
- * @default true
85
- */
86
60
  sortObjects: boolean;
87
-
88
- /**
89
- * @default true
90
- */
91
61
  depth: boolean;
92
-
93
- /**
94
- * @default false
95
- */
96
62
  stencil: boolean;
97
-
98
63
  clippingPlanes: readonly Plane[];
99
-
100
- toneMappingNode: Node | null;
101
-
102
64
  info: Info;
103
-
104
- shadowMap: { enabled: boolean; type: ShadowMapType };
105
-
106
- xr: { enabled: boolean };
107
-
108
- localClippingEnabled?: boolean;
109
-
65
+ toneMappingNode: Node | null;
66
+ _pixelRatio: number;
67
+ _width: number;
68
+ _height: number;
69
+ _viewport: Vector4;
70
+ _scissor: Vector4;
71
+ _scissorTest: boolean;
72
+ _attributes: Attributes | null;
73
+ _geometries: Geometries | null;
74
+ _nodes: Nodes | null;
75
+ _animation: Animation | null;
76
+ _bindings: Bindings | null;
77
+ _objects: RenderObjects | null;
78
+ _pipelines: Pipelines | null;
79
+ _bundles: RenderBundles | null;
80
+ _renderLists: RenderLists | null;
81
+ _renderContexts: RenderContexts | null;
82
+ _textures: Textures | null;
83
+ _background: Background | null;
84
+ _currentRenderContext: RenderContext | null;
85
+ _opaqueSort: ((a: RenderItem, b: RenderItem) => number) | null;
86
+ _transparentSort: ((a: RenderItem, b: RenderItem) => number) | null;
87
+ _frameBufferTarget: RenderTarget | null;
88
+ _clearColor: Color4;
89
+ _clearDepth: number;
90
+ _clearStencil: number;
91
+ _renderTarget: RenderTarget | null;
92
+ _activeCubeFace: number;
93
+ _activeMipmapLevel: number;
94
+ _renderObjectFunction:
95
+ | ((
96
+ object: Object3D,
97
+ scene: Scene,
98
+ camera: Camera,
99
+ geometry: BufferGeometry,
100
+ material: Material,
101
+ group: GeometryGroup,
102
+ lightsNode: LightsNode,
103
+ ) => void)
104
+ | null;
105
+ _currentRenderObjectFunction:
106
+ | ((
107
+ object: Object3D,
108
+ scene: Scene,
109
+ camera: Camera,
110
+ geometry: BufferGeometry,
111
+ material: Material,
112
+ group: GeometryGroup,
113
+ lightsNode: LightsNode,
114
+ ) => void)
115
+ | null;
116
+ _currentRenderBundle: RenderBundle | null;
117
+ _handleObjectFunction: (
118
+ object: Object3D,
119
+ material: Material,
120
+ scene: Scene,
121
+ camera: Camera,
122
+ lightsNode: LightsNode,
123
+ group: GeometryGroup,
124
+ passId?: string,
125
+ ) => void;
126
+ _initialized: boolean;
127
+ _initPromise: Promise<void> | null;
128
+ _compilationPromises: Promise<void>[] | null;
129
+ shadowMap: {
130
+ enabled: boolean;
131
+ type: ShadowMapType | null;
132
+ };
133
+ xr: {
134
+ enabled: boolean;
135
+ };
136
+ debug: {
137
+ checkShaderErrors: boolean;
138
+ onShaderError:
139
+ | ((
140
+ gl: WebGL2RenderingContext,
141
+ programGPU: WebGLProgram,
142
+ glVertexShader: WebGLShader,
143
+ glFragmentShader: WebGLShader,
144
+ ) => void)
145
+ | null;
146
+ };
147
+ localClippingEnabled?: boolean | undefined;
110
148
  constructor(backend: Backend, parameters?: RendererParameters);
111
-
112
149
  init(): Promise<void>;
113
-
114
- get coordinateSystem(): CoordinateSystem;
115
-
150
+ get coordinateSystem(): import("three").CoordinateSystem;
116
151
  compileAsync(scene: Scene, camera: Camera, targetScene?: Scene | null): Promise<void>;
117
-
118
152
  renderAsync(scene: Scene, camera: Camera): Promise<void>;
119
-
120
- render(scene: Scene, camera: Camera): void;
121
-
153
+ _renderBundle(bundle: Bundle, sceneRef: Scene, lightsNode: LightsNode): void;
154
+ render(scene: Scene, camera: Camera): Promise<void> | undefined;
155
+ _getFrameBufferTarget(): RenderTarget<Texture> | null;
156
+ _renderScene(scene: Scene, camera: Camera, useFrameBufferTarget?: boolean): RenderContext;
122
157
  getMaxAnisotropy(): number;
123
-
124
158
  getActiveCubeFace(): number;
125
-
126
159
  getActiveMipmapLevel(): number;
127
-
128
- setAnimationLoop(callback: ((time: DOMHighResTimeStamp) => void) | null): Promise<void>;
129
-
130
- /**
131
- * Sets the pixel ratio of the Renderer.
132
- */
133
- setPixelRatio(value?: number): void;
134
-
135
- /**
136
- * Sets the width and height of the output canvas and optionally updates the CSS style on the DOM element.
137
- */
138
- setSize(width: number, height: number, updateStyle?: boolean): void;
139
-
140
- /**
141
- * Gets the Rendering Context of the renderer.
142
- */
143
- getContext(): RenderingContext;
144
-
145
- /**
146
- * Gets the current pixel ratio of the renderer.
147
- */
160
+ setAnimationLoop(callback: ((time: DOMHighResTimeStamp, frame?: XRFrame) => void) | null): Promise<void>;
161
+ getArrayBufferAsync(attribute: BufferAttribute): Promise<ArrayBuffer>;
162
+ getContext(): void;
148
163
  getPixelRatio(): number;
149
-
150
164
  getDrawingBufferSize(target: Vector2): Vector2;
151
-
152
165
  getSize(target: Vector2): Vector2;
153
-
166
+ setPixelRatio(value?: number): void;
154
167
  setDrawingBufferSize(width: number, height: number, pixelRatio: number): void;
155
-
156
- /**
157
- * Sets the custom opaque sort function for the RenderLists. Pass null to use the default painterSortStable function.
158
- */
159
- setOpaqueSort(method: (a: unknown, b: unknown) => number): void;
160
-
161
- /**
162
- * Sets the custom transparent sort function for the RenderLists. Pass null to use the default reversePainterSortStable function.
163
- */
164
- setTransparentSort(method: (a: unknown, b: unknown) => number): void;
165
-
166
- /**
167
- * Copies the scissor area into target.
168
- */
168
+ setSize(width: number, height: number, updateStyle?: boolean): void;
169
+ setOpaqueSort(method: ((a: RenderItem, b: RenderItem) => number) | null): void;
170
+ setTransparentSort(method: ((a: RenderItem, b: RenderItem) => number) | null): void;
169
171
  getScissor(target: Vector4): Vector4;
170
-
171
- /**
172
- * Sets the scissor area from (x, y) to (x + width, y + height).
173
- */
172
+ setScissor(x: Vector4): void;
174
173
  setScissor(x: number, y: number, width: number, height: number): void;
175
-
176
- /**
177
- * Returns true if scissor test is enabled; returns false otherwise.
178
- */
179
174
  getScissorTest(): boolean;
180
-
181
- /**
182
- * Enable the scissor test. When this is enabled, only the pixels within the defined scissor area will be affected by further renderer actions.
183
- */
184
175
  setScissorTest(boolean: boolean): void;
185
-
186
- /**
187
- * Copies the viewport into target.
188
- */
189
176
  getViewport(target: Vector4): Vector4;
190
-
191
- /**
192
- * Sets the viewport to render from (x, y) to (x + width, y + height).
193
- * (x, y) is the lower-left corner of the region.
194
- */
177
+ setViewport(x: Vector4): void;
195
178
  setViewport(x: number, y: number, width: number, height: number, minDepth?: number, maxDepth?: number): void;
196
-
197
- /**
198
- * Returns a Color4 instance with the current clear color.
199
- */
200
179
  getClearColor(target: Color4): Color4;
201
-
202
- /**
203
- * Sets the clear color, using color for the color and alpha for the opacity.
204
- */
205
180
  setClearColor(color: Color, alpha?: number): void;
206
-
207
- /**
208
- * Returns a float with the current clear alpha. Ranges from 0 to 1.
209
- */
210
181
  getClearAlpha(): number;
211
-
212
182
  setClearAlpha(alpha: number): void;
213
-
214
183
  getClearDepth(): number;
215
-
216
184
  setClearDepth(depth: number): void;
217
-
218
185
  getClearStencil(): number;
219
-
220
186
  setClearStencil(stencil: number): void;
221
-
222
- isOccluded(object: Object3D): boolean;
223
-
224
- /**
225
- * Tells the renderer to clear its color, depth or stencil drawing buffer(s).
226
- * Arguments default to true
227
- */
228
- clear(color?: boolean, depth?: boolean, stencil?: boolean): void;
229
-
230
- /**
231
- * Clear the color buffer. Equivalent to calling .clear( true, false, false ).
232
- */
233
- clearColor(): void;
234
-
235
- /**
236
- * Clear the depth buffer. Equivalent to calling .clear( false, true, false ).
237
- */
238
- clearDepth(): void;
239
-
240
- /**
241
- * Clear the stencil buffer. Equivalent to calling .clear( false, false, true ).
242
- */
243
- clearStencil(): void;
244
-
245
- /**
246
- * Tells the renderer to clear its color, depth or stencil drawing buffer(s).
247
- * Arguments default to true
248
- */
187
+ isOccluded(object: Object3D): boolean | null;
188
+ clear(color?: boolean, depth?: boolean, stencil?: boolean): Promise<void> | undefined;
189
+ clearColor(): Promise<void> | undefined;
190
+ clearDepth(): Promise<void> | undefined;
191
+ clearStencil(): Promise<void> | undefined;
249
192
  clearAsync(color?: boolean, depth?: boolean, stencil?: boolean): Promise<void>;
250
-
193
+ clearColorAsync(): Promise<void>;
194
+ clearDepthAsync(): Promise<void>;
195
+ clearStencilAsync(): Promise<void>;
251
196
  get currentColorSpace(): ColorSpace;
252
-
253
197
  dispose(): void;
254
-
255
198
  setRenderTarget(renderTarget: RenderTarget | null, activeCubeFace?: number, activeMipmapLevel?: number): void;
256
-
257
- getRenderTarget(): RenderTarget | null;
258
-
259
- setRenderObjectFunction(renderObjectFunction: () => {}): void;
260
-
261
- getRenderObjectFunction(): () => {};
262
-
263
- /**
264
- * Runs a compute pipeline
265
- */
199
+ getRenderTarget(): RenderTarget<Texture> | null;
200
+ setRenderObjectFunction(
201
+ renderObjectFunction:
202
+ | ((
203
+ object: Object3D,
204
+ scene: Scene,
205
+ camera: Camera,
206
+ geometry: BufferGeometry,
207
+ material: Material,
208
+ group: GeometryGroup,
209
+ lightsNode: LightsNode,
210
+ ) => void)
211
+ | null,
212
+ ): void;
213
+ getRenderObjectFunction():
214
+ | ((
215
+ object: Object3D<import("three").Object3DEventMap>,
216
+ scene: Scene,
217
+ camera: Camera,
218
+ geometry: BufferGeometry<import("three").NormalBufferAttributes>,
219
+ material: Material,
220
+ group: GeometryGroup,
221
+ lightsNode: LightsNode,
222
+ ) => void)
223
+ | null;
266
224
  computeAsync(computeNodes: ComputeNode | ComputeNode[]): Promise<void>;
267
-
268
- hasFeatureAsync(name: string): Promise<boolean>;
269
-
270
- hasFeature(name: string): boolean;
271
-
225
+ hasFeatureAsync(name: string): Promise<void>;
226
+ hasFeature(name: string): false | void;
272
227
  copyFramebufferToTexture(framebufferTexture: FramebufferTexture): void;
273
-
274
- copyTextureToTexture(position: Vector2, srcTexture: Texture, dstTexture: Texture, level?: number): void;
275
-
228
+ copyTextureToTexture(
229
+ srcTexture: Texture,
230
+ dstTexture: Texture,
231
+ srcRegion?: Box2 | null,
232
+ dstPosition?: Vector2 | null,
233
+ level?: number,
234
+ ): void;
276
235
  readRenderTargetPixelsAsync(
277
236
  renderTarget: RenderTarget,
278
237
  x: number,
@@ -280,19 +239,38 @@ export default class Renderer {
280
239
  width: number,
281
240
  height: number,
282
241
  index?: number,
283
- ): Promise<Float32Array | Uint16Array | Uint8Array | Int8Array | Int16Array | Uint32Array | Int32Array>;
284
-
242
+ ): Promise<import("three").TypedArray>;
243
+ _projectObject(object: Object3D, camera: Camera, groupOrder: number, renderList: RenderList): void;
244
+ _renderBundles(bundles: Bundle[], sceneRef: Scene, lightsNode: LightsNode): void;
245
+ _renderObjects(renderList: RenderItem[], camera: Camera, scene: Scene, lightsNode: LightsNode): void;
285
246
  renderObject(
286
247
  object: Object3D,
287
248
  scene: Scene,
288
249
  camera: Camera,
289
250
  geometry: BufferGeometry,
290
251
  material: Material,
291
- group: Group,
252
+ group: GeometryGroup,
253
+ lightsNode: LightsNode,
254
+ ): void;
255
+ _renderObjectDirect(
256
+ object: Object3D,
257
+ material: Material,
258
+ scene: Scene,
259
+ camera: Camera,
260
+ lightsNode: LightsNode,
261
+ group: GeometryGroup,
262
+ passId?: string,
263
+ ): void;
264
+ _createObjectPipeline(
265
+ object: Object3D,
266
+ material: Material,
267
+ scene: Scene,
268
+ camera: Camera,
292
269
  lightsNode: LightsNode,
270
+ group: GeometryGroup,
271
+ passId?: string,
293
272
  ): void;
294
-
295
273
  get compute(): (computeNodes: ComputeNode | ComputeNode[]) => Promise<void>;
296
-
297
274
  get compile(): (scene: Scene, camera: Camera, targetScene?: Scene | null) => Promise<void>;
298
275
  }
276
+ export default Renderer;
@@ -0,0 +1,27 @@
1
+ import { Texture } from "three";
2
+ import Binding from "./Binding.js";
3
+
4
+ declare class SampledTexture extends Binding {
5
+ id: number;
6
+ texture: Texture | null;
7
+ version: number;
8
+ store: boolean;
9
+ readonly isSampledTexture: true;
10
+ constructor(name: string, texture: Texture | null);
11
+ get needsBindingsUpdate(): boolean;
12
+ update(): boolean;
13
+ }
14
+
15
+ declare class SampledArrayTexture extends SampledTexture {
16
+ readonly isSampledArrayTexture: true;
17
+ }
18
+
19
+ declare class Sampled3DTexture extends SampledTexture {
20
+ readonly isSampled3DTexture: true;
21
+ }
22
+
23
+ declare class SampledCubeTexture extends SampledTexture {
24
+ readonly isSampledCubeTexture: true;
25
+ }
26
+
27
+ export { Sampled3DTexture, SampledArrayTexture, SampledCubeTexture, SampledTexture };
@@ -0,0 +1,11 @@
1
+ import TextureNode from "../../nodes/accessors/TextureNode.js";
2
+ import Binding from "./Binding.js";
3
+
4
+ declare class Sampler extends Binding {
5
+ texture: TextureNode | null;
6
+ version: number;
7
+ readonly isSampler: true;
8
+ constructor(name: string, texture: TextureNode | null);
9
+ }
10
+
11
+ export default Sampler;
@@ -0,0 +1,7 @@
1
+ import { BufferAttribute, TypedArray } from "three";
2
+
3
+ export default class StorageBufferAttribute extends BufferAttribute {
4
+ readonly isStorageBufferAttribute: true;
5
+
6
+ constructor(array: TypedArray, itemSize: number);
7
+ }
@@ -0,0 +1,7 @@
1
+ import { InstancedBufferAttribute, TypedArray } from "three";
2
+
3
+ export default class StorageInstancedBufferAttribute extends InstancedBufferAttribute {
4
+ readonly isStorageInstancedBufferAttribute: true;
5
+
6
+ constructor(array: TypedArray | number, itemSize: number);
7
+ }
@@ -0,0 +1,64 @@
1
+ import { DepthTexture, RenderTarget, Texture, Vector3 } from "three";
2
+ import Backend from "./Backend.js";
3
+ import DataMap from "./DataMap.js";
4
+ import Info from "./Info.js";
5
+ import Renderer from "./Renderer.js";
6
+ type SizeVector3Unitialized = Vector3 & {
7
+ width?: number;
8
+ height?: number;
9
+ depth?: number;
10
+ };
11
+ type SizeVector3 = Vector3 & {
12
+ width: number;
13
+ height: number;
14
+ depth: number;
15
+ };
16
+ interface RenderTargetData {
17
+ depthTextureMips?: {
18
+ [activeMipmapLevel: number]: DepthTexture;
19
+ };
20
+ width?: number;
21
+ height?: number;
22
+ textures?: Texture[];
23
+ depthTexture?: DepthTexture;
24
+ depth?: boolean;
25
+ stencil?: boolean;
26
+ renderTarget?: RenderTarget;
27
+ sampleCount?: number;
28
+ initialized?: boolean;
29
+ }
30
+ interface TextureData {
31
+ initialized?: boolean;
32
+ version?: number;
33
+ isDefaultTexture?: boolean;
34
+ }
35
+ interface TextureOptions {
36
+ width?: number;
37
+ height?: number;
38
+ depth?: number;
39
+ needsMipmaps?: boolean;
40
+ levels?: number;
41
+ }
42
+ declare class Textures extends DataMap<{
43
+ renderTarget: {
44
+ key: RenderTarget;
45
+ value: RenderTargetData;
46
+ };
47
+ texture: {
48
+ key: Texture;
49
+ value: TextureData;
50
+ };
51
+ }> {
52
+ renderer: Renderer;
53
+ backend: Backend;
54
+ info: Info;
55
+ constructor(renderer: Renderer, backend: Backend, info: Info);
56
+ updateRenderTarget(renderTarget: RenderTarget, activeMipmapLevel?: number): void;
57
+ updateTexture(texture: Texture, options?: TextureOptions): void;
58
+ getSize(texture: Texture, target?: SizeVector3Unitialized): SizeVector3;
59
+ getMipLevels(texture: Texture, width: number, height: number): number;
60
+ needsMipmaps(texture: Texture): boolean;
61
+ isEnvironmentTexture(texture: Texture): boolean;
62
+ _destroyTexture(texture: Texture): void;
63
+ }
64
+ export default Textures;
@@ -0,0 +1,40 @@
1
+ import { Color, Matrix3, Matrix4, Vector2, Vector3, Vector4 } from "three";
2
+ declare class Uniform<TValue> {
3
+ name: string;
4
+ value: TValue;
5
+ boundary: number;
6
+ itemSize: number;
7
+ offset: number;
8
+ constructor(name: string, value: TValue);
9
+ setValue(value: TValue): void;
10
+ getValue(): TValue;
11
+ }
12
+ declare class NumberUniform extends Uniform<number> {
13
+ readonly isNumberUniform: true;
14
+ constructor(name: string, value?: number);
15
+ }
16
+ declare class Vector2Uniform extends Uniform<Vector2> {
17
+ readonly isVector2Uniform: true;
18
+ constructor(name: string, value?: Vector2);
19
+ }
20
+ declare class Vector3Uniform extends Uniform<Vector3> {
21
+ readonly isVector3Uniform: true;
22
+ constructor(name: string, value?: Vector3);
23
+ }
24
+ declare class Vector4Uniform extends Uniform<Vector4> {
25
+ readonly isVector4Uniform: true;
26
+ constructor(name: string, value?: Vector4);
27
+ }
28
+ declare class ColorUniform extends Uniform<Color> {
29
+ readonly isColorUniform: true;
30
+ constructor(name: string, value?: Color);
31
+ }
32
+ declare class Matrix3Uniform extends Uniform<Matrix3> {
33
+ readonly isMatrix3Uniform: true;
34
+ constructor(name: string, value?: Matrix3);
35
+ }
36
+ declare class Matrix4Uniform extends Uniform<Matrix4> {
37
+ readonly isMatrix4Uniform: true;
38
+ constructor(name: string, value?: Matrix4);
39
+ }
40
+ export { ColorUniform, Matrix3Uniform, Matrix4Uniform, NumberUniform, Vector2Uniform, Vector3Uniform, Vector4Uniform };
@@ -0,0 +1,6 @@
1
+ import Buffer from "./Buffer.js";
2
+ declare class UniformBuffer extends Buffer {
3
+ readonly isUniformBuffer: true;
4
+ constructor(name?: string, buffer?: null);
5
+ }
6
+ export default UniformBuffer;
@@ -0,0 +1,32 @@
1
+ import {
2
+ ColorNodeUniform,
3
+ Matrix3NodeUniform,
4
+ Matrix4NodeUniform,
5
+ NodeUniformGPU,
6
+ NumberNodeUniform,
7
+ Vector2NodeUniform,
8
+ Vector3NodeUniform,
9
+ Vector4NodeUniform,
10
+ } from "./nodes/NodeUniform.js";
11
+ import UniformBuffer from "./UniformBuffer.js";
12
+ declare class UniformsGroup extends UniformBuffer {
13
+ readonly isUniformsGroup: true;
14
+ _values: number[] | null;
15
+ uniforms: NodeUniformGPU[];
16
+ constructor(name?: string);
17
+ addUniform(uniform: NodeUniformGPU): this;
18
+ removeUniform(uniform: NodeUniformGPU): this;
19
+ get values(): number[];
20
+ get buffer(): Float32Array;
21
+ get byteLength(): number;
22
+ update(): boolean;
23
+ updateByType(uniform: NodeUniformGPU): boolean | undefined;
24
+ updateNumber(uniform: NumberNodeUniform): boolean;
25
+ updateVector2(uniform: Vector2NodeUniform): boolean;
26
+ updateVector3(uniform: Vector3NodeUniform): boolean;
27
+ updateVector4(uniform: Vector4NodeUniform): boolean;
28
+ updateColor(uniform: ColorNodeUniform): boolean;
29
+ updateMatrix3(uniform: Matrix3NodeUniform): boolean;
30
+ updateMatrix4(uniform: Matrix4NodeUniform): boolean;
31
+ }
32
+ export default UniformsGroup;