@types/three 0.178.0 → 0.179.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/Addons.d.ts +1 -2
- three/examples/jsm/exporters/USDZExporter.d.ts +1 -0
- three/examples/jsm/loaders/EXRLoader.d.ts +18 -5
- three/examples/jsm/loaders/USDLoader.d.ts +9 -0
- three/examples/jsm/loaders/USDZLoader.d.ts +11 -8
- three/examples/jsm/tsl/display/TRAANode.d.ts +22 -0
- three/package.json +4 -4
- three/src/Three.Core.d.ts +1 -0
- three/src/Three.TSL.d.ts +55 -13
- three/src/animation/KeyframeTrack.d.ts +7 -2
- three/src/animation/tracks/BooleanKeyframeTrack.d.ts +2 -2
- three/src/animation/tracks/StringKeyframeTrack.d.ts +2 -2
- three/src/cameras/Camera.d.ts +15 -8
- three/src/constants.d.ts +3 -1
- three/{examples/jsm/misc → src/core}/Timer.d.ts +3 -17
- three/src/helpers/SkeletonHelper.d.ts +7 -12
- three/src/loaders/FileLoader.d.ts +2 -2
- three/src/loaders/ImageBitmapLoader.d.ts +9 -9
- three/src/loaders/Loader.d.ts +1 -0
- three/src/loaders/LoadingManager.d.ts +23 -19
- three/src/materials/MeshPhysicalMaterial.d.ts +12 -0
- three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
- three/src/materials/nodes/PointsNodeMaterial.d.ts +5 -0
- three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +22 -1
- three/src/math/Frustum.d.ts +1 -1
- three/src/math/Line3.d.ts +1 -0
- three/src/math/Matrix4.d.ts +2 -0
- three/src/nodes/Nodes.d.ts +1 -0
- three/src/nodes/TSL.d.ts +1 -0
- three/src/nodes/accessors/TextureNode.d.ts +2 -0
- three/src/nodes/core/ContextNode.d.ts +7 -1
- three/src/nodes/core/Node.d.ts +9 -2
- three/src/nodes/core/UniformNode.d.ts +9 -0
- three/src/nodes/core/VarNode.d.ts +11 -1
- three/src/nodes/display/PassNode.d.ts +10 -0
- three/src/nodes/gpgpu/ComputeNode.d.ts +15 -6
- three/src/nodes/materialx/MaterialXNodes.d.ts +85 -20
- three/src/nodes/materialx/lib/mx_noise.d.ts +28 -0
- three/src/nodes/math/MathNode.d.ts +10 -2
- three/src/nodes/tsl/TSLCore.d.ts +16 -0
- three/src/nodes/utils/EventNode.d.ts +21 -0
- three/src/nodes/utils/RTTNode.d.ts +2 -0
- three/src/renderers/common/Color4.d.ts +2 -2
- three/src/renderers/common/Renderer.d.ts +16 -8
- three/src/renderers/common/SampledTexture.d.ts +2 -9
- three/src/renderers/common/Sampler.d.ts +9 -3
- three/src/renderers/common/Storage3DTexture.d.ts +2 -0
- three/src/renderers/common/StorageArrayTexture.d.ts +2 -0
- three/src/renderers/common/StorageTexture.d.ts +2 -0
- three/src/renderers/common/XRManager.d.ts +1 -0
- three/src/renderers/webgl/WebGLCapabilities.d.ts +2 -2
- three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +0 -1
- three/src/renderers/webxr/WebXRDepthSensing.d.ts +4 -5
- three/src/renderers/webxr/WebXRManager.d.ts +4 -2
- three/src/textures/ExternalTexture.d.ts +11 -0
- three/examples/jsm/tsl/display/TRAAPassNode.d.ts +0 -15
|
@@ -2,21 +2,21 @@ import { Loader } from "./Loader.js";
|
|
|
2
2
|
import { LoadingManager } from "./LoadingManager.js";
|
|
3
3
|
|
|
4
4
|
export class ImageBitmapLoader extends Loader<ImageBitmap> {
|
|
5
|
+
readonly isImageBitmapLoader: true;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @default { premultiplyAlpha: 'none' }
|
|
9
|
+
*/
|
|
10
|
+
options: ImageBitmapOptions;
|
|
11
|
+
|
|
5
12
|
constructor(manager?: LoadingManager);
|
|
6
13
|
|
|
14
|
+
setOptions(options: ImageBitmapOptions): this;
|
|
15
|
+
|
|
7
16
|
load(
|
|
8
17
|
url: string,
|
|
9
18
|
onLoad?: (data: ImageBitmap) => void,
|
|
10
19
|
onProgress?: (event: ProgressEvent) => void,
|
|
11
20
|
onError?: (err: unknown) => void,
|
|
12
21
|
): void;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @default { premultiplyAlpha: 'none' }
|
|
16
|
-
*/
|
|
17
|
-
options: undefined | object;
|
|
18
|
-
|
|
19
|
-
readonly isImageBitmapLoader: true;
|
|
20
|
-
|
|
21
|
-
setOptions(options: object): ImageBitmapLoader;
|
|
22
22
|
}
|
three/src/loaders/Loader.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export class Loader<TData = unknown, TUrl = string> {
|
|
|
45
45
|
setPath(path: string): this;
|
|
46
46
|
setResourcePath(resourcePath: string): this;
|
|
47
47
|
setRequestHeader(requestHeader: { [header: string]: string }): this;
|
|
48
|
+
abort(): this;
|
|
48
49
|
|
|
49
50
|
static DEFAULT_MATERIAL_NAME: string;
|
|
50
51
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { Loader } from "./Loader.js";
|
|
2
2
|
|
|
3
|
-
export const DefaultLoadingManager: LoadingManager;
|
|
4
|
-
|
|
5
3
|
/**
|
|
6
4
|
* Handles and keeps track of loaded and pending data.
|
|
7
5
|
*/
|
|
8
|
-
|
|
6
|
+
declare class LoadingManager {
|
|
9
7
|
constructor(
|
|
10
8
|
onLoad?: () => void,
|
|
11
9
|
onProgress?: (url: string, loaded: number, total: number) => void,
|
|
@@ -18,7 +16,7 @@ export class LoadingManager {
|
|
|
18
16
|
* @param loaded The number of items already loaded so far.
|
|
19
17
|
* @param total The total amount of items to be loaded.
|
|
20
18
|
*/
|
|
21
|
-
onStart
|
|
19
|
+
onStart: ((url: string, loaded: number, total: number) => void) | undefined;
|
|
22
20
|
|
|
23
21
|
/**
|
|
24
22
|
* Will be called when all items finish loading.
|
|
@@ -42,28 +40,34 @@ export class LoadingManager {
|
|
|
42
40
|
*/
|
|
43
41
|
onError: (url: string) => void;
|
|
44
42
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
*/
|
|
51
|
-
setURLModifier(callback?: (url: string) => string): this;
|
|
43
|
+
abortController: AbortController;
|
|
44
|
+
|
|
45
|
+
itemStart: (url: string) => void;
|
|
46
|
+
itemEnd: (url: string) => void;
|
|
47
|
+
itemError: (url: string) => void;
|
|
52
48
|
|
|
53
49
|
/**
|
|
54
50
|
* Given a URL, uses the URL modifier callback (if any) and returns a resolved URL.
|
|
55
51
|
* If no URL modifier is set, returns the original URL.
|
|
56
52
|
* @param url the url to load
|
|
57
53
|
*/
|
|
58
|
-
resolveURL(url: string)
|
|
54
|
+
resolveURL: (url: string) => string;
|
|
59
55
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
/**
|
|
57
|
+
* If provided, the callback will be passed each resource URL before a request is sent.
|
|
58
|
+
* The callback may return the original URL, or a new URL to override loading behavior.
|
|
59
|
+
* This behavior can be used to load assets from .ZIP files, drag-and-drop APIs, and Data URIs.
|
|
60
|
+
* @param callback URL modifier callback. Called with url argument, and must return resolvedURL.
|
|
61
|
+
*/
|
|
62
|
+
setURLModifier: (callback?: (url: string) => string) => this;
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
addHandler: (regex: RegExp, loader: Loader) => this;
|
|
65
|
+
removeHandler: (regex: RegExp) => this;
|
|
66
|
+
getHandler: (file: string) => Loader | null;
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
removeHandler(regex: RegExp): this;
|
|
68
|
-
getHandler(file: string): Loader | null;
|
|
68
|
+
abort: () => this;
|
|
69
69
|
}
|
|
70
|
+
|
|
71
|
+
declare const DefaultLoadingManager: LoadingManager;
|
|
72
|
+
|
|
73
|
+
export { DefaultLoadingManager, LoadingManager };
|
|
@@ -60,6 +60,18 @@ export interface MeshPhysicalMaterialProperties extends MeshStandardMaterialProp
|
|
|
60
60
|
* @default 1.5
|
|
61
61
|
*/
|
|
62
62
|
ior: number;
|
|
63
|
+
/**
|
|
64
|
+
* Degree of reflectivity, from `0.0` to `1.0`. Default is `0.5`, which
|
|
65
|
+
* corresponds to an index-of-refraction of `1.5`.
|
|
66
|
+
*
|
|
67
|
+
* This models the reflectivity of non-metallic materials. It has no effect
|
|
68
|
+
* when `metalness` is `1.0`
|
|
69
|
+
*
|
|
70
|
+
* @name MeshPhysicalMaterial#reflectivity
|
|
71
|
+
* @default 0.5
|
|
72
|
+
*/
|
|
73
|
+
get reflectivity(): number;
|
|
74
|
+
set reflectivity(reflectivity: number);
|
|
63
75
|
/**
|
|
64
76
|
* The red channel of this texture is multiplied against `iridescence`, for per-pixel
|
|
65
77
|
* control over iridescence.
|
|
@@ -7,6 +7,11 @@ export interface PointsNodeMaterialNodeProperties extends SpriteNodeMaterialNode
|
|
|
7
7
|
/**
|
|
8
8
|
* This node property provides an additional way to set the point size.
|
|
9
9
|
*
|
|
10
|
+
* Note that WebGPU only supports point primitives with 1 pixel size. Consequently,
|
|
11
|
+
* this node has no effect when the material is used with {@link Points} and a WebGPU
|
|
12
|
+
* backend. If an application wants to render points with a size larger than 1 pixel,
|
|
13
|
+
* the material should be used with {@link Sprite} and instancing.
|
|
14
|
+
*
|
|
10
15
|
* @default null
|
|
11
16
|
*/
|
|
12
17
|
sizeNode: Node;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { BufferAttribute } from "../../../core/BufferAttribute.js";
|
|
2
|
+
import { Light } from "../../../lights/Light.js";
|
|
2
3
|
import { Matrix4 } from "../../../math/Matrix4.js";
|
|
3
4
|
import NodeBuilder from "../../../nodes/core/NodeBuilder.js";
|
|
4
5
|
import NodeFrame from "../../../nodes/core/NodeFrame.js";
|
|
6
|
+
import LightsNode from "../../../nodes/lighting/LightsNode.js";
|
|
5
7
|
import Renderer from "../../../renderers/common/Renderer.js";
|
|
6
8
|
import RenderObject from "../../../renderers/common/RenderObject.js";
|
|
7
9
|
import { Material } from "../../Material.js";
|
|
@@ -84,6 +86,9 @@ interface RenderObjectData {
|
|
|
84
86
|
worldMatrix: Matrix4;
|
|
85
87
|
version?: number;
|
|
86
88
|
}
|
|
89
|
+
interface LightData {
|
|
90
|
+
map: number;
|
|
91
|
+
}
|
|
87
92
|
/**
|
|
88
93
|
* This class is used by {@link WebGPURenderer} as management component.
|
|
89
94
|
* It's primary purpose is to determine whether render objects require a
|
|
@@ -150,9 +155,25 @@ declare class NodeMaterialObserver {
|
|
|
150
155
|
* Returns `true` if the given render object has not changed its state.
|
|
151
156
|
*
|
|
152
157
|
* @param {RenderObject} renderObject - The render object.
|
|
158
|
+
* @param {Array<Light>} lightsData - The current material lights.
|
|
153
159
|
* @return {boolean} Whether the given render object has changed its state or not.
|
|
154
160
|
*/
|
|
155
|
-
equals(renderObject: RenderObject): boolean;
|
|
161
|
+
equals(renderObject: RenderObject, lightsData: Light[]): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Returns the lights data for the given material lights.
|
|
164
|
+
*
|
|
165
|
+
* @param {Array<Light>} materialLights - The material lights.
|
|
166
|
+
* @return {Array<Object>} The lights data for the given material lights.
|
|
167
|
+
*/
|
|
168
|
+
getLightsData(materialLights: Light[]): LightData[];
|
|
169
|
+
/**
|
|
170
|
+
* Returns the lights for the given lights node and render ID.
|
|
171
|
+
*
|
|
172
|
+
* @param {LightsNode} lightsNode - The lights node.
|
|
173
|
+
* @param {number} renderId - The render ID.
|
|
174
|
+
* @return {Array} The lights for the given lights node and render ID.
|
|
175
|
+
*/
|
|
176
|
+
getLights(lightsNode: LightsNode, renderId: number): LightData[];
|
|
156
177
|
/**
|
|
157
178
|
* Checks if the given render object requires a refresh.
|
|
158
179
|
*
|
three/src/math/Frustum.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export class Frustum {
|
|
|
21
21
|
set(p0: Plane, p1: Plane, p2: Plane, p3: Plane, p4: Plane, p5: Plane): Frustum;
|
|
22
22
|
clone(): this;
|
|
23
23
|
copy(frustum: Frustum): this;
|
|
24
|
-
setFromProjectionMatrix(m: Matrix4, coordinateSystem?: CoordinateSystem): this;
|
|
24
|
+
setFromProjectionMatrix(m: Matrix4, coordinateSystem?: CoordinateSystem, reversedDepth?: boolean): this;
|
|
25
25
|
intersectsObject(object: Object3D): boolean;
|
|
26
26
|
intersectsSprite(sprite: Sprite): boolean;
|
|
27
27
|
intersectsSphere(sphere: Sphere): boolean;
|
three/src/math/Line3.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export class Line3 {
|
|
|
24
24
|
at(t: number, target: Vector3): Vector3;
|
|
25
25
|
closestPointToPointParameter(point: Vector3, clampToLine?: boolean): number;
|
|
26
26
|
closestPointToPoint(point: Vector3, clampToLine: boolean, target: Vector3): Vector3;
|
|
27
|
+
distanceSqToLine3(line: Line3, c1?: Vector3, c2?: Vector3): number;
|
|
27
28
|
applyMatrix4(matrix: Matrix4): Line3;
|
|
28
29
|
equals(line: Line3): boolean;
|
|
29
30
|
}
|
three/src/math/Matrix4.d.ts
CHANGED
|
@@ -246,6 +246,7 @@ export class Matrix4 {
|
|
|
246
246
|
near: number,
|
|
247
247
|
far: number,
|
|
248
248
|
coordinateSystem?: CoordinateSystem,
|
|
249
|
+
reversedDepth?: boolean,
|
|
249
250
|
): this;
|
|
250
251
|
|
|
251
252
|
/**
|
|
@@ -259,6 +260,7 @@ export class Matrix4 {
|
|
|
259
260
|
near: number,
|
|
260
261
|
far: number,
|
|
261
262
|
coordinateSystem?: CoordinateSystem,
|
|
263
|
+
reversedDepth?: boolean,
|
|
262
264
|
): this;
|
|
263
265
|
|
|
264
266
|
equals(matrix: Matrix4): boolean;
|
three/src/nodes/Nodes.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ export { NodeUtils };
|
|
|
53
53
|
export { default as ArrayElementNode } from "./utils/ArrayElementNode.js";
|
|
54
54
|
export { default as ConvertNode } from "./utils/ConvertNode.js";
|
|
55
55
|
export { default as DebugNode } from "./utils/DebugNode.js";
|
|
56
|
+
export { default as EventNode } from "./utils/EventNode.js";
|
|
56
57
|
export { default as FunctionOverloadingNode } from "./utils/FunctionOverloadingNode.js";
|
|
57
58
|
export { default as JoinNode } from "./utils/JoinNode.js";
|
|
58
59
|
export { default as LoopNode } from "./utils/LoopNode.js";
|
three/src/nodes/TSL.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export * from "./math/TriNoise3D.js";
|
|
|
25
25
|
|
|
26
26
|
// utils
|
|
27
27
|
export * from "./utils/EquirectUV.js";
|
|
28
|
+
export * from "./utils/EventNode.js";
|
|
28
29
|
export * from "./utils/FunctionOverloadingNode.js";
|
|
29
30
|
export * from "./utils/LoopNode.js";
|
|
30
31
|
export * from "./utils/MatcapUV.js";
|
|
@@ -38,6 +38,8 @@ export default class TextureNode extends UniformNode<Texture> {
|
|
|
38
38
|
|
|
39
39
|
sample(uvNode: Node): ShaderNodeObject<Node>;
|
|
40
40
|
|
|
41
|
+
load(uvNode: Node): ShaderNodeObject<Node>;
|
|
42
|
+
|
|
41
43
|
blur(amountNode: Node): ShaderNodeObject<Node>;
|
|
42
44
|
|
|
43
45
|
level(levelNode: Node): ShaderNodeObject<Node>;
|
|
@@ -14,11 +14,17 @@ declare class ContextNode extends Node {
|
|
|
14
14
|
export default ContextNode;
|
|
15
15
|
|
|
16
16
|
export const context: (node: Node, context?: NodeBuilderContext) => ShaderNodeObject<ContextNode>;
|
|
17
|
-
export const
|
|
17
|
+
export const setName: (node: Node, label: string) => ShaderNodeObject<ContextNode>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated "label()" has been deprecated. Use "setName()" instead.
|
|
21
|
+
*/
|
|
22
|
+
export function label(node: Node, label: string): ShaderNodeObject<ContextNode>;
|
|
18
23
|
|
|
19
24
|
declare module "../tsl/TSLCore.js" {
|
|
20
25
|
interface NodeElements {
|
|
21
26
|
context: typeof context;
|
|
22
27
|
label: typeof label;
|
|
28
|
+
setName: typeof setName;
|
|
23
29
|
}
|
|
24
30
|
}
|
three/src/nodes/core/Node.d.ts
CHANGED
|
@@ -267,10 +267,17 @@ declare class Node extends EventDispatcher<{
|
|
|
267
267
|
* @return {Node} The shared node if possible. Otherwise `this` is returned.
|
|
268
268
|
*/
|
|
269
269
|
getShared(builder: NodeBuilder): Node;
|
|
270
|
+
/**
|
|
271
|
+
* Returns the number of elements in the node array.
|
|
272
|
+
*
|
|
273
|
+
* @param {NodeBuilder} builder - The current node builder.
|
|
274
|
+
* @return {?number} The number of elements in the node array.
|
|
275
|
+
*/
|
|
276
|
+
getArrayCount(builder: NodeBuilder): number | null;
|
|
270
277
|
/**
|
|
271
278
|
* Represents the setup stage which is the first step of the build process, see {@link Node#build} method.
|
|
272
|
-
* This method is often overwritten in derived modules to prepare the node which is used as
|
|
273
|
-
*
|
|
279
|
+
* This method is often overwritten in derived modules to prepare the node which is used as a node's output/result.
|
|
280
|
+
* If an output node is prepared, then it must be returned in the `return` statement of the derived module's setup function.
|
|
274
281
|
*
|
|
275
282
|
* @param {NodeBuilder} builder - The current node builder.
|
|
276
283
|
* @return {?Node} The output node.
|
|
@@ -27,6 +27,14 @@ declare class UniformNode<TValue> extends InputNode<TValue> {
|
|
|
27
27
|
* @param {string} name - The name of the uniform.
|
|
28
28
|
* @return {UniformNode} A reference to this node.
|
|
29
29
|
*/
|
|
30
|
+
setName(name: string): this;
|
|
31
|
+
/**
|
|
32
|
+
* Sets the {@link UniformNode#name} property.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated
|
|
35
|
+
* @param {string} name - The name of the uniform.
|
|
36
|
+
* @return {UniformNode} A reference to this node.
|
|
37
|
+
*/
|
|
30
38
|
label(name: string): this;
|
|
31
39
|
/**
|
|
32
40
|
* Sets the {@link UniformNode#groupNode} property.
|
|
@@ -50,6 +58,7 @@ declare class UniformNode<TValue> extends InputNode<TValue> {
|
|
|
50
58
|
*/
|
|
51
59
|
getUniformHash(builder: NodeBuilder): string;
|
|
52
60
|
onUpdate(callback: (frame: NodeFrame, self: this) => TValue | undefined, updateType: NodeUpdateType): this;
|
|
61
|
+
getInputType(builder: NodeBuilder): string | null;
|
|
53
62
|
generate(builder: NodeBuilder, output: string | null): string;
|
|
54
63
|
}
|
|
55
64
|
export default UniformNode;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ShaderNodeObject } from "../tsl/TSLCore.js";
|
|
2
2
|
import Node from "./Node.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
declare class VarNode extends Node {
|
|
5
5
|
node: Node;
|
|
6
6
|
name: string | null;
|
|
7
7
|
|
|
@@ -9,17 +9,27 @@ export default class VarNode extends Node {
|
|
|
9
9
|
|
|
10
10
|
readOnly: boolean;
|
|
11
11
|
|
|
12
|
+
intent: boolean;
|
|
13
|
+
|
|
12
14
|
constructor(node: Node, name?: string | null, readOnly?: boolean);
|
|
15
|
+
|
|
16
|
+
setIntent(value: boolean): this;
|
|
17
|
+
getIntent(): boolean;
|
|
13
18
|
}
|
|
14
19
|
|
|
20
|
+
export default VarNode;
|
|
21
|
+
|
|
15
22
|
export const Var: (node: Node, name?: string | null) => ShaderNodeObject<VarNode>;
|
|
16
23
|
|
|
17
24
|
export const Const: (node: Node, name?: string | null) => ShaderNodeObject<VarNode>;
|
|
18
25
|
|
|
26
|
+
export const VarIntent: (node: Node) => Node;
|
|
27
|
+
|
|
19
28
|
declare module "../tsl/TSLCore.js" {
|
|
20
29
|
interface NodeElements {
|
|
21
30
|
toVar: (node: Node, name?: string | null) => ShaderNodeObject<VarNode>;
|
|
22
31
|
toConst: (node: Node, name?: string | null) => ShaderNodeObject<VarNode>;
|
|
32
|
+
toVarIntent: (node: Node) => Node;
|
|
23
33
|
}
|
|
24
34
|
}
|
|
25
35
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Camera } from "../../cameras/Camera.js";
|
|
2
2
|
import { Layers } from "../../core/Layers.js";
|
|
3
3
|
import { RenderTarget, RenderTargetOptions } from "../../core/RenderTarget.js";
|
|
4
|
+
import { Vector4 } from "../../math/Vector4.js";
|
|
5
|
+
import Renderer from "../../renderers/common/Renderer.js";
|
|
4
6
|
import { Scene } from "../../scenes/Scene.js";
|
|
5
7
|
import { Texture } from "../../textures/Texture.js";
|
|
6
8
|
import TextureNode from "../accessors/TextureNode.js";
|
|
@@ -61,8 +63,16 @@ declare class PassNode extends TempNode {
|
|
|
61
63
|
|
|
62
64
|
getLinearDepthNode(name?: string): ShaderNodeObject<Node>;
|
|
63
65
|
|
|
66
|
+
compileAsync(renderer: Renderer): Promise<void>;
|
|
67
|
+
|
|
64
68
|
setSize(width: number, height: number): void;
|
|
65
69
|
|
|
70
|
+
setScissor(x: number, y: number, width: number, height: number): void;
|
|
71
|
+
setScissor(x: Vector4): void;
|
|
72
|
+
|
|
73
|
+
setViewport(x: number, y: number, width: number, height: number): void;
|
|
74
|
+
setViewport(x: Vector4): void;
|
|
75
|
+
|
|
66
76
|
setPixelRatio(pixelRatio: number): void;
|
|
67
77
|
|
|
68
78
|
dispose(): void;
|
|
@@ -3,24 +3,32 @@ import Node from "../core/Node.js";
|
|
|
3
3
|
import { ShaderNodeObject } from "../tsl/TSLCore.js";
|
|
4
4
|
|
|
5
5
|
export default class ComputeNode extends Node {
|
|
6
|
-
isComputeNode: true;
|
|
6
|
+
readonly isComputeNode: true;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
computeNode: Node;
|
|
9
9
|
workgroupSize: number[];
|
|
10
|
-
|
|
10
|
+
count: number | null;
|
|
11
11
|
name: string;
|
|
12
12
|
|
|
13
13
|
onInitFunction: ((args: { renderer: Renderer }) => void) | null;
|
|
14
14
|
|
|
15
|
-
constructor(computeNode: Node,
|
|
15
|
+
constructor(computeNode: Node, workgroupSize: number[]);
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
setCount(count: number): this;
|
|
18
|
+
getCount(): number | null;
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
setName(name: string): this;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated "label()" has been deprecated. Use "setName()" instead.
|
|
24
|
+
*/
|
|
25
|
+
label(name: string): this;
|
|
20
26
|
|
|
21
27
|
onInit(callback: ((args: { renderer: Renderer }) => void) | null): void;
|
|
22
28
|
}
|
|
23
29
|
|
|
30
|
+
export const computeKernel: (node: Node, workgroupSize?: number[]) => ShaderNodeObject<ComputeNode>;
|
|
31
|
+
|
|
24
32
|
export const compute: (
|
|
25
33
|
node: Node,
|
|
26
34
|
count: number,
|
|
@@ -30,5 +38,6 @@ export const compute: (
|
|
|
30
38
|
declare module "../tsl/TSLCore.js" {
|
|
31
39
|
interface NodeElements {
|
|
32
40
|
compute: typeof compute;
|
|
41
|
+
computeKernel: typeof computeKernel;
|
|
33
42
|
}
|
|
34
43
|
}
|
|
@@ -4,61 +4,96 @@ import { ShaderNodeObject } from "../tsl/TSLCore.js";
|
|
|
4
4
|
import { mx_hsvtorgb, mx_rgbtohsv } from "./lib/mx_hsv.js";
|
|
5
5
|
import { mx_srgb_texture_to_lin_rec709 } from "./lib/mx_transform_color.js";
|
|
6
6
|
|
|
7
|
-
export
|
|
7
|
+
export const mx_aastep: (threshold: Node | number, value: Node | number) => ShaderNodeObject<MathNode>;
|
|
8
8
|
|
|
9
|
-
export
|
|
9
|
+
export const mx_ramplr: (
|
|
10
10
|
valuel: Node | number,
|
|
11
11
|
valuer: Node | number,
|
|
12
12
|
texcoord?: Node,
|
|
13
|
-
)
|
|
14
|
-
export
|
|
13
|
+
) => ShaderNodeObject<MathNode>;
|
|
14
|
+
export const mx_ramptb: (
|
|
15
15
|
valuet: Node | number,
|
|
16
16
|
valueb: Node | number,
|
|
17
17
|
texcoord?: Node,
|
|
18
|
-
)
|
|
18
|
+
) => ShaderNodeObject<MathNode>;
|
|
19
19
|
|
|
20
|
-
export
|
|
20
|
+
export const mx_ramp4: (
|
|
21
|
+
valuetl: Node | number,
|
|
22
|
+
valuetr: Node | number,
|
|
23
|
+
valuebl: Node | number,
|
|
24
|
+
valuebr: Node | number,
|
|
25
|
+
texcoord?: Node,
|
|
26
|
+
) => ShaderNodeObject<MathNode>;
|
|
27
|
+
|
|
28
|
+
export const mx_splitlr: (
|
|
21
29
|
valuel: Node | number,
|
|
22
30
|
valuer: Node | number,
|
|
23
31
|
center: Node | number,
|
|
24
32
|
texcoord?: Node,
|
|
25
|
-
)
|
|
26
|
-
export
|
|
33
|
+
) => ShaderNodeObject<MathNode>;
|
|
34
|
+
export const mx_splittb: (
|
|
27
35
|
valuet: Node | number,
|
|
28
36
|
valueb: Node | number,
|
|
29
37
|
center: Node | number,
|
|
30
38
|
texcoord?: Node,
|
|
31
|
-
)
|
|
39
|
+
) => ShaderNodeObject<MathNode>;
|
|
32
40
|
|
|
33
|
-
export
|
|
41
|
+
export const mx_transform_uv: (
|
|
34
42
|
uv_scale?: Node | number,
|
|
35
43
|
uv_offset?: Node | number,
|
|
36
44
|
uv_geo?: Node,
|
|
37
|
-
)
|
|
45
|
+
) => ShaderNodeObject<Node>;
|
|
38
46
|
|
|
39
|
-
export
|
|
47
|
+
export const mx_safepower: (in1: Node | number, in2?: Node | number) => ShaderNodeObject<Node>;
|
|
40
48
|
|
|
41
|
-
export
|
|
49
|
+
export const mx_contrast: (
|
|
42
50
|
input: Node | number,
|
|
43
51
|
amount?: Node | number,
|
|
44
52
|
pivot?: Node | number,
|
|
45
|
-
)
|
|
53
|
+
) => ShaderNodeObject<Node>;
|
|
46
54
|
|
|
47
|
-
export
|
|
55
|
+
export const mx_noise_float: (
|
|
48
56
|
texcoord?: Node,
|
|
49
57
|
amplitude?: Node | number,
|
|
50
58
|
pivot?: Node | number,
|
|
51
|
-
)
|
|
52
|
-
export
|
|
59
|
+
) => ShaderNodeObject<Node>;
|
|
60
|
+
export const mx_noise_vec3: (
|
|
53
61
|
texcoord?: Node,
|
|
54
62
|
amplitude?: Node | number,
|
|
55
63
|
pivot?: Node | number,
|
|
56
|
-
)
|
|
57
|
-
export
|
|
64
|
+
) => ShaderNodeObject<Node>;
|
|
65
|
+
export const mx_noise_vec4: (
|
|
58
66
|
texcoord?: Node,
|
|
59
67
|
amplitude?: Node | number,
|
|
60
68
|
pivot?: Node | number,
|
|
61
|
-
)
|
|
69
|
+
) => ShaderNodeObject<Node>;
|
|
70
|
+
|
|
71
|
+
export const mx_unifiednoise2d: (
|
|
72
|
+
noiseType: Node,
|
|
73
|
+
texcoord?: Node,
|
|
74
|
+
freq?: Node,
|
|
75
|
+
offset?: Node,
|
|
76
|
+
jitter?: Node | number,
|
|
77
|
+
outmin?: Node | number,
|
|
78
|
+
outmax?: Node | number,
|
|
79
|
+
clampoutput?: Node | boolean,
|
|
80
|
+
octaves?: Node | number,
|
|
81
|
+
lacunarity?: Node | number,
|
|
82
|
+
diminish?: Node | number,
|
|
83
|
+
) => ShaderNodeObject<Node>;
|
|
84
|
+
export const mx_unifiednoise3d: (
|
|
85
|
+
noiseType: Node,
|
|
86
|
+
texcoord?: Node,
|
|
87
|
+
freq?: Node,
|
|
88
|
+
offset?: Node,
|
|
89
|
+
jitter?: Node | number,
|
|
90
|
+
outmin?: Node | number,
|
|
91
|
+
outmax?: Node | number,
|
|
92
|
+
clampoutput?: Node | boolean,
|
|
93
|
+
octaves?: Node | number,
|
|
94
|
+
lacunarity?: Node | number,
|
|
95
|
+
diminish?: Node | number,
|
|
96
|
+
) => ShaderNodeObject<Node>;
|
|
62
97
|
|
|
63
98
|
export function mx_worley_noise_float(
|
|
64
99
|
texcoord?: Node,
|
|
@@ -105,3 +140,33 @@ export function mx_fractal_noise_vec4(
|
|
|
105
140
|
): ShaderNodeObject<Node>;
|
|
106
141
|
|
|
107
142
|
export { mx_hsvtorgb, mx_rgbtohsv, mx_srgb_texture_to_lin_rec709 };
|
|
143
|
+
|
|
144
|
+
export const mx_add: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
|
|
145
|
+
export const mx_subtract: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
|
|
146
|
+
export const mx_multiply: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
|
|
147
|
+
export const mx_divide: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
|
|
148
|
+
export const mx_modulo: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
|
|
149
|
+
export const mx_power: (in1: Node, in2?: Node) => ShaderNodeObject<Node>;
|
|
150
|
+
export const mx_atan2: (in1?: Node, in2?: Node) => ShaderNodeObject<Node>;
|
|
151
|
+
export const mx_timer: () => ShaderNodeObject<Node>;
|
|
152
|
+
export const mx_frame: () => ShaderNodeObject<Node>;
|
|
153
|
+
export const mx_invert: (in1: Node, amount?: Node) => ShaderNodeObject<Node>;
|
|
154
|
+
export const mx_ifgreater: (value1: Node, value2: Node, in1: Node, in2: Node) => ShaderNodeObject<Node>;
|
|
155
|
+
export const mx_ifgreatereq: (value1: Node, value2: Node, in1: Node, in2: Node) => ShaderNodeObject<Node>;
|
|
156
|
+
export const mx_ifequal: (value1: Node, value2: Node, in1: Node, in2: Node) => ShaderNodeObject<Node>;
|
|
157
|
+
|
|
158
|
+
export const mx_separate: (in1: Node, channelOrOut?: string | number) => ShaderNodeObject<Node>;
|
|
159
|
+
|
|
160
|
+
export const mx_place2d: (
|
|
161
|
+
texcoord: Node,
|
|
162
|
+
pivot?: Node,
|
|
163
|
+
scale?: Node,
|
|
164
|
+
rotate?: Node,
|
|
165
|
+
offset?: Node,
|
|
166
|
+
) => ShaderNodeObject<Node>;
|
|
167
|
+
|
|
168
|
+
export const mx_rotate2d: (input: Node, amount: Node) => ShaderNodeObject<Node>;
|
|
169
|
+
|
|
170
|
+
export const mx_rotate3d: (input: Node, amount: Node, axis: Node) => ShaderNodeObject<Node>;
|
|
171
|
+
|
|
172
|
+
export const mx_heighttonormal: (input: Node, scale: Node) => ShaderNodeObject<Node>;
|
|
@@ -357,3 +357,31 @@ export const mx_worley_noise_vec3: (
|
|
|
357
357
|
jitter_immutable: Node | number,
|
|
358
358
|
metric_immutable: Node | number,
|
|
359
359
|
) => ShaderNodeObject<Node>;
|
|
360
|
+
|
|
361
|
+
export const mx_unifiednoise2d: (
|
|
362
|
+
noiseType_immutable: Node,
|
|
363
|
+
texcoord_immutable: Node,
|
|
364
|
+
freq_immutable: Node,
|
|
365
|
+
offset_immutable: Node,
|
|
366
|
+
jitter_immutable: Node,
|
|
367
|
+
outmin_immutable: Node,
|
|
368
|
+
outmax_immutable: Node,
|
|
369
|
+
clampoutput_immutable: Node,
|
|
370
|
+
octaves_immutable: Node,
|
|
371
|
+
lacunarity_immutable: Node,
|
|
372
|
+
diminish_immutable: Node,
|
|
373
|
+
) => ShaderNodeObject<Node>;
|
|
374
|
+
|
|
375
|
+
export const mx_unifiednoise3d: (
|
|
376
|
+
noiseType_immutable: Node,
|
|
377
|
+
position_immutable: Node,
|
|
378
|
+
freq_immutable: Node,
|
|
379
|
+
offset_immutable: Node,
|
|
380
|
+
jitter_immutable: Node,
|
|
381
|
+
outmin_immutable: Node,
|
|
382
|
+
outmax_immutable: Node,
|
|
383
|
+
clampoutput_immutable: Node,
|
|
384
|
+
octaves_immutable: Node,
|
|
385
|
+
lacunarity_immutable: Node,
|
|
386
|
+
diminish_immutable: Node,
|
|
387
|
+
) => ShaderNodeObject<Node>;
|