@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
@@ -0,0 +1,30 @@
1
+ import Node from "../../../nodes/core/Node.js";
2
+ import NodeAttribute from "../../../nodes/core/NodeAttribute.js";
3
+ import BindGroup from "../BindGroup.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: BindGroup[];
11
+ updateNodes: Node[];
12
+ updateBeforeNodes: Node[];
13
+ updateAfterNodes: Node[];
14
+ instanceBindGroups: boolean;
15
+ usedTimes: number;
16
+ constructor(
17
+ vertexShader: string | null,
18
+ fragmentShader: string | null,
19
+ computeShader: string | null,
20
+ nodeAttributes: NodeAttribute[],
21
+ bindings: BindGroup[],
22
+ updateNodes: Node[],
23
+ updateBeforeNodes: Node[],
24
+ updateAfterNodes: Node[],
25
+ instanceBindGroups?: boolean,
26
+ transforms?: never[],
27
+ );
28
+ createBindings(): BindGroup[];
29
+ }
30
+ export default NodeBuilderState;
@@ -0,0 +1,29 @@
1
+ import TextureNode from "../../../nodes/accessors/TextureNode.js";
2
+ import UniformGroupNode from "../../../nodes/core/UniformGroupNode.js";
3
+ import { SampledTexture } from "../SampledTexture.js";
4
+
5
+ type GPUStorageTextureAccess = "read-only" | "read-write" | "write-only";
6
+
7
+ declare class NodeSampledTexture extends SampledTexture {
8
+ textureNode: TextureNode | undefined;
9
+ groupNode: UniformGroupNode;
10
+ access: "read-write" | "read-only" | "write-only";
11
+ constructor(
12
+ name: string,
13
+ textureNode: TextureNode | undefined,
14
+ groupNode: UniformGroupNode,
15
+ access: GPUStorageTextureAccess | null,
16
+ );
17
+ get needsBindingsUpdate(): boolean;
18
+ update(): boolean;
19
+ }
20
+
21
+ declare class NodeSampledCubeTexture extends NodeSampledTexture {
22
+ readonly isSampledCubeTexture: true;
23
+ }
24
+
25
+ declare class NodeSampledTexture3D extends NodeSampledTexture {
26
+ readonly isSampledTexture3D = true;
27
+ }
28
+
29
+ export { NodeSampledCubeTexture, NodeSampledTexture, NodeSampledTexture3D };
@@ -0,0 +1,12 @@
1
+ import TextureNode from "../../../nodes/accessors/TextureNode.js";
2
+ import UniformGroupNode from "../../../nodes/core/UniformGroupNode.js";
3
+ import Sampler from "../Sampler.js";
4
+
5
+ declare class NodeSampler extends Sampler {
6
+ textureNode: TextureNode | undefined;
7
+ groupNode: UniformGroupNode;
8
+ constructor(name: string, textureNode: TextureNode | undefined, groupNode: UniformGroupNode);
9
+ update(): void;
10
+ }
11
+
12
+ export default NodeSampler;
@@ -0,0 +1,63 @@
1
+ import { Color, Matrix3, Matrix4, Vector2, Vector3, Vector4 } from "three";
2
+ import NodeUniform from "../../../nodes/core/NodeUniform.js";
3
+ import {
4
+ ColorUniform,
5
+ Matrix3Uniform,
6
+ Matrix4Uniform,
7
+ NumberUniform,
8
+ Vector2Uniform,
9
+ Vector3Uniform,
10
+ Vector4Uniform,
11
+ } from "../Uniform.js";
12
+ declare class NumberNodeUniform extends NumberUniform {
13
+ nodeUniform: NodeUniform<number>;
14
+ constructor(nodeUniform: NodeUniform<number>);
15
+ getValue(): number;
16
+ }
17
+ declare class Vector2NodeUniform extends Vector2Uniform {
18
+ nodeUniform: NodeUniform<Vector2>;
19
+ constructor(nodeUniform: NodeUniform<Vector2>);
20
+ getValue(): Vector2;
21
+ }
22
+ declare class Vector3NodeUniform extends Vector3Uniform {
23
+ nodeUniform: NodeUniform<Vector3>;
24
+ constructor(nodeUniform: NodeUniform<Vector3>);
25
+ getValue(): Vector3;
26
+ }
27
+ declare class Vector4NodeUniform extends Vector4Uniform {
28
+ nodeUniform: NodeUniform<Vector4>;
29
+ constructor(nodeUniform: NodeUniform<Vector4>);
30
+ getValue(): Vector4;
31
+ }
32
+ declare class ColorNodeUniform extends ColorUniform {
33
+ nodeUniform: NodeUniform<Color>;
34
+ constructor(nodeUniform: NodeUniform<Color>);
35
+ getValue(): Color;
36
+ }
37
+ declare class Matrix3NodeUniform extends Matrix3Uniform {
38
+ nodeUniform: NodeUniform<Matrix3>;
39
+ constructor(nodeUniform: NodeUniform<Matrix3>);
40
+ getValue(): Matrix3;
41
+ }
42
+ declare class Matrix4NodeUniform extends Matrix4Uniform {
43
+ nodeUniform: NodeUniform<Matrix4>;
44
+ constructor(nodeUniform: NodeUniform<Matrix4>);
45
+ getValue(): Matrix4;
46
+ }
47
+ export {
48
+ ColorNodeUniform,
49
+ Matrix3NodeUniform,
50
+ Matrix4NodeUniform,
51
+ NumberNodeUniform,
52
+ Vector2NodeUniform,
53
+ Vector3NodeUniform,
54
+ Vector4NodeUniform,
55
+ };
56
+ export type NodeUniformGPU =
57
+ | NumberNodeUniform
58
+ | Vector2NodeUniform
59
+ | Vector3NodeUniform
60
+ | Vector4NodeUniform
61
+ | ColorNodeUniform
62
+ | Matrix3NodeUniform
63
+ | Matrix4NodeUniform;
@@ -0,0 +1,11 @@
1
+ import UniformGroupNode from "../../../nodes/core/UniformGroupNode.js";
2
+ import UniformNode from "../../../nodes/core/UniformNode.js";
3
+ import UniformsGroup from "../UniformsGroup.js";
4
+ declare class NodeUniformsGroup extends UniformsGroup {
5
+ id: number;
6
+ groupNode: UniformGroupNode;
7
+ readonly isNodeUniformsGroup: true;
8
+ constructor(name: string, groupNode: UniformGroupNode);
9
+ getNodes(): UniformNode<unknown>[];
10
+ }
11
+ export default NodeUniformsGroup;
@@ -0,0 +1,95 @@
1
+ import { Camera, Color, CubeTexture, FogBase, Material, Object3D, Scene, Texture } from "three";
2
+ import Node from "../../../nodes/core/Node.js";
3
+ import NodeBuilder from "../../../nodes/core/NodeBuilder.js";
4
+ import UniformGroupNode from "../../../nodes/core/UniformGroupNode.js";
5
+ import ComputeNode from "../../../nodes/gpgpu/ComputeNode.js";
6
+ import LightsNode from "../../../nodes/lighting/LightsNode.js";
7
+ import { NodeFrame, ShaderNodeObject } from "../../../nodes/Nodes.js";
8
+ import Backend from "../Backend.js";
9
+ import ChainMap from "../ChainMap.js";
10
+ import DataMap from "../DataMap.js";
11
+ import Renderer from "../Renderer.js";
12
+ import RenderObject from "../RenderObject.js";
13
+ import NodeBuilderState from "./NodeBuilderState.js";
14
+ import NodeUniformsGroup from "./NodeUniformsGroup.js";
15
+ interface NodeUniformsGroupData {
16
+ renderId?: number | undefined;
17
+ frameId?: number | undefined;
18
+ }
19
+ interface RenderObjectData {
20
+ nodeBuilderState?: NodeBuilderState | undefined;
21
+ }
22
+ interface ComputeNodeData {
23
+ nodeBuilderState?: NodeBuilderState | undefined;
24
+ }
25
+ interface SceneData {
26
+ background?: Color | Texture | CubeTexture | undefined;
27
+ backgroundNode?: Node | undefined;
28
+ fog?: FogBase | undefined;
29
+ fogNode?: Node | undefined;
30
+ environment?: Texture | undefined;
31
+ environmentNode?: Node | undefined;
32
+ }
33
+ declare class Nodes extends DataMap<{
34
+ nodeUniformsGroup: {
35
+ key: NodeUniformsGroup;
36
+ value: NodeUniformsGroupData;
37
+ };
38
+ renderObject: {
39
+ key: RenderObject;
40
+ value: RenderObjectData;
41
+ };
42
+ computeNode: {
43
+ key: ComputeNode;
44
+ value: ComputeNodeData;
45
+ };
46
+ scene: {
47
+ key: Scene;
48
+ value: SceneData;
49
+ };
50
+ }> {
51
+ renderer: Renderer;
52
+ backend: Backend;
53
+ nodeFrame: NodeFrame;
54
+ nodeBuilderCache: Map<string, NodeBuilderState>;
55
+ callHashCache: ChainMap<readonly [Scene, LightsNode], {
56
+ callId: number;
57
+ cacheKey: string;
58
+ }>;
59
+ groupsData: ChainMap<readonly [UniformGroupNode, NodeUniformsGroup], {
60
+ version?: number;
61
+ }>;
62
+ constructor(renderer: Renderer, backend: Backend);
63
+ updateGroup(nodeUniformsGroup: NodeUniformsGroup): boolean;
64
+ getForRenderCacheKey(renderObject: RenderObject): string;
65
+ getForRender(renderObject: RenderObject): NodeBuilderState;
66
+ delete(
67
+ object: NodeUniformsGroup | RenderObject | ComputeNode | Scene,
68
+ ): SceneData | RenderObjectData | NodeUniformsGroupData | ComputeNodeData;
69
+ getForCompute(computeNode: ComputeNode): NodeBuilderState;
70
+ _createNodeBuilderState(nodeBuilder: NodeBuilder): NodeBuilderState;
71
+ getEnvironmentNode(scene: Scene): Node | null;
72
+ getBackgroundNode(scene: Scene): Node | null;
73
+ getFogNode(scene: Scene): Node | null;
74
+ getCacheKey(scene: Scene, lightsNode: LightsNode): string;
75
+ updateScene(scene: Scene): void;
76
+ get isToneMappingState(): boolean;
77
+ updateBackground(scene: Scene): void;
78
+ updateFog(scene: Scene): void;
79
+ updateEnvironment(scene: Scene): void;
80
+ getNodeFrame(
81
+ renderer?: Renderer,
82
+ scene?: Scene | null,
83
+ object?: Object3D | null,
84
+ camera?: Camera | null,
85
+ material?: Material | null,
86
+ ): NodeFrame;
87
+ getNodeFrameForRender(renderObject: RenderObject): NodeFrame;
88
+ getOutputNode(outputTexture: Texture): ShaderNodeObject<Node>;
89
+ updateBefore(renderObject: RenderObject): void;
90
+ updateAfter(renderObject: RenderObject): void;
91
+ updateForCompute(computeNode: ComputeNode): void;
92
+ updateForRender(renderObject: RenderObject): void;
93
+ dispose(): void;
94
+ }
95
+ export default Nodes;
@@ -0,0 +1,123 @@
1
+ import { Texture } from "three";
2
+ import { NodeShaderStage } from "../../../nodes/core/constants.js";
3
+ import NodeBuilder from "../../../nodes/core/NodeBuilder.js";
4
+ import NodeUniform from "../../../nodes/core/NodeUniform.js";
5
+ import NodeVar from "../../../nodes/core/NodeVar.js";
6
+ import StructTypeNode from "../../../nodes/core/StructTypeNode.js";
7
+ import { ShaderNode } from "../../../nodes/shadernode/ShaderNode.js";
8
+ import NodeUniformsGroup from "../../common/nodes/NodeUniformsGroup.js";
9
+
10
+ type BuiltinStage = NodeShaderStage | "attribute" | "output";
11
+ interface BuiltinType {
12
+ name: string;
13
+ property: string;
14
+ type: string;
15
+ }
16
+
17
+ export default class WGSLNodeBuilder extends NodeBuilder {
18
+ builtins: { [key in BuiltinStage]: Map<string, BuiltinType> };
19
+ uniformGroups: { [key in NodeShaderStage]: NodeUniformsGroup };
20
+
21
+ needsColorSpaceToLinear(texture: Texture);
22
+ _generateTextureSample(
23
+ texture: Texture,
24
+ textureProperty: string,
25
+ uvSnippet: string,
26
+ depthSnippet: string | null,
27
+ shaderStage: NodeShaderStage,
28
+ ): string;
29
+ _generateVideoSample(textureProperty: string, uvSnippet: string, shaderStage: NodeShaderStage): string;
30
+ _generateTextureSampleLevel(
31
+ texture: Texture,
32
+ textureProperty: string,
33
+ uvSnippet: string,
34
+ levelSnippet: string,
35
+ depthSnippet: string | null,
36
+ shaderStage: NodeShaderStage,
37
+ ): string;
38
+ generateTextureLod(texture: Texture, textureProperty: string, uvSnippet: string, levelSnippet: string): string;
39
+ generateTextureLoad(
40
+ texture: Texture,
41
+ textureProperty: string,
42
+ uvIndexSnippet: string,
43
+ depthSnippet: string | null,
44
+ shaderStage: NodeShaderStage,
45
+ ): string;
46
+ generateTextureStore(
47
+ texture: Texture,
48
+ textureProperty: string,
49
+ uvIndexSnippet: string,
50
+ valueSnippet: string,
51
+ ): string;
52
+ isUnfilterable(texture: Texture): boolean;
53
+ generateTexture(
54
+ texture: Texture,
55
+ textureProperty: string,
56
+ uvSnippet: string,
57
+ depthSnippet: string | null,
58
+ shaderStage: NodeShaderStage,
59
+ ): string;
60
+ generateTextureGrad(
61
+ texture: Texture,
62
+ textureProperty: string,
63
+ uvSnippet: string,
64
+ gradSnippet: string[],
65
+ depthSnippet: string | null,
66
+ shaderStage: NodeShaderStage,
67
+ ): string;
68
+ generateTextureCompare(
69
+ texture: Texture,
70
+ textureProperty: string,
71
+ uvSnippet: string,
72
+ compareSnippet: String,
73
+ shaderStage: NodeShaderStage,
74
+ ): string;
75
+ generateTextureLevel(
76
+ texture: Texture,
77
+ textureProperty: string,
78
+ uvSnippet: string,
79
+ levelSnippet: string,
80
+ depthSnippet: string | null,
81
+ shaderStage: NodeShaderStage,
82
+ ): string;
83
+
84
+ getPropertyName<TValue>(node: NodeVar | NodeUniform<TValue>, shaderStage: NodeShaderStage): string;
85
+
86
+ getOutputStructName(): string;
87
+
88
+ _getUniformGroupCount(shaderStage: NodeShaderStage): number;
89
+
90
+ getFunctionOperator(op: string): string | null;
91
+ // getStorageAccess(node: StorageTextureNode | StorageBufferNode): string;
92
+
93
+ getBuiltin(name: string, property: string, type: string, shaderStage: BuiltinStage): string;
94
+ getVertexIndex(): string;
95
+ getInstanceIndex(): string;
96
+
97
+ buildFunctionCode(shaderNode: ShaderNode): string;
98
+
99
+ getFragDepth(): string;
100
+ getFragCoord(): string;
101
+ getFrontFacing(): string;
102
+
103
+ getBuiltins(shaderStage: BuiltinStage): string;
104
+ getAttributes(shaderStage: NodeShaderStage): string;
105
+
106
+ getStructMembers(struct: StructTypeNode): string;
107
+ getStructs(shaderStage: NodeShaderStage): string;
108
+
109
+ getVar(type: string, name: string): string;
110
+ getVars(shaderStage: NodeShaderStage): string;
111
+ getVaryings(shaderStage: NodeShaderStage): string;
112
+ getUniforms(shaderStage: NodeShaderStage): string;
113
+ buildCode(): void;
114
+ getMethod(method: string, output?: string | null): string;
115
+
116
+ _getWGSLMethod(method: string);
117
+ // _include(name: string): CodeNode
118
+ _getWGSLVertexCode(shaderData: { [key: string]: string }): string;
119
+ _getWGSLFragmentCode(shaderData: { [key: string]: string }): string;
120
+ _getWGSLComputeCode(shaderData: { [key: string]: string }, workgroupSize: string): string;
121
+ _getWGSLStruct(name: string, vars: string): string;
122
+ _getWGSLStructBinding(name: string, vars: string, access: string, binding: number, group: number): string;
123
+ }
@@ -0,0 +1,6 @@
1
+ import NodeFunction from "../../../nodes/core/NodeFunction.js";
2
+
3
+ export default class WGSLNodeFunction extends NodeFunction {
4
+ constructor(source: string);
5
+ getCode(name?: string): string;
6
+ }
@@ -0,0 +1,6 @@
1
+ import NodeParser from "../../../nodes/core/NodeParser.js";
2
+ import WGSLNodeFunction from "./WGSLNodeFunction.js";
3
+
4
+ export default class WGSLNodeParser extends NodeParser {
5
+ parseFunction(source: string): WGSLNodeFunction;
6
+ }