@types/three 0.164.0 → 0.165.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 (133) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/controls/TransformControls.d.ts +8 -6
  3. three/examples/jsm/exporters/USDZExporter.d.ts +4 -2
  4. three/examples/jsm/geometries/TextGeometry.d.ts +1 -1
  5. three/examples/jsm/loaders/FontLoader.d.ts +1 -1
  6. three/examples/jsm/loaders/GLTFLoader.d.ts +9 -6
  7. three/examples/jsm/loaders/LDrawLoader.d.ts +1 -1
  8. three/examples/jsm/modifiers/EdgeSplitModifier.d.ts +17 -10
  9. three/examples/jsm/nodes/Nodes.d.ts +11 -54
  10. three/examples/jsm/nodes/accessors/BitangentNode.d.ts +4 -22
  11. three/examples/jsm/nodes/accessors/BufferAttributeNode.d.ts +49 -0
  12. three/examples/jsm/nodes/accessors/BufferNode.d.ts +3 -4
  13. three/examples/jsm/nodes/accessors/CameraNode.d.ts +11 -20
  14. three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts +1 -1
  15. three/examples/jsm/nodes/accessors/MaterialNode.d.ts +4 -1
  16. three/examples/jsm/nodes/accessors/ModelNode.d.ts +3 -0
  17. three/examples/jsm/nodes/accessors/ModelViewProjectionNode.d.ts +1 -2
  18. three/examples/jsm/nodes/accessors/NormalNode.d.ts +9 -17
  19. three/examples/jsm/nodes/accessors/PositionNode.d.ts +6 -26
  20. three/examples/jsm/nodes/accessors/ReferenceNode.d.ts +3 -4
  21. three/examples/jsm/nodes/accessors/ReflectVectorNode.d.ts +3 -8
  22. three/examples/jsm/nodes/accessors/RendererReferenceNode.d.ts +2 -3
  23. three/examples/jsm/nodes/accessors/StorageBufferNode.d.ts +9 -4
  24. three/examples/jsm/nodes/accessors/TangentNode.d.ts +8 -23
  25. three/examples/jsm/nodes/accessors/Texture3DNode.d.ts +16 -0
  26. three/examples/jsm/nodes/accessors/TextureNode.d.ts +1 -1
  27. three/examples/jsm/nodes/accessors/UVNode.d.ts +1 -8
  28. three/examples/jsm/nodes/accessors/UniformsNode.d.ts +0 -2
  29. three/examples/jsm/nodes/accessors/UserDataNode.d.ts +4 -3
  30. three/examples/jsm/nodes/code/CodeNode.d.ts +0 -1
  31. three/examples/jsm/nodes/code/ExpressionNode.d.ts +2 -3
  32. three/examples/jsm/nodes/core/AttributeNode.d.ts +11 -4
  33. three/examples/jsm/nodes/core/ConstNode.d.ts +1 -2
  34. three/examples/jsm/nodes/core/InputNode.d.ts +1 -2
  35. three/examples/jsm/nodes/core/Node.d.ts +99 -42
  36. three/examples/jsm/nodes/core/NodeAttribute.d.ts +7 -4
  37. three/examples/jsm/nodes/core/NodeBuilder.d.ts +24 -24
  38. three/examples/jsm/nodes/core/NodeCache.d.ts +38 -4
  39. three/examples/jsm/nodes/core/NodeKeywords.d.ts +10 -7
  40. three/examples/jsm/nodes/core/NodeParser.d.ts +4 -4
  41. three/examples/jsm/nodes/core/NodeUniform.d.ts +8 -11
  42. three/examples/jsm/nodes/core/NodeVar.d.ts +5 -4
  43. three/examples/jsm/nodes/core/NodeVarying.d.ts +5 -6
  44. three/examples/jsm/nodes/core/PropertyNode.d.ts +4 -4
  45. three/examples/jsm/nodes/core/StackNode.d.ts +7 -1
  46. three/examples/jsm/nodes/core/StructTypeNode.d.ts +8 -0
  47. three/examples/jsm/nodes/core/TempNode.d.ts +1 -2
  48. three/examples/jsm/nodes/core/UniformGroup.d.ts +7 -0
  49. three/examples/jsm/nodes/core/UniformGroupNode.d.ts +21 -0
  50. three/examples/jsm/nodes/core/UniformNode.d.ts +14 -11
  51. three/examples/jsm/nodes/core/VaryingNode.d.ts +4 -0
  52. three/examples/jsm/nodes/core/constants.d.ts +27 -79
  53. three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts +2 -0
  54. three/examples/jsm/nodes/functions/ToonLightingModel.d.ts +4 -0
  55. three/examples/jsm/nodes/loaders/NodeLoader.d.ts +3 -3
  56. three/examples/jsm/nodes/loaders/NodeObjectLoader.d.ts +2 -3
  57. three/examples/jsm/nodes/materials/LineBasicNodeMaterial.d.ts +2 -0
  58. three/examples/jsm/nodes/materials/Materials.d.ts +3 -0
  59. three/examples/jsm/nodes/materials/MeshBasicNodeMaterial.d.ts +5 -1
  60. three/examples/jsm/nodes/materials/MeshMatcapNodeMaterial.d.ts +28 -0
  61. three/examples/jsm/nodes/materials/MeshNormalNodeMaterial.d.ts +2 -0
  62. three/examples/jsm/nodes/materials/MeshPhongNodeMaterial.d.ts +5 -1
  63. three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts +8 -0
  64. three/examples/jsm/nodes/materials/MeshStandardNodeMaterial.d.ts +5 -1
  65. three/examples/jsm/nodes/materials/MeshToonNodeMaterial.d.ts +38 -0
  66. three/examples/jsm/nodes/materials/NodeMaterial.d.ts +9 -4
  67. three/examples/jsm/nodes/materials/PointsNodeMaterial.d.ts +1 -0
  68. three/examples/jsm/nodes/materials/ShadowNodeMaterial.d.ts +1 -0
  69. three/examples/jsm/nodes/materials/SpriteNodeMaterial.d.ts +1 -0
  70. three/examples/jsm/nodes/materials/VolumeNodeMaterial.d.ts +10 -0
  71. three/examples/jsm/nodes/shadernode/ShaderNode.d.ts +58 -36
  72. three/examples/jsm/nodes/utils/ConvertNode.d.ts +2 -3
  73. three/examples/jsm/nodes/utils/EquirectUVNode.d.ts +2 -2
  74. three/examples/jsm/nodes/utils/SplitNode.d.ts +1 -1
  75. three/examples/jsm/nodes/utils/TriplanarTexturesNode.d.ts +4 -5
  76. three/examples/jsm/objects/Sky.d.ts +18 -0
  77. three/examples/jsm/renderers/common/Animation.d.ts +14 -0
  78. three/examples/jsm/renderers/common/Attributes.d.ts +20 -0
  79. three/examples/jsm/renderers/common/Background.d.ts +22 -0
  80. three/examples/jsm/renderers/common/Binding.d.ts +8 -0
  81. three/examples/jsm/renderers/common/Bindings.d.ts +45 -0
  82. three/examples/jsm/renderers/common/Buffer.d.ts +11 -0
  83. three/examples/jsm/renderers/common/BufferUtils.d.ts +4 -0
  84. three/examples/jsm/renderers/common/ChainMap.d.ts +9 -0
  85. three/examples/jsm/renderers/common/ClippingContext.d.ts +18 -0
  86. three/examples/jsm/renderers/common/Color4.d.ts +6 -5
  87. three/examples/jsm/renderers/common/ComputePipeline.d.ts +8 -0
  88. three/examples/jsm/renderers/common/Constants.d.ts +9 -0
  89. three/examples/jsm/renderers/common/CubeRenderTarget.d.ts +7 -0
  90. three/examples/jsm/renderers/common/DataMap.d.ts +20 -0
  91. three/examples/jsm/renderers/common/Geometries.d.ts +28 -0
  92. three/examples/jsm/renderers/common/Info.d.ts +20 -13
  93. three/examples/jsm/renderers/common/Pipeline.d.ts +6 -0
  94. three/examples/jsm/renderers/common/Pipelines.d.ts +68 -0
  95. three/examples/jsm/renderers/common/ProgrammableStage.d.ts +15 -0
  96. three/examples/jsm/renderers/common/RenderBundle.d.ts +8 -0
  97. three/examples/jsm/renderers/common/RenderBundles.d.ts +10 -0
  98. three/examples/jsm/renderers/common/RenderContext.d.ts +38 -0
  99. three/examples/jsm/renderers/common/RenderContexts.d.ts +13 -0
  100. three/examples/jsm/renderers/common/RenderList.d.ts +62 -0
  101. three/examples/jsm/renderers/common/RenderLists.d.ts +10 -0
  102. three/examples/jsm/renderers/common/RenderObject.d.ts +73 -0
  103. three/examples/jsm/renderers/common/RenderObjects.d.ts +59 -0
  104. three/examples/jsm/renderers/common/RenderPipeline.d.ts +8 -0
  105. three/examples/jsm/renderers/common/Renderer.d.ts +175 -208
  106. three/examples/jsm/renderers/common/StorageBufferAttribute.d.ts +7 -0
  107. three/examples/jsm/renderers/common/StorageInstancedBufferAttribute.d.ts +7 -0
  108. three/examples/jsm/renderers/common/Textures.d.ts +64 -0
  109. three/examples/jsm/renderers/common/Uniform.d.ts +40 -0
  110. three/examples/jsm/renderers/common/UniformBuffer.d.ts +6 -0
  111. three/examples/jsm/renderers/common/UniformsGroup.d.ts +30 -0
  112. three/examples/jsm/renderers/common/nodes/NodeBuilderState.d.ts +26 -0
  113. three/examples/jsm/renderers/common/nodes/NodeUniform.d.ts +63 -0
  114. three/examples/jsm/renderers/common/nodes/NodeUniformsGroup.d.ts +12 -0
  115. three/examples/jsm/renderers/common/nodes/Nodes.d.ts +94 -0
  116. three/examples/jsm/utils/SceneUtils.d.ts +9 -3
  117. three/package.json +2 -2
  118. three/src/animation/tracks/StringKeyframeTrack.d.ts +1 -2
  119. three/src/core/BufferGeometry.d.ts +19 -17
  120. three/src/core/InterleavedBuffer.d.ts +2 -0
  121. three/src/loaders/LoaderUtils.d.ts +9 -6
  122. three/src/math/Color.d.ts +1 -1
  123. three/src/math/Matrix3.d.ts +2 -0
  124. three/src/math/Matrix4.d.ts +2 -0
  125. three/src/objects/BatchedMesh.d.ts +15 -0
  126. three/src/objects/InstancedMesh.d.ts +3 -3
  127. three/src/renderers/WebGLRenderer.d.ts +41 -19
  128. three/src/renderers/webgl/WebGLPrograms.d.ts +1 -1
  129. three/src/renderers/webxr/WebXRDepthSensing.d.ts +1 -1
  130. three/src/textures/CompressedArrayTexture.d.ts +32 -15
  131. three/src/textures/DataArrayTexture.d.ts +37 -20
  132. three/src/textures/FramebufferTexture.d.ts +1 -1
  133. three/src/utils.d.ts +2 -0
@@ -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,205 @@ 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
+ localClippingEnabled?: boolean | undefined;
110
137
  constructor(backend: Backend, parameters?: RendererParameters);
111
-
112
138
  init(): Promise<void>;
113
-
114
- get coordinateSystem(): CoordinateSystem;
115
-
139
+ get coordinateSystem(): import("three").CoordinateSystem;
116
140
  compileAsync(scene: Scene, camera: Camera, targetScene?: Scene | null): Promise<void>;
117
-
118
141
  renderAsync(scene: Scene, camera: Camera): Promise<void>;
119
-
120
- render(scene: Scene, camera: Camera): void;
121
-
142
+ _renderBundle(bundle: Bundle, sceneRef: Scene, lightsNode: LightsNode): void;
143
+ render(scene: Scene, camera: Camera): Promise<void> | undefined;
144
+ _getFrameBufferTarget(): RenderTarget<Texture> | null;
145
+ _renderScene(scene: Scene, camera: Camera, useFrameBufferTarget?: boolean): RenderContext;
122
146
  getMaxAnisotropy(): number;
123
-
124
147
  getActiveCubeFace(): number;
125
-
126
148
  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
- */
149
+ setAnimationLoop(callback: ((time: DOMHighResTimeStamp, frame?: XRFrame) => void) | null): Promise<void>;
150
+ getArrayBufferAsync(attribute: BufferAttribute): Promise<ArrayBuffer>;
151
+ getContext(): void;
148
152
  getPixelRatio(): number;
149
-
150
153
  getDrawingBufferSize(target: Vector2): Vector2;
151
-
152
154
  getSize(target: Vector2): Vector2;
153
-
155
+ setPixelRatio(value?: number): void;
154
156
  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
- */
157
+ setSize(width: number, height: number, updateStyle?: boolean): void;
158
+ setOpaqueSort(method: ((a: RenderItem, b: RenderItem) => number) | null): void;
159
+ setTransparentSort(method: ((a: RenderItem, b: RenderItem) => number) | null): void;
169
160
  getScissor(target: Vector4): Vector4;
170
-
171
- /**
172
- * Sets the scissor area from (x, y) to (x + width, y + height).
173
- */
161
+ setScissor(x: Vector4): void;
174
162
  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
163
  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
164
  setScissorTest(boolean: boolean): void;
185
-
186
- /**
187
- * Copies the viewport into target.
188
- */
189
165
  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
- */
166
+ setViewport(x: Vector4): void;
195
167
  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
168
  getClearColor(target: Color4): Color4;
201
-
202
- /**
203
- * Sets the clear color, using color for the color and alpha for the opacity.
204
- */
205
169
  setClearColor(color: Color, alpha?: number): void;
206
-
207
- /**
208
- * Returns a float with the current clear alpha. Ranges from 0 to 1.
209
- */
210
170
  getClearAlpha(): number;
211
-
212
171
  setClearAlpha(alpha: number): void;
213
-
214
172
  getClearDepth(): number;
215
-
216
173
  setClearDepth(depth: number): void;
217
-
218
174
  getClearStencil(): number;
219
-
220
175
  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
- */
176
+ isOccluded(object: Object3D): boolean | null;
177
+ clear(color?: boolean, depth?: boolean, stencil?: boolean): Promise<void> | undefined;
178
+ clearColor(): Promise<void> | undefined;
179
+ clearDepth(): Promise<void> | undefined;
180
+ clearStencil(): Promise<void> | undefined;
249
181
  clearAsync(color?: boolean, depth?: boolean, stencil?: boolean): Promise<void>;
250
-
182
+ clearColorAsync(): Promise<void>;
183
+ clearDepthAsync(): Promise<void>;
184
+ clearStencilAsync(): Promise<void>;
251
185
  get currentColorSpace(): ColorSpace;
252
-
253
186
  dispose(): void;
254
-
255
187
  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
- */
188
+ getRenderTarget(): RenderTarget<Texture> | null;
189
+ setRenderObjectFunction(
190
+ renderObjectFunction:
191
+ | ((
192
+ object: Object3D,
193
+ scene: Scene,
194
+ camera: Camera,
195
+ geometry: BufferGeometry,
196
+ material: Material,
197
+ group: GeometryGroup,
198
+ lightsNode: LightsNode,
199
+ ) => void)
200
+ | null,
201
+ ): void;
202
+ getRenderObjectFunction():
203
+ | ((
204
+ object: Object3D<import("three").Object3DEventMap>,
205
+ scene: Scene,
206
+ camera: Camera,
207
+ geometry: BufferGeometry<import("three").NormalBufferAttributes>,
208
+ material: Material,
209
+ group: GeometryGroup,
210
+ lightsNode: LightsNode,
211
+ ) => void)
212
+ | null;
266
213
  computeAsync(computeNodes: ComputeNode | ComputeNode[]): Promise<void>;
267
-
268
- hasFeatureAsync(name: string): Promise<boolean>;
269
-
270
- hasFeature(name: string): boolean;
271
-
214
+ hasFeatureAsync(name: string): Promise<void>;
215
+ hasFeature(name: string): false | void;
272
216
  copyFramebufferToTexture(framebufferTexture: FramebufferTexture): void;
273
-
274
- copyTextureToTexture(position: Vector2, srcTexture: Texture, dstTexture: Texture, level?: number): void;
275
-
217
+ copyTextureToTexture(
218
+ srcTexture: Texture,
219
+ dstTexture: Texture,
220
+ srcRegion?: Box2 | null,
221
+ dstPosition?: Vector2 | null,
222
+ level?: number,
223
+ ): void;
276
224
  readRenderTargetPixelsAsync(
277
225
  renderTarget: RenderTarget,
278
226
  x: number,
@@ -280,19 +228,38 @@ export default class Renderer {
280
228
  width: number,
281
229
  height: number,
282
230
  index?: number,
283
- ): Promise<Float32Array | Uint16Array | Uint8Array | Int8Array | Int16Array | Uint32Array | Int32Array>;
284
-
231
+ ): Promise<import("three").TypedArray>;
232
+ _projectObject(object: Object3D, camera: Camera, groupOrder: number, renderList: RenderList): void;
233
+ _renderBundles(bundles: Bundle[], sceneRef: Scene, lightsNode: LightsNode): void;
234
+ _renderObjects(renderList: RenderItem[], camera: Camera, scene: Scene, lightsNode: LightsNode): void;
285
235
  renderObject(
286
236
  object: Object3D,
287
237
  scene: Scene,
288
238
  camera: Camera,
289
239
  geometry: BufferGeometry,
290
240
  material: Material,
291
- group: Group,
241
+ group: GeometryGroup,
242
+ lightsNode: LightsNode,
243
+ ): void;
244
+ _renderObjectDirect(
245
+ object: Object3D,
246
+ material: Material,
247
+ scene: Scene,
248
+ camera: Camera,
249
+ lightsNode: LightsNode,
250
+ group: GeometryGroup,
251
+ passId?: string,
252
+ ): void;
253
+ _createObjectPipeline(
254
+ object: Object3D,
255
+ material: Material,
256
+ scene: Scene,
257
+ camera: Camera,
292
258
  lightsNode: LightsNode,
259
+ group: GeometryGroup,
260
+ passId?: string,
293
261
  ): void;
294
-
295
262
  get compute(): (computeNodes: ComputeNode | ComputeNode[]) => Promise<void>;
296
-
297
263
  get compile(): (scene: Scene, camera: Camera, targetScene?: Scene | null) => Promise<void>;
298
264
  }
265
+ export default Renderer;
@@ -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 FloatUniform extends Uniform<number> {
13
+ readonly isFloatUniform: 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, FloatUniform, Matrix3Uniform, Matrix4Uniform, 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,30 @@
1
+ import {
2
+ ColorNodeUniform,
3
+ FloatNodeUniform,
4
+ Matrix3NodeUniform,
5
+ Matrix4NodeUniform,
6
+ NodeUniformGPU,
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
+ uniforms: NodeUniformGPU[];
15
+ constructor(name?: string);
16
+ addUniform(uniform: NodeUniformGPU): this;
17
+ removeUniform(uniform: NodeUniformGPU): this;
18
+ get buffer(): Float32Array;
19
+ get byteLength(): number;
20
+ update(): boolean;
21
+ updateByType(uniform: NodeUniformGPU): boolean | undefined;
22
+ updateNumber(uniform: FloatNodeUniform): boolean;
23
+ updateVector2(uniform: Vector2NodeUniform): boolean;
24
+ updateVector3(uniform: Vector3NodeUniform): boolean;
25
+ updateVector4(uniform: Vector4NodeUniform): boolean;
26
+ updateColor(uniform: ColorNodeUniform): boolean;
27
+ updateMatrix3(uniform: Matrix3NodeUniform): boolean;
28
+ updateMatrix4(uniform: Matrix4NodeUniform): boolean;
29
+ }
30
+ export default UniformsGroup;
@@ -0,0 +1,26 @@
1
+ import Node from "../../../nodes/core/Node.js";
2
+ import NodeAttribute from "../../../nodes/core/NodeAttribute.js";
3
+ import Binding from "../Binding.js";
4
+ declare class NodeBuilderState {
5
+ vertexShader: string | null;
6
+ fragmentShader: string | null;
7
+ computeShader: string | null;
8
+ transforms: never[];
9
+ nodeAttributes: NodeAttribute[];
10
+ bindings: Binding[];
11
+ updateNodes: Node[];
12
+ updateBeforeNodes: Node[];
13
+ usedTimes: number;
14
+ constructor(
15
+ vertexShader: string | null,
16
+ fragmentShader: string | null,
17
+ computeShader: string | null,
18
+ nodeAttributes: NodeAttribute[],
19
+ bindings: Binding[],
20
+ updateNodes: Node[],
21
+ updateBeforeNodes: Node[],
22
+ transforms?: never[],
23
+ );
24
+ createBindings(): Binding[];
25
+ }
26
+ export default NodeBuilderState;