@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.
- three/README.md +1 -1
- three/examples/jsm/controls/TransformControls.d.ts +8 -6
- three/examples/jsm/exporters/GLTFExporter.d.ts +6 -0
- three/examples/jsm/exporters/USDZExporter.d.ts +4 -2
- three/examples/jsm/geometries/TeapotGeometry.d.ts +24 -0
- three/examples/jsm/helpers/ViewHelper.d.ts +8 -6
- three/examples/jsm/lines/LineMaterial.d.ts +2 -4
- three/examples/jsm/loaders/DDSLoader.d.ts +8 -2
- three/examples/jsm/loaders/FontLoader.d.ts +1 -1
- three/examples/jsm/loaders/GLTFLoader.d.ts +12 -7
- three/examples/jsm/loaders/KTXLoader.d.ts +8 -2
- three/examples/jsm/loaders/LDrawLoader.d.ts +1 -1
- three/examples/jsm/loaders/PVRLoader.d.ts +2 -2
- three/examples/jsm/modifiers/EdgeSplitModifier.d.ts +17 -10
- three/examples/jsm/nodes/Nodes.d.ts +21 -57
- three/examples/jsm/nodes/accessors/BitangentNode.d.ts +4 -22
- three/examples/jsm/nodes/accessors/BufferAttributeNode.d.ts +50 -0
- three/examples/jsm/nodes/accessors/BufferNode.d.ts +3 -4
- three/examples/jsm/nodes/accessors/CameraNode.d.ts +11 -20
- three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts +1 -1
- three/examples/jsm/nodes/accessors/MaterialNode.d.ts +4 -1
- three/examples/jsm/nodes/accessors/ModelNode.d.ts +3 -0
- three/examples/jsm/nodes/accessors/ModelViewProjectionNode.d.ts +1 -2
- three/examples/jsm/nodes/accessors/NormalNode.d.ts +9 -17
- three/examples/jsm/nodes/accessors/PositionNode.d.ts +6 -26
- three/examples/jsm/nodes/accessors/ReferenceNode.d.ts +3 -4
- three/examples/jsm/nodes/accessors/ReflectVectorNode.d.ts +3 -8
- three/examples/jsm/nodes/accessors/RendererReferenceNode.d.ts +2 -3
- three/examples/jsm/nodes/accessors/StorageBufferNode.d.ts +16 -4
- three/examples/jsm/nodes/accessors/StorageTextureNode.d.ts +40 -0
- three/examples/jsm/nodes/accessors/TangentNode.d.ts +8 -23
- three/examples/jsm/nodes/accessors/Texture3DNode.d.ts +16 -0
- three/examples/jsm/nodes/accessors/TextureNode.d.ts +1 -1
- three/examples/jsm/nodes/accessors/UVNode.d.ts +1 -8
- three/examples/jsm/nodes/accessors/UniformsNode.d.ts +0 -2
- three/examples/jsm/nodes/accessors/UserDataNode.d.ts +4 -3
- three/examples/jsm/nodes/code/CodeNode.d.ts +0 -1
- three/examples/jsm/nodes/code/ExpressionNode.d.ts +2 -3
- three/examples/jsm/nodes/core/AttributeNode.d.ts +11 -4
- three/examples/jsm/nodes/core/CacheNode.d.ts +4 -5
- three/examples/jsm/nodes/core/ConstNode.d.ts +1 -2
- three/examples/jsm/nodes/core/InputNode.d.ts +1 -2
- three/examples/jsm/nodes/core/LightingModel.d.ts +11 -0
- three/examples/jsm/nodes/core/Node.d.ts +102 -42
- three/examples/jsm/nodes/core/NodeAttribute.d.ts +7 -4
- three/examples/jsm/nodes/core/NodeBuilder.d.ts +30 -26
- three/examples/jsm/nodes/core/NodeCache.d.ts +48 -6
- three/examples/jsm/nodes/core/NodeFunction.d.ts +2 -2
- three/examples/jsm/nodes/core/NodeKeywords.d.ts +10 -7
- three/examples/jsm/nodes/core/NodeParser.d.ts +4 -4
- three/examples/jsm/nodes/core/NodeUniform.d.ts +8 -11
- three/examples/jsm/nodes/core/NodeVar.d.ts +5 -4
- three/examples/jsm/nodes/core/NodeVarying.d.ts +5 -6
- three/examples/jsm/nodes/core/PropertyNode.d.ts +4 -4
- three/examples/jsm/nodes/core/StackNode.d.ts +7 -1
- three/examples/jsm/nodes/core/StructTypeNode.d.ts +8 -0
- three/examples/jsm/nodes/core/TempNode.d.ts +1 -2
- three/examples/jsm/nodes/core/UniformGroup.d.ts +7 -0
- three/examples/jsm/nodes/core/UniformGroupNode.d.ts +21 -0
- three/examples/jsm/nodes/core/UniformNode.d.ts +16 -11
- three/examples/jsm/nodes/core/VarNode.d.ts +2 -0
- three/examples/jsm/nodes/core/VaryingNode.d.ts +4 -0
- three/examples/jsm/nodes/core/constants.d.ts +27 -79
- three/examples/jsm/nodes/display/DepthOfFieldNode.d.ts +30 -0
- three/examples/jsm/nodes/display/DotScreenNode.d.ts +32 -0
- three/examples/jsm/nodes/display/PassNode.d.ts +1 -1
- three/examples/jsm/nodes/display/RGBShiftNode.d.ts +24 -0
- three/examples/jsm/nodes/display/SobelOperatorNode.d.ts +17 -0
- three/examples/jsm/nodes/display/ViewportDepthNode.d.ts +4 -6
- three/examples/jsm/nodes/functions/BSDF/LTC.d.ts +9 -0
- three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts +2 -0
- three/examples/jsm/nodes/functions/ToonLightingModel.d.ts +4 -0
- three/examples/jsm/nodes/lighting/RectAreaLightNode.d.ts +10 -0
- three/examples/jsm/nodes/loaders/NodeLoader.d.ts +3 -3
- three/examples/jsm/nodes/loaders/NodeObjectLoader.d.ts +2 -3
- three/examples/jsm/nodes/materials/LineBasicNodeMaterial.d.ts +2 -0
- three/examples/jsm/nodes/materials/Materials.d.ts +3 -0
- three/examples/jsm/nodes/materials/MeshBasicNodeMaterial.d.ts +5 -1
- three/examples/jsm/nodes/materials/MeshMatcapNodeMaterial.d.ts +28 -0
- three/examples/jsm/nodes/materials/MeshNormalNodeMaterial.d.ts +2 -0
- three/examples/jsm/nodes/materials/MeshPhongNodeMaterial.d.ts +7 -4
- three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts +24 -17
- three/examples/jsm/nodes/materials/MeshSSSNodeMaterial.d.ts +6 -7
- three/examples/jsm/nodes/materials/MeshStandardNodeMaterial.d.ts +8 -5
- three/examples/jsm/nodes/materials/MeshToonNodeMaterial.d.ts +38 -0
- three/examples/jsm/nodes/materials/NodeMaterial.d.ts +41 -37
- three/examples/jsm/nodes/materials/PointsNodeMaterial.d.ts +1 -0
- three/examples/jsm/nodes/materials/ShadowNodeMaterial.d.ts +1 -0
- three/examples/jsm/nodes/materials/SpriteNodeMaterial.d.ts +3 -3
- three/examples/jsm/nodes/materials/VolumeNodeMaterial.d.ts +10 -0
- three/examples/jsm/nodes/materialx/lib/mx_hsv.d.ts +1 -0
- three/examples/jsm/nodes/materialx/lib/mx_noise.d.ts +230 -0
- three/examples/jsm/nodes/math/MathNode.d.ts +5 -1
- three/examples/jsm/nodes/shadernode/ShaderNode.d.ts +58 -36
- three/examples/jsm/nodes/utils/ConvertNode.d.ts +2 -3
- three/examples/jsm/nodes/utils/DiscardNode.d.ts +1 -0
- three/examples/jsm/nodes/utils/EquirectUVNode.d.ts +2 -2
- three/examples/jsm/nodes/utils/SplitNode.d.ts +1 -1
- three/examples/jsm/nodes/utils/TriplanarTexturesNode.d.ts +4 -5
- three/examples/jsm/objects/Sky.d.ts +18 -0
- three/examples/jsm/renderers/common/Animation.d.ts +14 -0
- three/examples/jsm/renderers/common/Attributes.d.ts +20 -0
- three/examples/jsm/renderers/common/Background.d.ts +22 -0
- three/examples/jsm/renderers/common/BindGroup.d.ts +9 -0
- three/examples/jsm/renderers/common/Binding.d.ts +8 -0
- three/examples/jsm/renderers/common/Bindings.d.ts +42 -0
- three/examples/jsm/renderers/common/Buffer.d.ts +11 -0
- three/examples/jsm/renderers/common/BufferUtils.d.ts +4 -0
- three/examples/jsm/renderers/common/ChainMap.d.ts +9 -0
- three/examples/jsm/renderers/common/ClippingContext.d.ts +18 -0
- three/examples/jsm/renderers/common/Color4.d.ts +6 -5
- three/examples/jsm/renderers/common/ComputePipeline.d.ts +8 -0
- three/examples/jsm/renderers/common/Constants.d.ts +9 -0
- three/examples/jsm/renderers/common/CubeRenderTarget.d.ts +7 -0
- three/examples/jsm/renderers/common/DataMap.d.ts +20 -0
- three/examples/jsm/renderers/common/Geometries.d.ts +28 -0
- three/examples/jsm/renderers/common/Info.d.ts +25 -13
- three/examples/jsm/renderers/common/Pipeline.d.ts +6 -0
- three/examples/jsm/renderers/common/Pipelines.d.ts +68 -0
- three/examples/jsm/renderers/common/PostProcessing.d.ts +2 -0
- three/examples/jsm/renderers/common/ProgrammableStage.d.ts +15 -0
- three/examples/jsm/renderers/common/RenderBundle.d.ts +8 -0
- three/examples/jsm/renderers/common/RenderBundles.d.ts +10 -0
- three/examples/jsm/renderers/common/RenderContext.d.ts +38 -0
- three/examples/jsm/renderers/common/RenderContexts.d.ts +13 -0
- three/examples/jsm/renderers/common/RenderList.d.ts +62 -0
- three/examples/jsm/renderers/common/RenderLists.d.ts +10 -0
- three/examples/jsm/renderers/common/RenderObject.d.ts +73 -0
- three/examples/jsm/renderers/common/RenderObjects.d.ts +59 -0
- three/examples/jsm/renderers/common/RenderPipeline.d.ts +8 -0
- three/examples/jsm/renderers/common/Renderer.d.ts +186 -208
- three/examples/jsm/renderers/common/SampledTexture.d.ts +27 -0
- three/examples/jsm/renderers/common/Sampler.d.ts +11 -0
- three/examples/jsm/renderers/common/StorageBufferAttribute.d.ts +7 -0
- three/examples/jsm/renderers/common/StorageInstancedBufferAttribute.d.ts +7 -0
- three/examples/jsm/renderers/common/Textures.d.ts +64 -0
- three/examples/jsm/renderers/common/Uniform.d.ts +40 -0
- three/examples/jsm/renderers/common/UniformBuffer.d.ts +6 -0
- three/examples/jsm/renderers/common/UniformsGroup.d.ts +32 -0
- three/examples/jsm/renderers/common/nodes/NodeBuilderState.d.ts +30 -0
- three/examples/jsm/renderers/common/nodes/NodeSampledTexture.d.ts +29 -0
- three/examples/jsm/renderers/common/nodes/NodeSampler.d.ts +12 -0
- three/examples/jsm/renderers/common/nodes/NodeUniform.d.ts +63 -0
- three/examples/jsm/renderers/common/nodes/NodeUniformsGroup.d.ts +11 -0
- three/examples/jsm/renderers/common/nodes/Nodes.d.ts +95 -0
- three/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +123 -0
- three/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.d.ts +6 -0
- three/examples/jsm/renderers/webgpu/nodes/WGSLNodeParser.d.ts +6 -0
- three/examples/jsm/renderers/webgpu/utils/WebGPUConstants.d.ts +328 -0
- three/examples/jsm/utils/SceneUtils.d.ts +9 -3
- three/package.json +4 -4
- three/src/Three.d.ts +1 -0
- three/src/animation/tracks/StringKeyframeTrack.d.ts +1 -2
- three/src/constants.d.ts +6 -0
- three/src/core/BufferGeometry.d.ts +19 -17
- three/src/core/InterleavedBuffer.d.ts +2 -0
- three/src/extras/ShapeUtils.d.ts +5 -8
- three/src/extras/TextureUtils.d.ts +42 -0
- three/src/lights/LightShadow.d.ts +5 -0
- three/src/loaders/LoaderUtils.d.ts +9 -6
- three/src/materials/Material.d.ts +21 -12
- three/src/math/Color.d.ts +1 -1
- three/src/math/Matrix3.d.ts +2 -0
- three/src/math/Matrix4.d.ts +2 -0
- three/src/math/Vector4.d.ts +6 -0
- three/src/objects/BatchedMesh.d.ts +66 -47
- three/src/objects/InstancedMesh.d.ts +3 -3
- three/src/renderers/WebGLRenderer.d.ts +41 -19
- three/src/renderers/shaders/UniformsLib.d.ts +3 -0
- three/src/renderers/webgl/WebGLPrograms.d.ts +1 -1
- three/src/renderers/webxr/WebXRDepthSensing.d.ts +3 -1
- three/src/renderers/webxr/WebXRManager.d.ts +33 -23
- three/src/textures/CompressedArrayTexture.d.ts +36 -19
- three/src/textures/CompressedTexture.d.ts +16 -8
- three/src/textures/DataArrayTexture.d.ts +37 -20
- three/src/textures/FramebufferTexture.d.ts +1 -1
- three/src/textures/Texture.d.ts +3 -1
- three/src/utils.d.ts +2 -0
- three/examples/jsm/renderers/webgl/nodes/SlotNode.d.ts +0 -17
- three/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.d.ts +0 -37
- 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
|
+
}
|