@react-three/drei 11.0.0-alpha.6 → 11.0.0-alpha.7

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.
package/native/index.d.ts CHANGED
@@ -3,8 +3,8 @@ import { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes, CSSPropertie
3
3
  import * as _react_three_fiber from '@react-three/fiber';
4
4
  import { ThreeElements, ReactThreeFiber, ComputeFunction, Vector2, Vector3, ThreeElement, ThreeEvent, Color as Color$1, ObjectMap, Euler } from '@react-three/fiber';
5
5
  import * as THREE from 'three/webgpu';
6
- import { MeshBasicNodeMaterial, MeshNormalNodeMaterial, MeshPhysicalNodeMaterial, Material, CubeRenderTarget, Color, ColorRepresentation, Object3D, Texture as Texture$1, Fog, FogExp2, CubeCamera as CubeCamera$1, OrthographicCamera as OrthographicCamera$1, PerspectiveCamera as PerspectiveCamera$1, EventDispatcher, Camera, Group, Matrix4, Vector3 as Vector3$1, LOD, Mesh, ExtrudeGeometry, PositionalAudio as PositionalAudio$1, AnimationClip, AnimationMixer, AnimationAction, BufferGeometry, BufferAttribute, InstancedMesh as InstancedMesh$1, InstancedBufferAttribute, DepthTexture, CubeTexture as CubeTexture$1, Raycaster, Intersection, RenderTargetOptions, Box3, Sphere as Sphere$1, Loader as Loader$1, ColorSpace, Scene, PlaneGeometry, MeshBasicMaterial, SpriteNodeMaterial, SpotLight as SpotLight$1 } from 'three/webgpu';
7
- import { reflector, Fn } from 'three/tsl';
6
+ import { Material, UniformNode, TextureNode, Texture as Texture$1, MeshNormalNodeMaterial, CubeRenderTarget, Color, ColorRepresentation, Object3D, Fog, FogExp2, CubeCamera as CubeCamera$1, OrthographicCamera as OrthographicCamera$1, PerspectiveCamera as PerspectiveCamera$1, EventDispatcher, Camera, Group, Matrix4, Vector3 as Vector3$1, LOD, Mesh, ExtrudeGeometry, PositionalAudio as PositionalAudio$1, AnimationClip, AnimationMixer, AnimationAction, BufferGeometry, BufferAttribute, InstancedMesh as InstancedMesh$1, InstancedBufferAttribute, DepthTexture, CubeTexture as CubeTexture$1, Raycaster, Intersection, RenderTargetOptions, Box3, Sphere as Sphere$1, Loader as Loader$1, ColorSpace, Scene, PlaneGeometry, MeshBasicMaterial, MeshBasicNodeMaterial, SpriteNodeMaterial, SpotLight as SpotLight$1 } from 'three/webgpu';
7
+ import { reflector } from 'three/tsl';
8
8
  import { LineSegments2 } from 'three/examples/jsm/lines/webgpu/LineSegments2.js';
9
9
  import * as zustand from 'zustand';
10
10
  import { StoreApi } from 'zustand';
@@ -46,6 +46,22 @@ type ContactShadowsProps = Omit<ThreeElements['group'], 'ref' | 'scale'> & {
46
46
  };
47
47
  declare const ContactShadows: ForwardRefComponent<ContactShadowsProps, THREE.Group>;
48
48
 
49
+ type AnyCtor = new (...args: any[]) => Material;
50
+ type UniformFactory = () => UniformNode<any, any> | TextureNode;
51
+ type UniformValue<F> = F extends () => TextureNode ? Texture$1 | null : F extends () => UniformNode<any, infer V> ? V : never;
52
+ type UniformProps<U> = {
53
+ [K in keyof U]: UniformValue<U[K]>;
54
+ };
55
+ type UniformNodes<U extends Record<string, UniformFactory>> = {
56
+ [K in keyof U]: ReturnType<U[K]>;
57
+ };
58
+ type UniformParameters<B extends AnyCtor, U> = NonNullable<ConstructorParameters<B>[0]> & Partial<UniformProps<U>>;
59
+ type WithUniforms<B extends AnyCtor, U extends Record<string, UniformFactory>> = Omit<B, 'prototype'> & {
60
+ new (parameters?: UniformParameters<B, U>, ...rest: any[]): InstanceType<B> & UniformProps<U> & {
61
+ readonly uniforms: UniformNodes<U>;
62
+ };
63
+ };
64
+
49
65
  type AccumulativeShadowsProps = Omit<ThreeElements['group'], 'ref'> & {
50
66
  frames?: number;
51
67
  blend?: number;
@@ -73,24 +89,13 @@ interface AccumulativeLightContext {
73
89
  update: () => void;
74
90
  }
75
91
  declare const accumulativeContext: React.Context<AccumulativeContext>;
76
- declare class SoftShadowMaterialImpl extends MeshBasicNodeMaterial {
77
- private _color;
78
- private _blend;
79
- private _alphaTest;
80
- private _opacity;
81
- private _map;
92
+ declare const SoftShadowMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
93
+ shadowColor: () => THREE.UniformNode<"color", THREE.Color>;
94
+ blend: () => THREE.UniformNode<"float", number>;
95
+ }>;
96
+ declare class SoftShadowMaterialImpl extends SoftShadowMaterialImpl_base {
82
97
  constructor();
83
98
  private _buildShader;
84
- get shadowColor(): THREE.ColorRepresentation;
85
- set shadowColor(v: THREE.ColorRepresentation);
86
- get blend(): number;
87
- set blend(v: number);
88
- get alphaTest(): number;
89
- set alphaTest(v: number);
90
- get opacity(): number;
91
- set opacity(v: number);
92
- get map(): THREE.Texture;
93
- set map(v: THREE.Texture);
94
99
  }
95
100
  declare const AccumulativeShadows: ForwardRefComponent<AccumulativeShadowsProps, AccumulativeContext>;
96
101
  type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
@@ -109,70 +114,35 @@ type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
109
114
  };
110
115
  declare const RandomizedLight: ForwardRefComponent<RandomizedLightProps, AccumulativeLightContext>;
111
116
 
112
- declare class CausticsProjectionMaterial extends MeshBasicNodeMaterial {
113
- private _causticsTexture;
114
- private _causticsTextureB;
115
- private _color;
116
- private _lightProjMatrix;
117
- private _lightViewMatrix;
117
+ declare const CausticsProjectionMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
118
+ causticsTexture: () => THREE.TextureNode<"vec4">;
119
+ causticsTextureB: () => THREE.TextureNode<"vec4">;
120
+ lightProjMatrix: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
121
+ lightViewMatrix: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
122
+ }>;
123
+ declare class CausticsProjectionMaterial extends CausticsProjectionMaterial_base {
118
124
  constructor();
119
125
  private _buildShader;
120
- get causticsTexture(): THREE.Texture;
121
- set causticsTexture(v: THREE.Texture);
122
- get causticsTextureB(): THREE.Texture;
123
- set causticsTextureB(v: THREE.Texture);
124
- get color(): THREE.Color;
125
- set color(v: THREE.Color);
126
- get lightProjMatrix(): THREE.Matrix4;
127
- set lightProjMatrix(v: THREE.Matrix4);
128
- get lightViewMatrix(): THREE.Matrix4;
129
- set lightViewMatrix(v: THREE.Matrix4);
130
126
  }
131
- declare class CausticsMaterial extends MeshBasicNodeMaterial {
132
- private _cameraMatrixWorld;
133
- private _cameraProjectionMatrixInv;
134
- private _normalTexture;
135
- private _depthTexture;
136
- private _lightDir;
137
- private _lightPlaneNormal;
138
- private _lightPlaneConstant;
139
- private _near;
140
- private _far;
141
- private _worldRadius;
142
- private _ior;
143
- private _resolution;
144
- private _size;
145
- private _intensity;
127
+ declare const CausticsMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
128
+ cameraMatrixWorld: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
129
+ cameraProjectionMatrixInv: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
130
+ normalTexture: () => THREE.TextureNode<"vec4">;
131
+ depthTexture: () => THREE.TextureNode<"vec4">;
132
+ lightDir: () => THREE.UniformNode<"vec3", THREE.Vector3>;
133
+ lightPlaneNormal: () => THREE.UniformNode<"vec3", THREE.Vector3>;
134
+ lightPlaneConstant: () => THREE.UniformNode<"float", number>;
135
+ near: () => THREE.UniformNode<"float", number>;
136
+ far: () => THREE.UniformNode<"float", number>;
137
+ worldRadius: () => THREE.UniformNode<"float", number>;
138
+ ior: () => THREE.UniformNode<"float", number>;
139
+ resolution: () => THREE.UniformNode<"float", number>;
140
+ size: () => THREE.UniformNode<"float", number>;
141
+ intensity: () => THREE.UniformNode<"float", number>;
142
+ }>;
143
+ declare class CausticsMaterial extends CausticsMaterial_base {
146
144
  constructor();
147
145
  private _buildShader;
148
- get cameraMatrixWorld(): THREE.Matrix4;
149
- set cameraMatrixWorld(v: THREE.Matrix4);
150
- get cameraProjectionMatrixInv(): THREE.Matrix4;
151
- set cameraProjectionMatrixInv(v: THREE.Matrix4);
152
- get normalTexture(): THREE.Texture | null;
153
- set normalTexture(v: THREE.Texture | null);
154
- get depthTexture(): THREE.Texture | null;
155
- set depthTexture(v: THREE.Texture | null);
156
- get lightDir(): THREE.Vector3;
157
- set lightDir(v: THREE.Vector3);
158
- get lightPlaneNormal(): THREE.Vector3;
159
- set lightPlaneNormal(v: THREE.Vector3);
160
- get lightPlaneConstant(): number;
161
- set lightPlaneConstant(v: number);
162
- get near(): number;
163
- set near(v: number);
164
- get far(): number;
165
- set far(v: number);
166
- get worldRadius(): number;
167
- set worldRadius(v: number);
168
- get ior(): number;
169
- set ior(v: number);
170
- get resolution(): number;
171
- set resolution(v: number);
172
- get size(): number;
173
- set size(v: number);
174
- get intensity(): number;
175
- set intensity(v: number);
176
146
  }
177
147
  declare class CausticsNormalMaterial extends MeshNormalNodeMaterial {
178
148
  constructor(side?: THREE.Side);
@@ -223,43 +193,23 @@ interface MeshReflectorMaterialOptions {
223
193
  mixContrast?: number;
224
194
  reflectorOffset?: number;
225
195
  }
226
- declare class MeshReflectorMaterial$1 extends THREE.MeshStandardNodeMaterial {
196
+ declare const MeshReflectorMaterial_base: WithUniforms<typeof THREE.MeshStandardNodeMaterial, {
197
+ mirror: () => THREE.UniformNode<"float", number>;
198
+ mixBlur: () => THREE.UniformNode<"float", number>;
199
+ mixStrength: () => THREE.UniformNode<"float", number>;
200
+ minDepthThreshold: () => THREE.UniformNode<"float", number>;
201
+ maxDepthThreshold: () => THREE.UniformNode<"float", number>;
202
+ depthScale: () => THREE.UniformNode<"float", number>;
203
+ depthToBlurRatioBias: () => THREE.UniformNode<"float", number>;
204
+ distortion: () => THREE.UniformNode<"float", number>;
205
+ mixContrast: () => THREE.UniformNode<"float", number>;
206
+ blurRadius: () => THREE.UniformNode<"float", number>;
207
+ }>;
208
+ declare class MeshReflectorMaterial$1 extends MeshReflectorMaterial_base {
227
209
  reflection: ReturnType<typeof reflector>;
228
- mirrorUniform: THREE.UniformNode<'float', number>;
229
- mixBlurUniform: THREE.UniformNode<'float', number>;
230
- mixStrengthUniform: THREE.UniformNode<'float', number>;
231
- minDepthThresholdUniform: THREE.UniformNode<'float', number>;
232
- maxDepthThresholdUniform: THREE.UniformNode<'float', number>;
233
- depthScaleUniform: THREE.UniformNode<'float', number>;
234
- depthToBlurRatioBiasUniform: THREE.UniformNode<'float', number>;
235
- distortionUniform: THREE.UniformNode<'float', number>;
236
- mixContrastUniform: THREE.UniformNode<'float', number>;
237
- blurRadiusUniform: THREE.UniformNode<'float', number>;
238
- hasBlurUniform: THREE.UniformNode<'float', number>;
239
- hasDepthUniform: THREE.UniformNode<'float', number>;
210
+ get reflectorTarget(): THREE.Object3D;
240
211
  constructor(options?: MeshReflectorMaterialOptions, parameters?: THREE.MeshStandardMaterialParameters);
241
212
  private setupNodes;
242
- get mirror(): number;
243
- set mirror(v: number);
244
- get mixBlur(): number;
245
- set mixBlur(v: number);
246
- get mixStrength(): number;
247
- set mixStrength(v: number);
248
- get minDepthThreshold(): number;
249
- set minDepthThreshold(v: number);
250
- get maxDepthThreshold(): number;
251
- set maxDepthThreshold(v: number);
252
- get depthScale(): number;
253
- set depthScale(v: number);
254
- get depthToBlurRatioBias(): number;
255
- set depthToBlurRatioBias(v: number);
256
- get distortion(): number;
257
- set distortion(v: number);
258
- get mixContrast(): number;
259
- set mixContrast(v: number);
260
- get blurRadius(): number;
261
- set blurRadius(v: number);
262
- get reflectorTarget(): THREE.Object3D;
263
213
  }
264
214
 
265
215
  declare module '@react-three/fiber' {
@@ -310,32 +260,17 @@ declare module '@react-three/fiber' {
310
260
  meshRefractionMaterial: MeshRefractionMaterialType;
311
261
  }
312
262
  }
313
- declare class MeshRefractionMaterialImpl extends MeshPhysicalNodeMaterial {
314
- private _envMap;
315
- private _bounces;
316
- private _ior;
317
- private _fresnel;
318
- private _aberrationStrength;
319
- private _color;
320
- private _opacityValue;
263
+ declare const MeshRefractionMaterialImpl_base: WithUniforms<typeof THREE.MeshPhysicalNodeMaterial, {
264
+ bounces: () => THREE.UniformNode<"float", number>;
265
+ fresnel: () => THREE.UniformNode<"float", number>;
266
+ aberrationStrength: () => THREE.UniformNode<"float", number>;
267
+ tintColor: () => THREE.UniformNode<"color", THREE.Color>;
268
+ }>;
269
+ declare class MeshRefractionMaterialImpl extends MeshRefractionMaterialImpl_base {
321
270
  private _fastChroma;
322
271
  readonly isMeshRefractionMaterial = true;
323
272
  constructor(fastChroma?: boolean);
324
273
  private _buildRefractionShader;
325
- get envMap(): THREE.Texture | THREE.CubeTexture | null;
326
- set envMap(v: THREE.Texture | THREE.CubeTexture | null);
327
- get bounces(): number;
328
- set bounces(v: number);
329
- get ior(): number;
330
- set ior(v: number);
331
- get fresnel(): number;
332
- set fresnel(v: number);
333
- get aberrationStrength(): number;
334
- set aberrationStrength(v: number);
335
- get tintColor(): THREE.Color;
336
- set tintColor(v: THREE.Color | THREE.ColorRepresentation);
337
- get opacity(): number;
338
- set opacity(v: number);
339
274
  }
340
275
  declare const MeshRefractionMaterial: ForwardRefComponent<MeshRefractionMaterialProps, MeshRefractionMaterialImpl>;
341
276
 
@@ -349,41 +284,26 @@ type PortalProps = Omit<ThreeElements['meshBasicMaterial'], 'ref'> & {
349
284
  events?: boolean;
350
285
  children?: React.ReactNode;
351
286
  };
352
- declare class PortalMaterialImpl extends MeshBasicNodeMaterial {
353
- private _blur;
354
- private _map;
355
- private _sdf;
356
- private _blend;
357
- private _size;
358
- private _resolution;
287
+ declare const PortalMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
288
+ blur: () => THREE.UniformNode<"float", number>;
289
+ sdf: () => THREE.TextureNode<"vec4">;
290
+ blend: () => THREE.UniformNode<"float", number>;
291
+ size: () => THREE.UniformNode<"float", number>;
292
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
293
+ }>;
294
+ declare class PortalMaterialImpl extends PortalMaterialImpl_base {
359
295
  constructor();
360
296
  private _buildShader;
361
- get blur(): number;
362
- set blur(v: number);
363
- get map(): THREE.Texture | null;
364
- set map(v: THREE.Texture | null);
365
- get sdf(): THREE.Texture | null;
366
- set sdf(v: THREE.Texture | null);
367
- get blend(): number;
368
- set blend(v: number);
369
- get size(): number;
370
- set size(v: number);
371
- get resolution(): THREE.Vector2 | [number, number];
372
- set resolution(v: THREE.Vector2 | [number, number]);
373
297
  }
374
298
  declare const MeshPortalMaterial: ForwardRefComponent<PortalProps, PortalMaterialImpl>;
375
299
 
376
- declare class DistortMaterialImplWebGPU extends THREE.MeshPhysicalNodeMaterial {
377
- timeUniform: THREE.UniformNode<'float', number>;
378
- distortUniform: THREE.UniformNode<'float', number>;
379
- radiusUniform: THREE.UniformNode<'float', number>;
300
+ declare const DistortMaterialImplWebGPU_base: WithUniforms<typeof THREE.MeshPhysicalNodeMaterial, {
301
+ time: () => THREE.UniformNode<"float", number>;
302
+ distort: () => THREE.UniformNode<"float", number>;
303
+ radius: () => THREE.UniformNode<"float", number>;
304
+ }>;
305
+ declare class DistortMaterialImplWebGPU extends DistortMaterialImplWebGPU_base {
380
306
  constructor(parameters?: THREE.MeshPhysicalMaterialParameters);
381
- get time(): number;
382
- set time(v: number);
383
- get distort(): number;
384
- set distort(v: number);
385
- get radius(): number;
386
- set radius(v: number);
387
307
  }
388
308
  declare module '@react-three/fiber' {
389
309
  interface ThreeElements {
@@ -400,14 +320,12 @@ type MeshDistortMaterialProps = Omit<ThreeElements['distortMaterialImplWebGPU'],
400
320
  };
401
321
  declare const MeshDistortMaterial: ForwardRefComponent<MeshDistortMaterialProps, DistortMaterialImplWebGPU>;
402
322
 
403
- declare class WobbleMaterialImpl extends THREE.MeshStandardNodeMaterial {
404
- timeUniform: THREE.UniformNode<'float', number>;
405
- factorUniform: THREE.UniformNode<'float', number>;
323
+ declare const WobbleMaterialImpl_base: WithUniforms<typeof THREE.MeshStandardNodeMaterial, {
324
+ time: () => THREE.UniformNode<"float", number>;
325
+ factor: () => THREE.UniformNode<"float", number>;
326
+ }>;
327
+ declare class WobbleMaterialImpl extends WobbleMaterialImpl_base {
406
328
  constructor(parameters?: THREE.MeshStandardMaterialParameters);
407
- get time(): number;
408
- set time(v: number);
409
- get factor(): number;
410
- set factor(v: number);
411
329
  }
412
330
  declare module '@react-three/fiber' {
413
331
  interface ThreeElements {
@@ -2101,55 +2019,27 @@ declare module '@react-three/fiber' {
2101
2019
  wireframeMaterial: WireframeMaterialType;
2102
2020
  }
2103
2021
  }
2104
- declare class WireframeMaterialImpl extends MeshBasicNodeMaterial {
2105
- private _strokeOpacity;
2106
- private _fillOpacity;
2107
- private _fillMix;
2108
- private _thickness;
2109
- private _colorBackfaces;
2110
- private _dashInvert;
2111
- private _dash;
2112
- private _dashRepeats;
2113
- private _dashLength;
2114
- private _squeeze;
2115
- private _squeezeMin;
2116
- private _squeezeMax;
2117
- private _stroke;
2118
- private _backfaceStroke;
2119
- private _fill;
2022
+ declare const WireframeMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2023
+ strokeOpacity: () => THREE.UniformNode<"float", number>;
2024
+ fillOpacity: () => THREE.UniformNode<"float", number>;
2025
+ fillMix: () => THREE.UniformNode<"float", number>;
2026
+ thickness: () => THREE.UniformNode<"float", number>;
2027
+ colorBackfaces: () => THREE.UniformNode<"bool", boolean>;
2028
+ dashInvert: () => THREE.UniformNode<"bool", boolean>;
2029
+ dash: () => THREE.UniformNode<"bool", boolean>;
2030
+ dashRepeats: () => THREE.UniformNode<"float", number>;
2031
+ dashLength: () => THREE.UniformNode<"float", number>;
2032
+ squeeze: () => THREE.UniformNode<"bool", boolean>;
2033
+ squeezeMin: () => THREE.UniformNode<"float", number>;
2034
+ squeezeMax: () => THREE.UniformNode<"float", number>;
2035
+ stroke: () => THREE.UniformNode<"color", THREE.Color>;
2036
+ backfaceStroke: () => THREE.UniformNode<"color", THREE.Color>;
2037
+ fill: () => THREE.UniformNode<"color", THREE.Color>;
2038
+ }>;
2039
+ declare class WireframeMaterialImpl extends WireframeMaterialImpl_base {
2120
2040
  readonly isWireframeMaterial = true;
2121
2041
  constructor();
2122
2042
  private _buildWireframeShader;
2123
- get strokeOpacity(): number;
2124
- set strokeOpacity(v: number);
2125
- get fillOpacity(): number;
2126
- set fillOpacity(v: number);
2127
- get fillMix(): number;
2128
- set fillMix(v: number);
2129
- get thickness(): number;
2130
- set thickness(v: number);
2131
- get colorBackfaces(): boolean;
2132
- set colorBackfaces(v: boolean);
2133
- get dashInvert(): boolean;
2134
- set dashInvert(v: boolean);
2135
- get dash(): boolean;
2136
- set dash(v: boolean);
2137
- get dashRepeats(): number;
2138
- set dashRepeats(v: number);
2139
- get dashLength(): number;
2140
- set dashLength(v: number);
2141
- get squeeze(): boolean;
2142
- set squeeze(v: boolean);
2143
- get squeezeMin(): number;
2144
- set squeezeMin(v: number);
2145
- get squeezeMax(): number;
2146
- set squeezeMax(v: number);
2147
- get stroke(): THREE.Color;
2148
- set stroke(v: THREE.Color | THREE.ColorRepresentation);
2149
- get backfaceStroke(): THREE.Color;
2150
- set backfaceStroke(v: THREE.Color | THREE.ColorRepresentation);
2151
- get fill(): THREE.Color;
2152
- set fill(v: THREE.Color | THREE.ColorRepresentation);
2153
2043
  }
2154
2044
  declare function setBarycentricCoordinates(geometry: THREE.BufferGeometry): THREE.BufferGeometry;
2155
2045
  declare const WireframeMaterial: ForwardRefComponent<WireframeMaterialProps, WireframeMaterialImpl>;
@@ -2189,57 +2079,34 @@ declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProp
2189
2079
 
2190
2080
  declare function BakeShadows(): null;
2191
2081
 
2192
- declare class ConvolutionMaterial extends MeshBasicNodeMaterial {
2193
- private _inputBuffer;
2194
- private _depthBuffer;
2195
- private _resolution;
2196
- private _texelSize;
2197
- private _halfTexelSize;
2198
- private _kernel;
2199
- private _scale;
2200
- private _cameraNear;
2201
- private _cameraFar;
2202
- private _minDepthThreshold;
2203
- private _maxDepthThreshold;
2204
- private _depthScale;
2205
- private _depthToBlurRatioBias;
2206
- private _useDepth;
2082
+ declare const ConvolutionMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2083
+ inputBuffer: () => THREE.TextureNode<"vec4">;
2084
+ depthBuffer: () => THREE.TextureNode<"vec4">;
2085
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2086
+ texelSize: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2087
+ halfTexelSize: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2088
+ kernelValue: () => THREE.UniformNode<"float", number>;
2089
+ scale: () => THREE.UniformNode<"float", number>;
2090
+ cameraNear: () => THREE.UniformNode<"float", number>;
2091
+ cameraFar: () => THREE.UniformNode<"float", number>;
2092
+ minDepthThreshold: () => THREE.UniformNode<"float", number>;
2093
+ maxDepthThreshold: () => THREE.UniformNode<"float", number>;
2094
+ depthScale: () => THREE.UniformNode<"float", number>;
2095
+ depthToBlurRatioBias: () => THREE.UniformNode<"float", number>;
2096
+ useDepth: () => THREE.UniformNode<"bool", boolean>;
2097
+ }>;
2098
+ declare class ConvolutionMaterial extends ConvolutionMaterial_base {
2207
2099
  readonly kernel: Float32Array;
2208
2100
  constructor(texelSize?: THREE.Vector2);
2209
2101
  private _buildShader;
2210
2102
  setTexelSize(x: number, y: number): void;
2211
2103
  setResolution(resolution: THREE.Vector2): void;
2212
- get inputBuffer(): THREE.Texture | null;
2213
- set inputBuffer(v: THREE.Texture | null);
2214
- get depthBuffer(): THREE.Texture | null;
2215
- set depthBuffer(v: THREE.Texture | null);
2216
- get resolution(): THREE.Vector2;
2217
- set resolution(v: THREE.Vector2);
2218
- get texelSize(): THREE.Vector2;
2219
- set texelSize(v: THREE.Vector2);
2220
- get halfTexelSize(): THREE.Vector2;
2221
- set halfTexelSize(v: THREE.Vector2);
2222
- get kernelValue(): number;
2223
- set kernelValue(v: number);
2224
- get scale(): number;
2225
- set scale(v: number);
2226
- get cameraNear(): number;
2227
- set cameraNear(v: number);
2228
- get cameraFar(): number;
2229
- set cameraFar(v: number);
2230
- get minDepthThreshold(): number;
2231
- set minDepthThreshold(v: number);
2232
- get maxDepthThreshold(): number;
2233
- set maxDepthThreshold(v: number);
2234
- get depthScale(): number;
2235
- set depthScale(v: number);
2236
- get depthToBlurRatioBias(): number;
2237
- set depthToBlurRatioBias(v: number);
2238
- get useDepth(): boolean;
2239
- set useDepth(v: boolean);
2240
2104
  }
2241
2105
 
2242
- declare const DiscardMaterial: MeshBasicNodeMaterial;
2106
+ declare class DiscardNodeMaterial extends MeshBasicNodeMaterial {
2107
+ constructor();
2108
+ }
2109
+ declare const DiscardMaterial: DiscardNodeMaterial;
2243
2110
 
2244
2111
  declare enum GradientType {
2245
2112
  Linear = "linear",
@@ -2276,64 +2143,37 @@ type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
2276
2143
  });
2277
2144
  declare const Image: ForwardRefComponent<ImageProps, THREE.Mesh>;
2278
2145
 
2279
- declare class SpotLightMaterial extends MeshBasicNodeMaterial {
2280
- private _depth;
2281
- private _opacity;
2282
- private _attenuation;
2283
- private _anglePower;
2284
- private _spotPosition;
2285
- private _lightColor;
2286
- private _cameraNear;
2287
- private _cameraFar;
2288
- private _resolution;
2146
+ declare const SpotLightMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2147
+ depth: () => THREE.TextureNode<"vec4">;
2148
+ attenuation: () => THREE.UniformNode<"float", number>;
2149
+ anglePower: () => THREE.UniformNode<"float", number>;
2150
+ spotPosition: () => THREE.UniformNode<"vec3", THREE.Vector3>;
2151
+ lightColor: () => THREE.UniformNode<"color", THREE.Color>;
2152
+ cameraNear: () => THREE.UniformNode<"float", number>;
2153
+ cameraFar: () => THREE.UniformNode<"float", number>;
2154
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2155
+ }>;
2156
+ declare class SpotLightMaterial extends SpotLightMaterial_base {
2289
2157
  constructor();
2290
2158
  private _buildShader;
2291
- get depth(): THREE.Texture | null;
2292
- set depth(v: THREE.Texture | null);
2293
- get opacity(): number;
2294
- set opacity(v: number);
2295
- get attenuation(): number;
2296
- set attenuation(v: number);
2297
- get anglePower(): number;
2298
- set anglePower(v: number);
2299
- get spotPosition(): THREE.Vector3;
2300
- set spotPosition(v: THREE.Vector3);
2301
- get lightColor(): THREE.Color;
2302
- set lightColor(v: THREE.Color);
2303
- get cameraNear(): number;
2304
- set cameraNear(v: number);
2305
- get cameraFar(): number;
2306
- set cameraFar(v: number);
2307
- get resolution(): THREE.Vector2;
2308
- set resolution(v: THREE.Vector2);
2309
2159
  }
2310
2160
 
2311
- declare class StarfieldMaterial extends SpriteNodeMaterial {
2312
- private _time;
2313
- private _fade;
2314
- positionNode: ReturnType<typeof Fn>;
2315
- scaleNode: ReturnType<typeof Fn>;
2316
- colorNode: ReturnType<typeof Fn>;
2161
+ declare const StarfieldMaterial_base: WithUniforms<typeof SpriteNodeMaterial, {
2162
+ time: () => THREE.UniformNode<"float", number>;
2163
+ fade: () => THREE.UniformNode<"float", number>;
2164
+ }>;
2165
+ declare class StarfieldMaterial extends StarfieldMaterial_base {
2317
2166
  constructor();
2318
2167
  setTime(time: number): void;
2319
2168
  setFade(fade: number): void;
2320
- get time(): number;
2321
- set time(value: number);
2322
- get fade(): number;
2323
- set fade(value: number);
2324
2169
  }
2325
2170
 
2326
- declare class SparklesMaterial extends SpriteNodeMaterial {
2327
- private _time;
2328
- private _pixelRatio;
2329
- positionNode: ReturnType<typeof Fn>;
2330
- scaleNode: ReturnType<typeof Fn>;
2331
- colorNode: ReturnType<typeof Fn>;
2171
+ declare const SparklesMaterial_base: WithUniforms<typeof SpriteNodeMaterial, {
2172
+ time: () => THREE.UniformNode<"float", number>;
2173
+ pixelRatio: () => THREE.UniformNode<"float", number>;
2174
+ }>;
2175
+ declare class SparklesMaterial extends SparklesMaterial_base {
2332
2176
  constructor();
2333
- get time(): number;
2334
- set time(value: number);
2335
- get pixelRatio(): number;
2336
- set pixelRatio(value: number);
2337
2177
  }
2338
2178
 
2339
2179
  type GridMaterialType = {