@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
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BufferGeometry, Material, Object3D, Renderer } from "three";
|
|
1
|
+
import { BufferGeometry, Material, Object3D, Renderer, Texture } from "three";
|
|
2
2
|
import FogNode from "../fog/FogNode.js";
|
|
3
3
|
import LightsNode from "../lighting/LightsNode.js";
|
|
4
|
-
import {
|
|
4
|
+
import { NodeShaderStage } from "./constants.js";
|
|
5
5
|
import Node from "./Node.js";
|
|
6
6
|
import NodeAttribute from "./NodeAttribute.js";
|
|
7
7
|
import NodeCache from "./NodeCache.js";
|
|
@@ -18,12 +18,12 @@ export interface FlowData {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export interface NodeData {
|
|
21
|
-
vertex:
|
|
22
|
-
fragment:
|
|
23
|
-
compute:
|
|
21
|
+
vertex: { [key: string]: unknown };
|
|
22
|
+
fragment: { [key: string]: unknown };
|
|
23
|
+
compute: { [key: string]: unknown };
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export type NodeBuilderContext =
|
|
26
|
+
export type NodeBuilderContext = { [key: string]: unknown };
|
|
27
27
|
|
|
28
28
|
export default abstract class NodeBuilder {
|
|
29
29
|
object: Object3D;
|
|
@@ -58,6 +58,7 @@ export default abstract class NodeBuilder {
|
|
|
58
58
|
setHashNode(node: Node, hash: string): void;
|
|
59
59
|
addNode(node: Node): void;
|
|
60
60
|
get currentNode(): Node;
|
|
61
|
+
isFilteredTexture(texture: Texture): boolean;
|
|
61
62
|
getMethod(method: string): string;
|
|
62
63
|
getNodeFromHash(hash: string): Node;
|
|
63
64
|
|
|
@@ -65,6 +66,9 @@ export default abstract class NodeBuilder {
|
|
|
65
66
|
|
|
66
67
|
setContext(context: NodeBuilderContext): void;
|
|
67
68
|
getContext(): NodeBuilderContext;
|
|
69
|
+
setCache(cache: NodeCache): void;
|
|
70
|
+
getCache(): NodeCache;
|
|
71
|
+
getCacheFromNode(node: Node, parent?: boolean): NodeCache;
|
|
68
72
|
isAvailable(name: string): boolean;
|
|
69
73
|
|
|
70
74
|
abstract getInstanceIndex(): string;
|
|
@@ -76,35 +80,35 @@ export default abstract class NodeBuilder {
|
|
|
76
80
|
isFlipY(): boolean;
|
|
77
81
|
|
|
78
82
|
// @TODO: rename to .generateConst()
|
|
79
|
-
getConst(type:
|
|
80
|
-
getType(type:
|
|
83
|
+
getConst(type: string, value?: unknown): Node;
|
|
84
|
+
getType(type: string): string;
|
|
81
85
|
|
|
82
86
|
generateMethod(method: string): string;
|
|
83
87
|
|
|
84
|
-
getAttribute(name: string, type:
|
|
88
|
+
getAttribute(name: string, type: string): NodeAttribute;
|
|
85
89
|
|
|
86
|
-
getPropertyName(node:
|
|
87
|
-
isVector(type:
|
|
90
|
+
getPropertyName<TValue>(node: NodeVar | NodeUniform<TValue>, shaderStage: NodeShaderStage): string;
|
|
91
|
+
isVector(type: string): boolean;
|
|
88
92
|
|
|
89
|
-
isMatrix(type:
|
|
90
|
-
isReference(type:
|
|
91
|
-
|
|
92
|
-
getComponentType(type:
|
|
93
|
-
getVectorType(type:
|
|
94
|
-
getTypeFromLength(length: number):
|
|
95
|
-
getTypeLength(type:
|
|
96
|
-
getVectorFromMatrix(type:
|
|
93
|
+
isMatrix(type: string): boolean;
|
|
94
|
+
isReference(type: string): boolean;
|
|
95
|
+
getElementType(type: string): string | null;
|
|
96
|
+
getComponentType(type: string): string | null;
|
|
97
|
+
getVectorType(type: string): string;
|
|
98
|
+
getTypeFromLength(length: number): string;
|
|
99
|
+
getTypeLength(type: string): number;
|
|
100
|
+
getVectorFromMatrix(type: string): string;
|
|
97
101
|
getDataFromNode(node: Node, shaderStage?: NodeShaderStage): NodeData;
|
|
98
|
-
getNodeProperties(node: Node, shaderStage?: NodeShaderStage):
|
|
102
|
+
getNodeProperties(node: Node, shaderStage?: NodeShaderStage): { [key: string]: unknown };
|
|
99
103
|
getUniformFromNode(
|
|
100
104
|
node: Node,
|
|
101
|
-
type:
|
|
105
|
+
type: string,
|
|
102
106
|
shaderStage?: NodeShaderStage,
|
|
103
107
|
name?: string | null,
|
|
104
108
|
): NodeUniform<string>;
|
|
105
|
-
getVarFromNode(node: Node, type:
|
|
106
|
-
getVaryFromNode(node: Node, type:
|
|
107
|
-
getCodeFromNode(node: Node, type:
|
|
109
|
+
getVarFromNode(node: Node, type: string, shaderStage?: NodeShaderStage): NodeVar;
|
|
110
|
+
getVaryFromNode(node: Node, type: string): NodeVarying;
|
|
111
|
+
getCodeFromNode(node: Node, type: string, shaderStage?: NodeShaderStage): string;
|
|
108
112
|
addFlowCode(code: string): void;
|
|
109
113
|
getFlowData(node: Node, shaderStage: NodeShaderStage): FlowData;
|
|
110
114
|
flowNode(node: Node): FlowData;
|
|
@@ -117,7 +121,7 @@ export default abstract class NodeBuilder {
|
|
|
117
121
|
): FlowData;
|
|
118
122
|
hasGeometryAttribute(name: string): boolean;
|
|
119
123
|
abstract getAttributes(shaderStage: NodeShaderStage): string;
|
|
120
|
-
abstract
|
|
124
|
+
abstract getVaryings(shaderStage: NodeShaderStage): string;
|
|
121
125
|
getVars(shaderStage: NodeShaderStage): string;
|
|
122
126
|
abstract getUniforms(stage: NodeShaderStage): string;
|
|
123
127
|
getCodes(shaderStage: NodeShaderStage): string;
|
|
@@ -128,6 +132,6 @@ export default abstract class NodeBuilder {
|
|
|
128
132
|
getBuildStage(): BuildStageOption;
|
|
129
133
|
abstract buildCode(): void;
|
|
130
134
|
build(): this;
|
|
131
|
-
format(snippet: string, fromType:
|
|
135
|
+
format(snippet: string, fromType: string, toType: string): string;
|
|
132
136
|
getSignature(): string;
|
|
133
137
|
}
|
|
@@ -1,9 +1,51 @@
|
|
|
1
|
+
import { BufferAttribute, InterleavedBuffer, TypedArray } from "three";
|
|
2
|
+
import BufferAttributeNode from "../accessors/BufferAttributeNode.js";
|
|
1
3
|
import Node from "./Node.js";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
import NodeAttribute from "./NodeAttribute.js";
|
|
5
|
+
import NodeCode from "./NodeCode.js";
|
|
6
|
+
import NodeUniform from "./NodeUniform.js";
|
|
7
|
+
import NodeVar from "./NodeVar.js";
|
|
8
|
+
import NodeVarying from "./NodeVarying.js";
|
|
9
|
+
export interface ShaderStageNodeData {
|
|
10
|
+
properties?:
|
|
11
|
+
| (
|
|
12
|
+
& {
|
|
13
|
+
outputNode: Node | null;
|
|
14
|
+
initialized?: boolean | undefined;
|
|
15
|
+
}
|
|
16
|
+
& {
|
|
17
|
+
[K in `node${string}`]?: Node | undefined;
|
|
18
|
+
}
|
|
19
|
+
)
|
|
20
|
+
| undefined;
|
|
21
|
+
bufferAttribute?: NodeAttribute | undefined;
|
|
22
|
+
structType?: Node | undefined;
|
|
23
|
+
uniform?: NodeUniform<unknown> | undefined;
|
|
24
|
+
variable?: NodeVar | undefined;
|
|
25
|
+
varying?: NodeVarying | undefined;
|
|
26
|
+
code?: NodeCode | undefined;
|
|
27
|
+
usageCount?: number | undefined;
|
|
28
|
+
snippet?: string | undefined;
|
|
29
|
+
propertyName?: string | undefined;
|
|
30
|
+
propertySizeName?: string | undefined;
|
|
31
|
+
}
|
|
32
|
+
interface NodeData {
|
|
33
|
+
vertex?: ShaderStageNodeData | undefined;
|
|
34
|
+
fragment?: ShaderStageNodeData | undefined;
|
|
35
|
+
compute?: ShaderStageNodeData | undefined;
|
|
36
|
+
any?: ShaderStageNodeData | undefined;
|
|
37
|
+
}
|
|
38
|
+
interface BufferAttributeData {
|
|
39
|
+
node: BufferAttributeNode;
|
|
40
|
+
}
|
|
41
|
+
declare class NodeCache {
|
|
5
42
|
id: number;
|
|
6
|
-
nodesData: WeakMap<Node, NodeData>;
|
|
7
|
-
|
|
8
|
-
constructor();
|
|
43
|
+
nodesData: WeakMap<Node | TypedArray | InterleavedBuffer | BufferAttribute, NodeData | BufferAttributeData>;
|
|
44
|
+
parent: NodeCache | null;
|
|
45
|
+
constructor(parent?: NodeCache | null);
|
|
46
|
+
getData(node: Node): NodeData | undefined;
|
|
47
|
+
getData(node: TypedArray | InterleavedBuffer | BufferAttribute): BufferAttributeData | undefined;
|
|
48
|
+
setData(node: Node, data: NodeData): void;
|
|
49
|
+
setData(node: TypedArray | InterleavedBuffer | BufferAttribute, data: BufferAttributeData): void;
|
|
9
50
|
}
|
|
51
|
+
export default NodeCache;
|
|
@@ -5,9 +5,9 @@ export default abstract class NodeFunction {
|
|
|
5
5
|
type: string;
|
|
6
6
|
inputs: NodeFunctionInput[];
|
|
7
7
|
name: string;
|
|
8
|
-
|
|
8
|
+
precision: string;
|
|
9
9
|
|
|
10
|
-
constructor(type: string, inputs: NodeFunctionInput[], name?: string,
|
|
10
|
+
constructor(type: string, inputs: NodeFunctionInput[], name?: string, precision?: string);
|
|
11
11
|
|
|
12
12
|
abstract getCode(name?: string): string;
|
|
13
13
|
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import Node from "./Node.js";
|
|
2
2
|
import NodeBuilder from "./NodeBuilder.js";
|
|
3
|
-
|
|
4
|
-
export default class NodeKeywords {
|
|
3
|
+
declare class NodeKeywords {
|
|
5
4
|
keywords: string[];
|
|
6
|
-
nodes:
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
nodes: {
|
|
6
|
+
[name: string]: Node;
|
|
7
|
+
};
|
|
8
|
+
keywordsCallback: {
|
|
9
|
+
[name: string]: (name: string) => Node;
|
|
10
|
+
};
|
|
11
|
+
constructor();
|
|
9
12
|
getNode(name: string): Node;
|
|
10
|
-
addKeyword(name: string, callback: (name: string) => Node):
|
|
11
|
-
|
|
13
|
+
addKeyword(name: string, callback: (name: string) => Node): this;
|
|
12
14
|
parse(code: string): Node[];
|
|
13
15
|
include(builder: NodeBuilder, code: string): void;
|
|
14
16
|
}
|
|
17
|
+
export default NodeKeywords;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
abstract parseFunction(source: string): Node;
|
|
1
|
+
import NodeFunction from "./NodeFunction.js";
|
|
2
|
+
declare abstract class NodeParser {
|
|
3
|
+
abstract parseFunction(source: string): NodeFunction;
|
|
5
4
|
}
|
|
5
|
+
export default NodeParser;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import UniformNode from "./UniformNode.js";
|
|
2
|
-
|
|
3
|
-
export default class NodeUniform<Value> {
|
|
2
|
+
declare class NodeUniform<TValue> {
|
|
4
3
|
readonly isNodeUniform: true;
|
|
5
|
-
|
|
6
4
|
name: string;
|
|
7
|
-
type: string;
|
|
8
|
-
node: UniformNode<
|
|
5
|
+
type: string | null;
|
|
6
|
+
node: UniformNode<TValue>;
|
|
9
7
|
needsUpdate: boolean | undefined;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
get(): Value;
|
|
14
|
-
set value(val: Value);
|
|
15
|
-
|
|
8
|
+
constructor(name: string, type: string | null, node: UniformNode<TValue>);
|
|
9
|
+
get value(): TValue;
|
|
10
|
+
set value(val: TValue);
|
|
16
11
|
get id(): number;
|
|
12
|
+
get groupNode(): import("./UniformGroupNode.js").default;
|
|
17
13
|
}
|
|
14
|
+
export default NodeUniform;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
isNodeVar: true;
|
|
1
|
+
declare class NodeVar {
|
|
2
|
+
readonly isNodeVar: true;
|
|
3
3
|
name: string;
|
|
4
|
-
type: string;
|
|
5
|
-
constructor(name: string, type: string);
|
|
4
|
+
type: string | null;
|
|
5
|
+
constructor(name: string, type: string | null);
|
|
6
6
|
}
|
|
7
|
+
export default NodeVar;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import NodeVar from "./NodeVar.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
constructor(name: string, type: string);
|
|
2
|
+
declare class NodeVarying extends NodeVar {
|
|
3
|
+
needsInterpolation: boolean;
|
|
4
|
+
readonly isNodeVarying: true;
|
|
5
|
+
constructor(name: string, type: string | null);
|
|
8
6
|
}
|
|
7
|
+
export default NodeVarying;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
|
|
2
|
-
import { NodeTypeOption } from "./constants.js";
|
|
3
2
|
import Node from "./Node.js";
|
|
4
3
|
|
|
5
4
|
export default class PropertyNode extends Node {
|
|
@@ -8,11 +7,11 @@ export default class PropertyNode extends Node {
|
|
|
8
7
|
|
|
9
8
|
readonly isPropertyNode: true;
|
|
10
9
|
|
|
11
|
-
constructor(nodeType?:
|
|
10
|
+
constructor(nodeType?: string | null, name?: string | null, varying?: boolean);
|
|
12
11
|
}
|
|
13
12
|
|
|
14
|
-
export const property: (type?:
|
|
15
|
-
export const varyingProperty: (type?:
|
|
13
|
+
export const property: (type?: string | null, name?: string | null) => ShaderNodeObject<PropertyNode>;
|
|
14
|
+
export const varyingProperty: (type?: string | null, name?: string | null) => ShaderNodeObject<PropertyNode>;
|
|
16
15
|
|
|
17
16
|
export const diffuseColor: ShaderNodeObject<PropertyNode>;
|
|
18
17
|
export const roughness: ShaderNodeObject<PropertyNode>;
|
|
@@ -40,3 +39,4 @@ export const transmission: ShaderNodeObject<PropertyNode>;
|
|
|
40
39
|
export const thickness: ShaderNodeObject<PropertyNode>;
|
|
41
40
|
export const attenuationDistance: ShaderNodeObject<PropertyNode>;
|
|
42
41
|
export const attenuationColor: ShaderNodeObject<PropertyNode>;
|
|
42
|
+
export const dispersion: ShaderNodeObject<PropertyNode>;
|
|
@@ -7,5 +7,11 @@ export default class StackNode extends Node {
|
|
|
7
7
|
|
|
8
8
|
constructor();
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
add(node: Node): this;
|
|
11
|
+
|
|
12
|
+
if(boolNode: Node, method: () => void): this;
|
|
13
|
+
|
|
14
|
+
elseIf(node: Node, method: () => void): this;
|
|
15
|
+
|
|
16
|
+
else(node: Node, method: () => void): this;
|
|
11
17
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { NodeTypeOption } from "./constants.js";
|
|
2
1
|
import Node from "./Node.js";
|
|
3
2
|
import NodeBuilder from "./NodeBuilder.js";
|
|
4
3
|
|
|
5
4
|
export default class TempNode extends Node {
|
|
6
5
|
isTempNode: true;
|
|
7
6
|
|
|
8
|
-
constructor(type:
|
|
7
|
+
constructor(type: string | null);
|
|
9
8
|
|
|
10
9
|
hasDependencies(builder: NodeBuilder): boolean;
|
|
11
10
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Node from "./Node.js";
|
|
2
|
+
|
|
3
|
+
export default class UniformGroupNode extends Node {
|
|
4
|
+
name: string;
|
|
5
|
+
version: number;
|
|
6
|
+
|
|
7
|
+
shared: boolean;
|
|
8
|
+
|
|
9
|
+
readonly isUniformGroup: true;
|
|
10
|
+
|
|
11
|
+
constructor(name: string, shared?: boolean);
|
|
12
|
+
|
|
13
|
+
set needsUpdate(value: boolean);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const uniformGroup: (name: string) => UniformGroupNode;
|
|
17
|
+
export const sharedUniformGroup: (name: string) => UniformGroupNode;
|
|
18
|
+
|
|
19
|
+
export const frameGroup: UniformGroupNode;
|
|
20
|
+
export const renderGroup: UniformGroupNode;
|
|
21
|
+
export const objectGroup: UniformGroupNode;
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NodeTypeOption } from "./constants.js";
|
|
1
|
+
import { NodeUpdateType } from "./constants.js";
|
|
3
2
|
import InputNode from "./InputNode.js";
|
|
4
3
|
import Node from "./Node.js";
|
|
5
4
|
import NodeBuilder from "./NodeBuilder.js";
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import NodeFrame from "./NodeFrame.js";
|
|
6
|
+
import UniformGroupNode from "./UniformGroupNode.js";
|
|
7
|
+
declare class UniformNode<TValue> extends InputNode<TValue> {
|
|
8
8
|
readonly isUniformNode: true;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
name: string;
|
|
10
|
+
groupNode: UniformGroupNode;
|
|
11
|
+
constructor(value: TValue, nodeType?: string | null);
|
|
12
|
+
label(name: string): this;
|
|
13
|
+
setGroup(group: UniformGroupNode): this;
|
|
14
|
+
getGroup(): UniformGroupNode;
|
|
12
15
|
getUniformHash(builder: NodeBuilder): string;
|
|
16
|
+
onUpdate(callback: (frame: NodeFrame, self: this) => TValue | undefined, updateType: NodeUpdateType): this;
|
|
17
|
+
generate(builder: NodeBuilder, output: string | null): string;
|
|
13
18
|
}
|
|
14
|
-
|
|
15
|
-
export const uniform: <
|
|
16
|
-
arg1: InputNode<
|
|
19
|
+
export default UniformNode;
|
|
20
|
+
export declare const uniform: <TValue>(
|
|
21
|
+
arg1: InputNode<TValue> | TValue,
|
|
17
22
|
arg2?: Node | string,
|
|
18
|
-
) => ShaderNodeObject<UniformNode<
|
|
23
|
+
) => import("../shadernode/ShaderNode.js").ShaderNodeObject<UniformNode<TValue>>;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
|
|
2
2
|
import Node from "./Node.js";
|
|
3
|
+
import NodeBuilder from "./NodeBuilder.js";
|
|
4
|
+
import NodeVarying from "./NodeVarying.js";
|
|
3
5
|
|
|
4
6
|
export default class VaryingNode extends Node {
|
|
5
7
|
node: Node;
|
|
6
8
|
name: string | null;
|
|
7
9
|
|
|
8
10
|
constructor(node: Node, name?: string | null);
|
|
11
|
+
|
|
12
|
+
setupVarying(builder: NodeBuilder): NodeVarying;
|
|
9
13
|
}
|
|
10
14
|
|
|
11
15
|
export const varying: (node: NodeRepresentation, name?: string) => ShaderNodeObject<VaryingNode>;
|
|
@@ -1,79 +1,27 @@
|
|
|
1
|
-
export
|
|
2
|
-
VERTEX
|
|
3
|
-
FRAGMENT
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
| "float"
|
|
29
|
-
| "vec2"
|
|
30
|
-
| "vec3"
|
|
31
|
-
| "vec4"
|
|
32
|
-
| "mat2"
|
|
33
|
-
| "mat3"
|
|
34
|
-
| "mat4"
|
|
35
|
-
| "code" /* CodeNode */
|
|
36
|
-
| "color" /* NodeUtis.getValueType */
|
|
37
|
-
| "uint"
|
|
38
|
-
| "int" /* NodeBuilder.getComponentType */
|
|
39
|
-
| "void"
|
|
40
|
-
| "property"
|
|
41
|
-
| "sampler"
|
|
42
|
-
| "texture"
|
|
43
|
-
| "cubeTexture" /* NodeBuilder.isReference */
|
|
44
|
-
| "ivec2"
|
|
45
|
-
| "uvec2"
|
|
46
|
-
| "bvec2" /* ShaderNodeBaseElements */
|
|
47
|
-
| "ivec3"
|
|
48
|
-
| "uvec3"
|
|
49
|
-
| "bvec3"
|
|
50
|
-
| "ivec4"
|
|
51
|
-
| "uvec4"
|
|
52
|
-
| "bvec4"
|
|
53
|
-
| "imat3"
|
|
54
|
-
| "umat3"
|
|
55
|
-
| "bmat3"
|
|
56
|
-
| "imat4"
|
|
57
|
-
| "umat4"
|
|
58
|
-
| "bmat4";
|
|
59
|
-
|
|
60
|
-
export type SwizzleCharacter = "x" | "y" | "z" | "w" | "r" | "g" | "b" | "a" | "s" | "t" | "p" | "q";
|
|
61
|
-
|
|
62
|
-
export type SwizzleOption = Exclude<
|
|
63
|
-
| `${SwizzleCharacter}`
|
|
64
|
-
| `${SwizzleCharacter}${SwizzleCharacter}`
|
|
65
|
-
| `${SwizzleCharacter}${SwizzleCharacter}${SwizzleCharacter}`
|
|
66
|
-
| `${SwizzleCharacter}${SwizzleCharacter}${SwizzleCharacter}${SwizzleCharacter}`,
|
|
67
|
-
"abs" | "sqrt"
|
|
68
|
-
>;
|
|
69
|
-
|
|
70
|
-
/** Should be the same type as Object3D.userData */
|
|
71
|
-
export type NodeUserData = Record<string, any>;
|
|
72
|
-
|
|
73
|
-
/** generic key value type,curretly used by nodes */
|
|
74
|
-
export interface AnyObject {
|
|
75
|
-
[key: string]: any;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/** a generic JSON type, used by nodes only */
|
|
79
|
-
export type AnyJson = any;
|
|
1
|
+
export declare const NodeShaderStage: {
|
|
2
|
+
readonly VERTEX: "vertex";
|
|
3
|
+
readonly FRAGMENT: "fragment";
|
|
4
|
+
};
|
|
5
|
+
export declare const NodeUpdateType: {
|
|
6
|
+
readonly NONE: "none";
|
|
7
|
+
readonly FRAME: "frame";
|
|
8
|
+
readonly RENDER: "render";
|
|
9
|
+
readonly OBJECT: "object";
|
|
10
|
+
};
|
|
11
|
+
export declare const NodeType: {
|
|
12
|
+
readonly BOOLEAN: "bool";
|
|
13
|
+
readonly INTEGER: "int";
|
|
14
|
+
readonly FLOAT: "float";
|
|
15
|
+
readonly VECTOR2: "vec2";
|
|
16
|
+
readonly VECTOR3: "vec3";
|
|
17
|
+
readonly VECTOR4: "vec4";
|
|
18
|
+
readonly MATRIX2: "mat2";
|
|
19
|
+
readonly MATRIX3: "mat3";
|
|
20
|
+
readonly MATRIX4: "mat4";
|
|
21
|
+
};
|
|
22
|
+
export type NodeShaderStage = "vertex" | "fragment" | "compute";
|
|
23
|
+
export type NodeUpdateType = "none" | "frame" | "render" | "object";
|
|
24
|
+
export declare const defaultShaderStages: NodeShaderStage[];
|
|
25
|
+
export declare const defaultBuildStages: string[];
|
|
26
|
+
export declare const shaderStages: NodeShaderStage[];
|
|
27
|
+
export declare const vectorComponents: string[];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import TextureNode from "../accessors/TextureNode.js";
|
|
2
|
+
import Node from "../core/Node.js";
|
|
3
|
+
import TempNode from "../core/TempNode.js";
|
|
4
|
+
import UniformNode from "../core/UniformNode.js";
|
|
5
|
+
import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
|
|
6
|
+
|
|
7
|
+
export default class DepthOfFieldNode extends TempNode {
|
|
8
|
+
textureNode: TextureNode;
|
|
9
|
+
viewZNode: Node;
|
|
10
|
+
|
|
11
|
+
focus: UniformNode<number>;
|
|
12
|
+
aperture: UniformNode<number>;
|
|
13
|
+
maxblur: UniformNode<number>;
|
|
14
|
+
|
|
15
|
+
constructor(textureNode: TextureNode, viewZNode: Node, focus?: number, aperture?: number, maxblur?: number);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const dof: (
|
|
19
|
+
node: NodeRepresentation,
|
|
20
|
+
viewZNode: NodeRepresentation,
|
|
21
|
+
focus?: number,
|
|
22
|
+
aperture?: number,
|
|
23
|
+
maxblur?: number,
|
|
24
|
+
) => ShaderNodeObject<DepthOfFieldNode>;
|
|
25
|
+
|
|
26
|
+
declare module "../shadernode/ShaderNode.js" {
|
|
27
|
+
interface NodeElements {
|
|
28
|
+
dof: typeof dof;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Vector2 } from "three";
|
|
2
|
+
import TextureNode from "../accessors/TextureNode.js";
|
|
3
|
+
import Node from "../core/Node.js";
|
|
4
|
+
import TempNode from "../core/TempNode.js";
|
|
5
|
+
import UniformNode from "../core/UniformNode.js";
|
|
6
|
+
import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
|
|
7
|
+
|
|
8
|
+
export default class DotScreenNode extends TempNode {
|
|
9
|
+
colorNode: Node;
|
|
10
|
+
center: UniformNode<Vector2>;
|
|
11
|
+
angle: UniformNode<number>;
|
|
12
|
+
scale: UniformNode<number>;
|
|
13
|
+
|
|
14
|
+
constructor(colorNode: Node, center?: Vector2, angle?: number, scale?: number);
|
|
15
|
+
|
|
16
|
+
getTextureNode(): ShaderNodeObject<TextureNode>;
|
|
17
|
+
|
|
18
|
+
setSize(width: number, height: number): void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const dotScreen: (
|
|
22
|
+
node: NodeRepresentation,
|
|
23
|
+
center?: Vector2,
|
|
24
|
+
angle?: number,
|
|
25
|
+
scale?: number,
|
|
26
|
+
) => ShaderNodeObject<DotScreenNode>;
|
|
27
|
+
|
|
28
|
+
declare module "../shadernode/ShaderNode.js" {
|
|
29
|
+
interface NodeElements {
|
|
30
|
+
dotScreen: typeof dotScreen;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import TextureNode from "../accessors/TextureNode.js";
|
|
2
|
+
import TempNode from "../core/TempNode.js";
|
|
3
|
+
import UniformNode from "../core/UniformNode.js";
|
|
4
|
+
import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
|
|
5
|
+
|
|
6
|
+
export default class RGBShiftNode extends TempNode {
|
|
7
|
+
textureNode: TextureNode;
|
|
8
|
+
amount: UniformNode<number>;
|
|
9
|
+
angle: UniformNode<number>;
|
|
10
|
+
|
|
11
|
+
constructor(textureNode: TextureNode, amount?: number, angle?: number);
|
|
12
|
+
|
|
13
|
+
getTextureNode(): TextureNode;
|
|
14
|
+
|
|
15
|
+
setSize(width: number, height: number): void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const rgbShift: (node: NodeRepresentation, amount?: number, angle?: number) => ShaderNodeObject<RGBShiftNode>;
|
|
19
|
+
|
|
20
|
+
declare module "../shadernode/ShaderNode.js" {
|
|
21
|
+
interface NodeElements {
|
|
22
|
+
rgbShift: typeof rgbShift;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import TextureNode from "../accessors/TextureNode.js";
|
|
2
|
+
import TempNode from "../core/TempNode.js";
|
|
3
|
+
import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
|
|
4
|
+
|
|
5
|
+
export default class SobelOperatorNode extends TempNode {
|
|
6
|
+
textureNode: TextureNode;
|
|
7
|
+
|
|
8
|
+
constructor(textureNode: TextureNode);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const sobel: (node: NodeRepresentation) => ShaderNodeObject<SobelOperatorNode>;
|
|
12
|
+
|
|
13
|
+
declare module "../shadernode/ShaderNode.js" {
|
|
14
|
+
interface NodeElements {
|
|
15
|
+
sobel: typeof sobel;
|
|
16
|
+
}
|
|
17
|
+
}
|