@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.
@@ -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, Event, EventDispatcher, Camera, Matrix4, Vector3 as Vector3$1, Group, 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, ShadowNode, Light, 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, Event, EventDispatcher, Camera, Matrix4, Vector3 as Vector3$1, Group, 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, QuadMesh, MeshBasicNodeMaterial, SpriteNodeMaterial, ShadowNode, Light, 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 { ArcballControls as ArcballControls$1 } from 'three/examples/jsm/controls/ArcballControls.js';
10
10
  import { FirstPersonControls as FirstPersonControls$1 } from 'three/examples/jsm/controls/FirstPersonControls.js';
@@ -57,6 +57,27 @@ type ContactShadowsProps = Omit<ThreeElements['group'], 'ref' | 'scale'> & {
57
57
  };
58
58
  declare const ContactShadows: ForwardRefComponent<ContactShadowsProps, THREE.Group>;
59
59
 
60
+ type AnyCtor = new (...args: any[]) => Material;
61
+ type UniformFactory = () => UniformNode<any, any> | TextureNode;
62
+ type ReservedUniformName<B extends AnyCtor> = keyof InstanceType<B> | `_${string}` | 'uniforms';
63
+ type UniformTable<B extends AnyCtor, U> = {
64
+ [K in keyof U]: K extends ReservedUniformName<B> ? never : UniformFactory;
65
+ };
66
+ type UniformValue<F> = F extends () => TextureNode ? Texture$1 | null : F extends () => UniformNode<any, infer V> ? V : never;
67
+ type UniformProps<U> = {
68
+ [K in keyof U]: UniformValue<U[K]>;
69
+ };
70
+ type UniformNodes<U extends Record<string, UniformFactory>> = {
71
+ [K in keyof U]: ReturnType<U[K]>;
72
+ };
73
+ type UniformParameters<B extends AnyCtor, U> = NonNullable<ConstructorParameters<B>[0]> & Partial<UniformProps<U>>;
74
+ type WithUniforms<B extends AnyCtor, U extends Record<string, UniformFactory>> = Omit<B, 'prototype'> & {
75
+ new (parameters?: UniformParameters<B, U>, ...rest: any[]): InstanceType<B> & UniformProps<U> & {
76
+ readonly uniforms: UniformNodes<U>;
77
+ };
78
+ };
79
+ declare function withUniforms<B extends AnyCtor, U extends Record<string, UniformFactory>>(Base: B, table: UniformTable<B, U> & U): WithUniforms<B, U>;
80
+
60
81
  type AccumulativeShadowsProps = Omit<ThreeElements['group'], 'ref'> & {
61
82
  frames?: number;
62
83
  blend?: number;
@@ -84,24 +105,13 @@ interface AccumulativeLightContext {
84
105
  update: () => void;
85
106
  }
86
107
  declare const accumulativeContext: React.Context<AccumulativeContext>;
87
- declare class SoftShadowMaterialImpl extends MeshBasicNodeMaterial {
88
- private _color;
89
- private _blend;
90
- private _alphaTest;
91
- private _opacity;
92
- private _map;
108
+ declare const SoftShadowMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
109
+ shadowColor: () => THREE.UniformNode<"color", THREE.Color>;
110
+ blend: () => THREE.UniformNode<"float", number>;
111
+ }>;
112
+ declare class SoftShadowMaterialImpl extends SoftShadowMaterialImpl_base {
93
113
  constructor();
94
114
  private _buildShader;
95
- get shadowColor(): THREE.ColorRepresentation;
96
- set shadowColor(v: THREE.ColorRepresentation);
97
- get blend(): number;
98
- set blend(v: number);
99
- get alphaTest(): number;
100
- set alphaTest(v: number);
101
- get opacity(): number;
102
- set opacity(v: number);
103
- get map(): THREE.Texture;
104
- set map(v: THREE.Texture);
105
115
  }
106
116
  declare const AccumulativeShadows: ForwardRefComponent<AccumulativeShadowsProps, AccumulativeContext>;
107
117
  type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
@@ -133,70 +143,35 @@ type CausticsProps = Omit<ThreeElements['group'], 'ref'> & {
133
143
  resolution?: number;
134
144
  lightSource?: [x: number, y: number, z: number] | React.RefObject<THREE.Object3D>;
135
145
  };
136
- declare class CausticsProjectionMaterial extends MeshBasicNodeMaterial {
137
- private _causticsTexture;
138
- private _causticsTextureB;
139
- private _color;
140
- private _lightProjMatrix;
141
- private _lightViewMatrix;
146
+ declare const CausticsProjectionMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
147
+ causticsTexture: () => THREE.TextureNode<"vec4">;
148
+ causticsTextureB: () => THREE.TextureNode<"vec4">;
149
+ lightProjMatrix: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
150
+ lightViewMatrix: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
151
+ }>;
152
+ declare class CausticsProjectionMaterial extends CausticsProjectionMaterial_base {
142
153
  constructor();
143
154
  private _buildShader;
144
- get causticsTexture(): THREE.Texture;
145
- set causticsTexture(v: THREE.Texture);
146
- get causticsTextureB(): THREE.Texture;
147
- set causticsTextureB(v: THREE.Texture);
148
- get color(): THREE.Color;
149
- set color(v: THREE.Color);
150
- get lightProjMatrix(): THREE.Matrix4;
151
- set lightProjMatrix(v: THREE.Matrix4);
152
- get lightViewMatrix(): THREE.Matrix4;
153
- set lightViewMatrix(v: THREE.Matrix4);
154
- }
155
- declare class CausticsMaterial extends MeshBasicNodeMaterial {
156
- private _cameraMatrixWorld;
157
- private _cameraProjectionMatrixInv;
158
- private _normalTexture;
159
- private _depthTexture;
160
- private _lightDir;
161
- private _lightPlaneNormal;
162
- private _lightPlaneConstant;
163
- private _near;
164
- private _far;
165
- private _worldRadius;
166
- private _ior;
167
- private _resolution;
168
- private _size;
169
- private _intensity;
155
+ }
156
+ declare const CausticsMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
157
+ cameraMatrixWorld: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
158
+ cameraProjectionMatrixInv: () => THREE.UniformNode<"mat4", THREE.Matrix4>;
159
+ normalTexture: () => THREE.TextureNode<"vec4">;
160
+ depthTexture: () => THREE.TextureNode<"vec4">;
161
+ lightDir: () => THREE.UniformNode<"vec3", THREE.Vector3>;
162
+ lightPlaneNormal: () => THREE.UniformNode<"vec3", THREE.Vector3>;
163
+ lightPlaneConstant: () => THREE.UniformNode<"float", number>;
164
+ near: () => THREE.UniformNode<"float", number>;
165
+ far: () => THREE.UniformNode<"float", number>;
166
+ worldRadius: () => THREE.UniformNode<"float", number>;
167
+ ior: () => THREE.UniformNode<"float", number>;
168
+ resolution: () => THREE.UniformNode<"float", number>;
169
+ size: () => THREE.UniformNode<"float", number>;
170
+ intensity: () => THREE.UniformNode<"float", number>;
171
+ }>;
172
+ declare class CausticsMaterial extends CausticsMaterial_base {
170
173
  constructor();
171
174
  private _buildShader;
172
- get cameraMatrixWorld(): THREE.Matrix4;
173
- set cameraMatrixWorld(v: THREE.Matrix4);
174
- get cameraProjectionMatrixInv(): THREE.Matrix4;
175
- set cameraProjectionMatrixInv(v: THREE.Matrix4);
176
- get normalTexture(): THREE.Texture | null;
177
- set normalTexture(v: THREE.Texture | null);
178
- get depthTexture(): THREE.Texture | null;
179
- set depthTexture(v: THREE.Texture | null);
180
- get lightDir(): THREE.Vector3;
181
- set lightDir(v: THREE.Vector3);
182
- get lightPlaneNormal(): THREE.Vector3;
183
- set lightPlaneNormal(v: THREE.Vector3);
184
- get lightPlaneConstant(): number;
185
- set lightPlaneConstant(v: number);
186
- get near(): number;
187
- set near(v: number);
188
- get far(): number;
189
- set far(v: number);
190
- get worldRadius(): number;
191
- set worldRadius(v: number);
192
- get ior(): number;
193
- set ior(v: number);
194
- get resolution(): number;
195
- set resolution(v: number);
196
- get size(): number;
197
- set size(v: number);
198
- get intensity(): number;
199
- set intensity(v: number);
200
175
  }
201
176
  declare class CausticsNormalMaterial extends MeshNormalNodeMaterial {
202
177
  constructor(side?: THREE.Side);
@@ -248,43 +223,23 @@ interface MeshReflectorMaterialOptions {
248
223
  mixContrast?: number;
249
224
  reflectorOffset?: number;
250
225
  }
251
- declare class MeshReflectorMaterial$1 extends THREE.MeshStandardNodeMaterial {
226
+ declare const MeshReflectorMaterial_base: WithUniforms<typeof THREE.MeshStandardNodeMaterial, {
227
+ mirror: () => THREE.UniformNode<"float", number>;
228
+ mixBlur: () => THREE.UniformNode<"float", number>;
229
+ mixStrength: () => THREE.UniformNode<"float", number>;
230
+ minDepthThreshold: () => THREE.UniformNode<"float", number>;
231
+ maxDepthThreshold: () => THREE.UniformNode<"float", number>;
232
+ depthScale: () => THREE.UniformNode<"float", number>;
233
+ depthToBlurRatioBias: () => THREE.UniformNode<"float", number>;
234
+ distortion: () => THREE.UniformNode<"float", number>;
235
+ mixContrast: () => THREE.UniformNode<"float", number>;
236
+ blurRadius: () => THREE.UniformNode<"float", number>;
237
+ }>;
238
+ declare class MeshReflectorMaterial$1 extends MeshReflectorMaterial_base {
252
239
  reflection: ReturnType<typeof reflector>;
253
- mirrorUniform: THREE.UniformNode<'float', number>;
254
- mixBlurUniform: THREE.UniformNode<'float', number>;
255
- mixStrengthUniform: THREE.UniformNode<'float', number>;
256
- minDepthThresholdUniform: THREE.UniformNode<'float', number>;
257
- maxDepthThresholdUniform: THREE.UniformNode<'float', number>;
258
- depthScaleUniform: THREE.UniformNode<'float', number>;
259
- depthToBlurRatioBiasUniform: THREE.UniformNode<'float', number>;
260
- distortionUniform: THREE.UniformNode<'float', number>;
261
- mixContrastUniform: THREE.UniformNode<'float', number>;
262
- blurRadiusUniform: THREE.UniformNode<'float', number>;
263
- hasBlurUniform: THREE.UniformNode<'float', number>;
264
- hasDepthUniform: THREE.UniformNode<'float', number>;
240
+ get reflectorTarget(): THREE.Object3D;
265
241
  constructor(options?: MeshReflectorMaterialOptions, parameters?: THREE.MeshStandardMaterialParameters);
266
242
  private setupNodes;
267
- get mirror(): number;
268
- set mirror(v: number);
269
- get mixBlur(): number;
270
- set mixBlur(v: number);
271
- get mixStrength(): number;
272
- set mixStrength(v: number);
273
- get minDepthThreshold(): number;
274
- set minDepthThreshold(v: number);
275
- get maxDepthThreshold(): number;
276
- set maxDepthThreshold(v: number);
277
- get depthScale(): number;
278
- set depthScale(v: number);
279
- get depthToBlurRatioBias(): number;
280
- set depthToBlurRatioBias(v: number);
281
- get distortion(): number;
282
- set distortion(v: number);
283
- get mixContrast(): number;
284
- set mixContrast(v: number);
285
- get blurRadius(): number;
286
- set blurRadius(v: number);
287
- get reflectorTarget(): THREE.Object3D;
288
243
  }
289
244
 
290
245
  declare module '@react-three/fiber' {
@@ -335,32 +290,17 @@ declare module '@react-three/fiber' {
335
290
  meshRefractionMaterial: MeshRefractionMaterialType;
336
291
  }
337
292
  }
338
- declare class MeshRefractionMaterialImpl extends MeshPhysicalNodeMaterial {
339
- private _envMap;
340
- private _bounces;
341
- private _ior;
342
- private _fresnel;
343
- private _aberrationStrength;
344
- private _color;
345
- private _opacityValue;
293
+ declare const MeshRefractionMaterialImpl_base: WithUniforms<typeof THREE.MeshPhysicalNodeMaterial, {
294
+ bounces: () => THREE.UniformNode<"float", number>;
295
+ fresnel: () => THREE.UniformNode<"float", number>;
296
+ aberrationStrength: () => THREE.UniformNode<"float", number>;
297
+ tintColor: () => THREE.UniformNode<"color", THREE.Color>;
298
+ }>;
299
+ declare class MeshRefractionMaterialImpl extends MeshRefractionMaterialImpl_base {
346
300
  private _fastChroma;
347
301
  readonly isMeshRefractionMaterial = true;
348
302
  constructor(fastChroma?: boolean);
349
303
  private _buildRefractionShader;
350
- get envMap(): THREE.Texture | THREE.CubeTexture | null;
351
- set envMap(v: THREE.Texture | THREE.CubeTexture | null);
352
- get bounces(): number;
353
- set bounces(v: number);
354
- get ior(): number;
355
- set ior(v: number);
356
- get fresnel(): number;
357
- set fresnel(v: number);
358
- get aberrationStrength(): number;
359
- set aberrationStrength(v: number);
360
- get tintColor(): THREE.Color;
361
- set tintColor(v: THREE.Color | THREE.ColorRepresentation);
362
- get opacity(): number;
363
- set opacity(v: number);
364
304
  }
365
305
  declare const MeshRefractionMaterial: ForwardRefComponent<MeshRefractionMaterialProps, MeshRefractionMaterialImpl>;
366
306
 
@@ -374,41 +314,26 @@ type PortalProps = Omit<ThreeElements['meshBasicMaterial'], 'ref'> & {
374
314
  events?: boolean;
375
315
  children?: React.ReactNode;
376
316
  };
377
- declare class PortalMaterialImpl extends MeshBasicNodeMaterial {
378
- private _blur;
379
- private _map;
380
- private _sdf;
381
- private _blend;
382
- private _size;
383
- private _resolution;
317
+ declare const PortalMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
318
+ blur: () => THREE.UniformNode<"float", number>;
319
+ sdf: () => THREE.TextureNode<"vec4">;
320
+ blend: () => THREE.UniformNode<"float", number>;
321
+ size: () => THREE.UniformNode<"float", number>;
322
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
323
+ }>;
324
+ declare class PortalMaterialImpl extends PortalMaterialImpl_base {
384
325
  constructor();
385
326
  private _buildShader;
386
- get blur(): number;
387
- set blur(v: number);
388
- get map(): THREE.Texture | null;
389
- set map(v: THREE.Texture | null);
390
- get sdf(): THREE.Texture | null;
391
- set sdf(v: THREE.Texture | null);
392
- get blend(): number;
393
- set blend(v: number);
394
- get size(): number;
395
- set size(v: number);
396
- get resolution(): THREE.Vector2 | [number, number];
397
- set resolution(v: THREE.Vector2 | [number, number]);
398
327
  }
399
328
  declare const MeshPortalMaterial: ForwardRefComponent<PortalProps, PortalMaterialImpl>;
400
329
 
401
- declare class DistortMaterialImplWebGPU extends THREE.MeshPhysicalNodeMaterial {
402
- timeUniform: THREE.UniformNode<'float', number>;
403
- distortUniform: THREE.UniformNode<'float', number>;
404
- radiusUniform: THREE.UniformNode<'float', number>;
330
+ declare const DistortMaterialImplWebGPU_base: WithUniforms<typeof THREE.MeshPhysicalNodeMaterial, {
331
+ time: () => THREE.UniformNode<"float", number>;
332
+ distort: () => THREE.UniformNode<"float", number>;
333
+ radius: () => THREE.UniformNode<"float", number>;
334
+ }>;
335
+ declare class DistortMaterialImplWebGPU extends DistortMaterialImplWebGPU_base {
405
336
  constructor(parameters?: THREE.MeshPhysicalMaterialParameters);
406
- get time(): number;
407
- set time(v: number);
408
- get distort(): number;
409
- set distort(v: number);
410
- get radius(): number;
411
- set radius(v: number);
412
337
  }
413
338
  declare module '@react-three/fiber' {
414
339
  interface ThreeElements {
@@ -425,14 +350,12 @@ type MeshDistortMaterialProps = Omit<ThreeElements['distortMaterialImplWebGPU'],
425
350
  };
426
351
  declare const MeshDistortMaterial: ForwardRefComponent<MeshDistortMaterialProps, DistortMaterialImplWebGPU>;
427
352
 
428
- declare class WobbleMaterialImpl extends THREE.MeshStandardNodeMaterial {
429
- timeUniform: THREE.UniformNode<'float', number>;
430
- factorUniform: THREE.UniformNode<'float', number>;
353
+ declare const WobbleMaterialImpl_base: WithUniforms<typeof THREE.MeshStandardNodeMaterial, {
354
+ time: () => THREE.UniformNode<"float", number>;
355
+ factor: () => THREE.UniformNode<"float", number>;
356
+ }>;
357
+ declare class WobbleMaterialImpl extends WobbleMaterialImpl_base {
431
358
  constructor(parameters?: THREE.MeshStandardMaterialParameters);
432
- get time(): number;
433
- set time(v: number);
434
- get factor(): number;
435
- set factor(v: number);
436
359
  }
437
360
  declare module '@react-three/fiber' {
438
361
  interface ThreeElements {
@@ -2270,55 +2193,27 @@ declare module '@react-three/fiber' {
2270
2193
  wireframeMaterial: WireframeMaterialType;
2271
2194
  }
2272
2195
  }
2273
- declare class WireframeMaterialImpl extends MeshBasicNodeMaterial {
2274
- private _strokeOpacity;
2275
- private _fillOpacity;
2276
- private _fillMix;
2277
- private _thickness;
2278
- private _colorBackfaces;
2279
- private _dashInvert;
2280
- private _dash;
2281
- private _dashRepeats;
2282
- private _dashLength;
2283
- private _squeeze;
2284
- private _squeezeMin;
2285
- private _squeezeMax;
2286
- private _stroke;
2287
- private _backfaceStroke;
2288
- private _fill;
2196
+ declare const WireframeMaterialImpl_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2197
+ strokeOpacity: () => THREE.UniformNode<"float", number>;
2198
+ fillOpacity: () => THREE.UniformNode<"float", number>;
2199
+ fillMix: () => THREE.UniformNode<"float", number>;
2200
+ thickness: () => THREE.UniformNode<"float", number>;
2201
+ colorBackfaces: () => THREE.UniformNode<"bool", boolean>;
2202
+ dashInvert: () => THREE.UniformNode<"bool", boolean>;
2203
+ dash: () => THREE.UniformNode<"bool", boolean>;
2204
+ dashRepeats: () => THREE.UniformNode<"float", number>;
2205
+ dashLength: () => THREE.UniformNode<"float", number>;
2206
+ squeeze: () => THREE.UniformNode<"bool", boolean>;
2207
+ squeezeMin: () => THREE.UniformNode<"float", number>;
2208
+ squeezeMax: () => THREE.UniformNode<"float", number>;
2209
+ stroke: () => THREE.UniformNode<"color", THREE.Color>;
2210
+ backfaceStroke: () => THREE.UniformNode<"color", THREE.Color>;
2211
+ fill: () => THREE.UniformNode<"color", THREE.Color>;
2212
+ }>;
2213
+ declare class WireframeMaterialImpl extends WireframeMaterialImpl_base {
2289
2214
  readonly isWireframeMaterial = true;
2290
2215
  constructor();
2291
2216
  private _buildWireframeShader;
2292
- get strokeOpacity(): number;
2293
- set strokeOpacity(v: number);
2294
- get fillOpacity(): number;
2295
- set fillOpacity(v: number);
2296
- get fillMix(): number;
2297
- set fillMix(v: number);
2298
- get thickness(): number;
2299
- set thickness(v: number);
2300
- get colorBackfaces(): boolean;
2301
- set colorBackfaces(v: boolean);
2302
- get dashInvert(): boolean;
2303
- set dashInvert(v: boolean);
2304
- get dash(): boolean;
2305
- set dash(v: boolean);
2306
- get dashRepeats(): number;
2307
- set dashRepeats(v: number);
2308
- get dashLength(): number;
2309
- set dashLength(v: number);
2310
- get squeeze(): boolean;
2311
- set squeeze(v: boolean);
2312
- get squeezeMin(): number;
2313
- set squeezeMin(v: number);
2314
- get squeezeMax(): number;
2315
- set squeezeMax(v: number);
2316
- get stroke(): THREE.Color;
2317
- set stroke(v: THREE.Color | THREE.ColorRepresentation);
2318
- get backfaceStroke(): THREE.Color;
2319
- set backfaceStroke(v: THREE.Color | THREE.ColorRepresentation);
2320
- get fill(): THREE.Color;
2321
- set fill(v: THREE.Color | THREE.ColorRepresentation);
2322
2217
  }
2323
2218
  declare function setBarycentricCoordinates(geometry: THREE.BufferGeometry): THREE.BufferGeometry;
2324
2219
  declare const WireframeMaterial: ForwardRefComponent<WireframeMaterialProps, WireframeMaterialImpl>;
@@ -2358,57 +2253,56 @@ declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProp
2358
2253
 
2359
2254
  declare function BakeShadows(): null;
2360
2255
 
2361
- declare class ConvolutionMaterial extends MeshBasicNodeMaterial {
2362
- private _inputBuffer;
2363
- private _depthBuffer;
2364
- private _resolution;
2365
- private _texelSize;
2366
- private _halfTexelSize;
2367
- private _kernel;
2368
- private _scale;
2369
- private _cameraNear;
2370
- private _cameraFar;
2371
- private _minDepthThreshold;
2372
- private _maxDepthThreshold;
2373
- private _depthScale;
2374
- private _depthToBlurRatioBias;
2375
- private _useDepth;
2256
+ declare const ConvolutionMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2257
+ inputBuffer: () => THREE.TextureNode<"vec4">;
2258
+ depthBuffer: () => THREE.TextureNode<"vec4">;
2259
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2260
+ texelSize: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2261
+ halfTexelSize: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2262
+ kernelValue: () => THREE.UniformNode<"float", number>;
2263
+ scale: () => THREE.UniformNode<"float", number>;
2264
+ cameraNear: () => THREE.UniformNode<"float", number>;
2265
+ cameraFar: () => THREE.UniformNode<"float", number>;
2266
+ minDepthThreshold: () => THREE.UniformNode<"float", number>;
2267
+ maxDepthThreshold: () => THREE.UniformNode<"float", number>;
2268
+ depthScale: () => THREE.UniformNode<"float", number>;
2269
+ depthToBlurRatioBias: () => THREE.UniformNode<"float", number>;
2270
+ useDepth: () => THREE.UniformNode<"bool", boolean>;
2271
+ }>;
2272
+ declare class ConvolutionMaterial extends ConvolutionMaterial_base {
2376
2273
  readonly kernel: Float32Array;
2377
2274
  constructor(texelSize?: THREE.Vector2);
2378
2275
  private _buildShader;
2379
2276
  setTexelSize(x: number, y: number): void;
2380
2277
  setResolution(resolution: THREE.Vector2): void;
2381
- get inputBuffer(): THREE.Texture | null;
2382
- set inputBuffer(v: THREE.Texture | null);
2383
- get depthBuffer(): THREE.Texture | null;
2384
- set depthBuffer(v: THREE.Texture | null);
2385
- get resolution(): THREE.Vector2;
2386
- set resolution(v: THREE.Vector2);
2387
- get texelSize(): THREE.Vector2;
2388
- set texelSize(v: THREE.Vector2);
2389
- get halfTexelSize(): THREE.Vector2;
2390
- set halfTexelSize(v: THREE.Vector2);
2391
- get kernelValue(): number;
2392
- set kernelValue(v: number);
2393
- get scale(): number;
2394
- set scale(v: number);
2395
- get cameraNear(): number;
2396
- set cameraNear(v: number);
2397
- get cameraFar(): number;
2398
- set cameraFar(v: number);
2399
- get minDepthThreshold(): number;
2400
- set minDepthThreshold(v: number);
2401
- get maxDepthThreshold(): number;
2402
- set maxDepthThreshold(v: number);
2403
- get depthScale(): number;
2404
- set depthScale(v: number);
2405
- get depthToBlurRatioBias(): number;
2406
- set depthToBlurRatioBias(v: number);
2407
- get useDepth(): boolean;
2408
- set useDepth(v: boolean);
2409
- }
2410
-
2411
- declare const DiscardMaterial: MeshBasicNodeMaterial;
2278
+ }
2279
+
2280
+ interface BlurPassProps {
2281
+ gl?: THREE.Renderer;
2282
+ resolution: number;
2283
+ width?: number;
2284
+ height?: number;
2285
+ minDepthThreshold?: number;
2286
+ maxDepthThreshold?: number;
2287
+ depthScale?: number;
2288
+ depthToBlurRatioBias?: number;
2289
+ }
2290
+ declare class BlurPass {
2291
+ readonly renderTargetA: THREE.RenderTarget;
2292
+ readonly renderTargetB: THREE.RenderTarget;
2293
+ readonly convolutionMaterial: ConvolutionMaterial;
2294
+ readonly screen: QuadMesh;
2295
+ renderToScreen: boolean;
2296
+ constructor({ resolution, width, height, minDepthThreshold, maxDepthThreshold, depthScale, depthToBlurRatioBias, }: BlurPassProps);
2297
+ render(renderer: THREE.Renderer, inputBuffer: THREE.RenderTarget, outputBuffer?: THREE.RenderTarget | null): void;
2298
+ setSize(width: number, height: number): void;
2299
+ dispose(): void;
2300
+ }
2301
+
2302
+ declare class DiscardNodeMaterial extends MeshBasicNodeMaterial {
2303
+ constructor();
2304
+ }
2305
+ declare const DiscardMaterial: DiscardNodeMaterial;
2412
2306
 
2413
2307
  declare enum GradientType {
2414
2308
  Linear = "linear",
@@ -2445,68 +2339,44 @@ type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
2445
2339
  });
2446
2340
  declare const Image: ForwardRefComponent<ImageProps, THREE.Mesh>;
2447
2341
 
2448
- declare class SpotLightMaterial extends MeshBasicNodeMaterial {
2449
- private _depth;
2450
- private _opacity;
2451
- private _attenuation;
2452
- private _anglePower;
2453
- private _spotPosition;
2454
- private _lightColor;
2455
- private _cameraNear;
2456
- private _cameraFar;
2457
- private _resolution;
2342
+ type MeshDiscardMaterialProps = Omit<ThreeElements['meshBasicMaterial'], 'ref'>;
2343
+ declare const MeshDiscardMaterial: ForwardRefComponent<MeshDiscardMaterialProps, DiscardNodeMaterial>;
2344
+
2345
+ declare const SpotLightMaterial_base: WithUniforms<typeof THREE.MeshBasicNodeMaterial, {
2346
+ depth: () => THREE.TextureNode<"vec4">;
2347
+ attenuation: () => THREE.UniformNode<"float", number>;
2348
+ anglePower: () => THREE.UniformNode<"float", number>;
2349
+ spotPosition: () => THREE.UniformNode<"vec3", THREE.Vector3>;
2350
+ lightColor: () => THREE.UniformNode<"color", THREE.Color>;
2351
+ cameraNear: () => THREE.UniformNode<"float", number>;
2352
+ cameraFar: () => THREE.UniformNode<"float", number>;
2353
+ resolution: () => THREE.UniformNode<"vec2", THREE.Vector2>;
2354
+ }>;
2355
+ declare class SpotLightMaterial extends SpotLightMaterial_base {
2458
2356
  constructor();
2459
2357
  private _buildShader;
2460
- get depth(): THREE.Texture | null;
2461
- set depth(v: THREE.Texture | null);
2462
- get opacity(): number;
2463
- set opacity(v: number);
2464
- get attenuation(): number;
2465
- set attenuation(v: number);
2466
- get anglePower(): number;
2467
- set anglePower(v: number);
2468
- get spotPosition(): THREE.Vector3;
2469
- set spotPosition(v: THREE.Vector3);
2470
- get lightColor(): THREE.Color;
2471
- set lightColor(v: THREE.Color);
2472
- get cameraNear(): number;
2473
- set cameraNear(v: number);
2474
- get cameraFar(): number;
2475
- set cameraFar(v: number);
2476
- get resolution(): THREE.Vector2;
2477
- set resolution(v: THREE.Vector2);
2478
2358
  }
2479
2359
 
2480
2360
  declare const HtmlMaterial: ({ transform }: {
2481
2361
  transform: boolean;
2482
2362
  }) => React.JSX.Element;
2483
2363
 
2484
- declare class StarfieldMaterial extends SpriteNodeMaterial {
2485
- private _time;
2486
- private _fade;
2487
- positionNode: ReturnType<typeof Fn>;
2488
- scaleNode: ReturnType<typeof Fn>;
2489
- colorNode: ReturnType<typeof Fn>;
2364
+ declare const StarfieldMaterial_base: WithUniforms<typeof SpriteNodeMaterial, {
2365
+ time: () => THREE.UniformNode<"float", number>;
2366
+ fade: () => THREE.UniformNode<"float", number>;
2367
+ }>;
2368
+ declare class StarfieldMaterial extends StarfieldMaterial_base {
2490
2369
  constructor();
2491
2370
  setTime(time: number): void;
2492
2371
  setFade(fade: number): void;
2493
- get time(): number;
2494
- set time(value: number);
2495
- get fade(): number;
2496
- set fade(value: number);
2497
- }
2498
-
2499
- declare class SparklesMaterial extends SpriteNodeMaterial {
2500
- private _time;
2501
- private _pixelRatio;
2502
- positionNode: ReturnType<typeof Fn>;
2503
- scaleNode: ReturnType<typeof Fn>;
2504
- colorNode: ReturnType<typeof Fn>;
2372
+ }
2373
+
2374
+ declare const SparklesMaterial_base: WithUniforms<typeof SpriteNodeMaterial, {
2375
+ time: () => THREE.UniformNode<"float", number>;
2376
+ pixelRatio: () => THREE.UniformNode<"float", number>;
2377
+ }>;
2378
+ declare class SparklesMaterial extends SparklesMaterial_base {
2505
2379
  constructor();
2506
- get time(): number;
2507
- set time(value: number);
2508
- get pixelRatio(): number;
2509
- set pixelRatio(value: number);
2510
2380
  }
2511
2381
 
2512
2382
  type GridMaterialType = {
@@ -2594,5 +2464,35 @@ type SparklesProps = Omit<ThreeElements['mesh'], 'ref'> & {
2594
2464
  };
2595
2465
  declare const Sparkles: ForwardRefComponent<SparklesProps, THREE.InstancedMesh>;
2596
2466
 
2597
- export { AccumulativeShadows, AdaptiveDpr, AdaptiveEvents, ArcballControls, BBAnchor, Backdrop, BakeShadows, Billboard, Bounds, Box, CameraShake, Capsule, CatmullRomLine, Caustics, CausticsMaterial, CausticsNormalMaterial, CausticsProjectionMaterial, Center, Circle, Clone, Cloud, CloudInstance, Clouds, ComputedAttribute, Cone, ContactShadows, ConvolutionMaterial, CubeCamera, CubeTexture, CubicBezierLine, CurveModifier, CycleRaycast, Cylinder, Decal, Detailed, DetectGPU, DeviceOrientationControls, DiscardMaterial, Dodecahedron, DragControls, Edges, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, Example, Extrude, FakeCloudMaterial, Fbo, Fbx, FirstPersonControls, Fisheye, Float, FlyControls, GizmoHelper, GizmoViewcube, GizmoViewport, Gltf, GradientTexture, GradientType, Grid, Helper, Html, HtmlMaterial, Hud, Icosahedron, Image, Instance, InstancedAttribute, Instances, IsObject, KeyboardControls, Ktx2, Lathe, Lightformer, Line, Loader, MapControls, Mask, MatcapTexture, Merged, MeshDistortMaterial, MeshPortalMaterial, MeshReflectorMaterial, MeshReflectorMaterial$1 as MeshReflectorMaterialImpl, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, MotionPathControls, NormalTexture, Octahedron, OrbitControls, OrthographicCamera, Outlines, PCSSShadowNode, PerformanceMonitor, PerspectiveCamera, PivotControls, Plane, Point, PointMaterial, PointMaterialImpl, PointerLockControls, Points, PointsBuffer, Polyhedron, PositionMesh, PositionPoint, PositionalAudio, Preload, PresentationControls, Progress, QuadraticBezierLine, RandomizedLight, RenderCubeTexture, RenderTexture, Resize, Ring, RoundedBox, RoundedBoxGeometry, Sampler, ScreenQuad, ScreenSizer, ScreenSpace, ScreenVideoTexture, Scroll, ScrollControls, Segment, SegmentObject, Segments, Select, Shadow, Shape, Sky, SoftShadows, Sparkles, SparklesMaterial, Sphere, SpotLight, SpotLightMaterial, SpriteAnimator, Stage, StarfieldMaterial, Stars, Stats, StatsGl, Svg, Tetrahedron, Text3D, Texture, Torus, TorusKnot, TrackballControls, Trail, TrailTexture, TransformControls, Tube, VideoTexture, View, WebcamVideoTexture, Wireframe, WireframeMaterial, WireframeMaterialShaders, accumulativeContext, calcPosFromAngles, checkIfFrameIsEmpty, createInstances, getFirstFrame, meshBounds, presetsObj, setBarycentricCoordinates, setWireframeOverride, useAnimations, useAspect, useBounds, useContextBridge, useCubeCamera, useCubeTexture, useCursor, useCustomRaycast, useDepthBuffer, useDetectGPU, useEnvironment, useFBO, useFBX, useFont, useGLTF, useGizmoContext, useHelper, useIntersect, useKTX2, useKeyboardControls, useMask, useMatcapTexture, useMotion, useNormalTexture, usePerformanceMonitor, useProgress, useScroll, useSelect, useSpriteAnimator, useSpriteLoader, useSurfaceSampler, useTexture, useTrail, useTrailTexture, useVariants, useVideoTexture, useWireframeUniforms };
2598
- export type { AccumulativeShadowsProps, ArcballControlsProps, Args, BBAnchorProps, BackdropProps, BillboardProps, BoundsApi, BoundsProps, CalculatePosition, CameraShakeProps, CatmullRomLineProps, CausticsProps, CenterProps, CloneProps, CloudProps, CloudsProps, ComputedAttributeProps, ContactShadowsProps, ContainerProps, CubeCameraOptions, CubeCameraProps, CubeTextureProps, CubicBezierLineProps, CurveModifierProps, CurveModifierRef, CycleRaycastProps, DecalProps, DetailedProps, DetectGPUProps, DeviceOrientationControlsProps, DragConfig, DragControlsProps, EdgesProps, EdgesRef, EnvironmentLoaderProps, EnvironmentProps, ExampleApi, ExampleProps, FboProps, FirstPersonControlsProps, FisheyeProps, FloatProps, FlyControlsProps, FontData, FrameData, GizmoHelperProps, GltfProps, Glyph, GradientTextureProps, GridMaterialType, GridProps, HelperProps, HtmlProps, HudProps, ImageProps, InstanceProps, InstancedAttributeProps, InstancesProps, KeyboardControlsEntry, KeyboardControlsProps, Ktx2Props, LightProps, LineProps, LoaderOptions, MapControlsProps, MaskProps, MergedProps, MeshDistortMaterialProps, MeshReflectorMaterialProps, MeshRefractionMaterialProps, MeshRefractionMaterialType, MeshTransmissionMaterialProps, MetaData, MotionPathProps, MotionPathRef, OnCenterCallbackProps, OnDragProps, OnDragStartProps, OnHoverProps, OrbitControlsChangeEvent, OrbitControlsProps, OrthographicCameraProps, OutlinesProps, PCSSShadowNodeOptions, PerformanceMonitorApi, PerformanceMonitorProps, PerspectiveCameraProps, PivotControlsProps, PointMaterialProps, PointerLockControlsProps, PointsBuffersProps, PointsInstancesProps, PortalProps, PositionalAudioProps, PreloadProps, PresentationControlProps, PresetsType, QuadraticBezierLineProps, QuadraticBezierLineRef, RandomizedLightProps, RenderCubeTextureApi, RenderCubeTextureProps, RenderTextureProps, ResizeProps, RoundedBoxGeometryProps, RoundedBoxProps, SamplerProps, ScreenQuadProps, ScreenSizerProps, ScreenSpaceProps, ScreenVideoTextureProps, ScrollControlsProps, ScrollControlsState, ScrollProps, SegmentProps, SegmentsProps, SelectProps, ShadowProps, ShadowType, ShakeController, ShapeProps, Size, SizeProps, SkyProps, SoftShadowsProps, SparklesProps, SpotLightProps, SpriteAnimatorProps, SpriteData, StageProps, StarsProps, StatsGlProps, StatsOptions, StatsProps, SvgProps, Text3DProps, TrackballControlsProps, TrailProps, TrailTextureProps, TransformControlsProps, TransformFn, UseGLTFOptions, VideoTextureProps, ViewProps, ViewportProps, WebcamVideoTextureProps, WireframeMaterialProps, WireframeMaterialType, WobbleMaterialProps, useSurfaceSamplerProps };
2467
+ type InspectorProps = React.PropsWithChildren<{
2468
+ hide?: boolean;
2469
+ }>;
2470
+ declare function Inspector({ children, hide }: InspectorProps): React.JSX.Element;
2471
+
2472
+ interface Control<V> {
2473
+ value: V;
2474
+ label?: string;
2475
+ min?: number;
2476
+ max?: number;
2477
+ step?: number;
2478
+ color?: boolean;
2479
+ options?: readonly V[] | Record<string, V>;
2480
+ onChange?: (value: V) => void;
2481
+ }
2482
+ interface Folder<S extends ControlSchema = ControlSchema> {
2483
+ label?: string;
2484
+ collapsed?: boolean;
2485
+ schema: S;
2486
+ }
2487
+ type ControlSchema = Record<string, Control<any> | Folder<any>>;
2488
+ type ControlValues<S extends ControlSchema> = {
2489
+ [K in keyof S]: S[K] extends Folder<infer FS> ? ControlValues<FS> : S[K] extends Control<infer V> ? V : never;
2490
+ };
2491
+ interface InspectorControlsOptions {
2492
+ title?: string;
2493
+ collapsed?: boolean;
2494
+ }
2495
+ declare function useInspectorControls<S extends ControlSchema>(schema: S, options?: InspectorControlsOptions): ControlValues<S>;
2496
+
2497
+ export { AccumulativeShadows, AdaptiveDpr, AdaptiveEvents, ArcballControls, BBAnchor, Backdrop, BakeShadows, Billboard, BlurPass, Bounds, Box, CameraShake, Capsule, CatmullRomLine, Caustics, CausticsMaterial, CausticsNormalMaterial, CausticsProjectionMaterial, Center, Circle, Clone, Cloud, CloudInstance, Clouds, ComputedAttribute, Cone, ContactShadows, ConvolutionMaterial, CubeCamera, CubeTexture, CubicBezierLine, CurveModifier, CycleRaycast, Cylinder, Decal, Detailed, DetectGPU, DeviceOrientationControls, DiscardMaterial, DiscardNodeMaterial, Dodecahedron, DragControls, Edges, Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal, Example, Extrude, FakeCloudMaterial, Fbo, Fbx, FirstPersonControls, Fisheye, Float, FlyControls, GizmoHelper, GizmoViewcube, GizmoViewport, Gltf, GradientTexture, GradientType, Grid, Helper, Html, HtmlMaterial, Hud, Icosahedron, Image, Inspector, Instance, InstancedAttribute, Instances, IsObject, KeyboardControls, Ktx2, Lathe, Lightformer, Line, Loader, MapControls, Mask, MatcapTexture, Merged, MeshDiscardMaterial, MeshDistortMaterial, MeshPortalMaterial, MeshReflectorMaterial, MeshReflectorMaterial$1 as MeshReflectorMaterialImpl, MeshRefractionMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, MotionPathControls, NormalTexture, Octahedron, OrbitControls, OrthographicCamera, Outlines, PCSSShadowNode, PerformanceMonitor, PerspectiveCamera, PivotControls, Plane, Point, PointMaterial, PointMaterialImpl, PointerLockControls, Points, PointsBuffer, Polyhedron, PositionMesh, PositionPoint, PositionalAudio, Preload, PresentationControls, Progress, QuadraticBezierLine, RandomizedLight, RenderCubeTexture, RenderTexture, Resize, Ring, RoundedBox, RoundedBoxGeometry, Sampler, ScreenQuad, ScreenSizer, ScreenSpace, ScreenVideoTexture, Scroll, ScrollControls, Segment, SegmentObject, Segments, Select, Shadow, Shape, Sky, SoftShadows, Sparkles, SparklesMaterial, Sphere, SpotLight, SpotLightMaterial, SpriteAnimator, Stage, StarfieldMaterial, Stars, Stats, StatsGl, Svg, Tetrahedron, Text3D, Texture, Torus, TorusKnot, TrackballControls, Trail, TrailTexture, TransformControls, Tube, VideoTexture, View, WebcamVideoTexture, Wireframe, WireframeMaterial, WireframeMaterialImpl, WireframeMaterialShaders, accumulativeContext, calcPosFromAngles, checkIfFrameIsEmpty, createInstances, getFirstFrame, meshBounds, presetsObj, setBarycentricCoordinates, setWireframeOverride, useAnimations, useAspect, useBounds, useContextBridge, useCubeCamera, useCubeTexture, useCursor, useCustomRaycast, useDepthBuffer, useDetectGPU, useEnvironment, useFBO, useFBX, useFont, useGLTF, useGizmoContext, useHelper, useInspectorControls, useIntersect, useKTX2, useKeyboardControls, useMask, useMatcapTexture, useMotion, useNormalTexture, usePerformanceMonitor, useProgress, useScroll, useSelect, useSpriteAnimator, useSpriteLoader, useSurfaceSampler, useTexture, useTrail, useTrailTexture, useVariants, useVideoTexture, useWireframeUniforms, withUniforms };
2498
+ export type { AccumulativeContext, AccumulativeLightContext, AccumulativeShadowsProps, ArcballControlsProps, Args, BBAnchorProps, BackdropProps, BillboardProps, BlurPassProps, BoundsApi, BoundsProps, CalculatePosition, CameraShakeProps, CatmullRomLineProps, CausticsProps, CenterProps, CloneProps, CloudProps, CloudsProps, ComputedAttributeProps, ContactShadowsProps, ContainerProps, Control, ControlSchema, ControlValues, CubeCameraOptions, CubeCameraProps, CubeTextureProps, CubicBezierLineProps, CurveModifierProps, CurveModifierRef, CycleRaycastProps, DecalProps, DetailedProps, DetectGPUProps, DeviceOrientationControlsProps, DragConfig, DragControlsProps, EdgesProps, EdgesRef, EnvironmentLoaderProps, EnvironmentProps, ExampleApi, ExampleProps, FboProps, FirstPersonControlsProps, FisheyeProps, FloatProps, FlyControlsProps, Folder, FontData, FrameData, GizmoHelperProps, GltfProps, Glyph, GradientTextureProps, GridMaterialType, GridProps, HelperProps, HtmlProps, HudProps, ImageProps, InspectorControlsOptions, InspectorProps, InstanceProps, InstancedAttributeProps, InstancesProps, KeyboardControlsEntry, KeyboardControlsProps, Ktx2Props, LightProps, LineProps, LoaderOptions, MapControlsProps, MaskProps, MergedProps, MeshDiscardMaterialProps, MeshDistortMaterialProps, MeshReflectorMaterialProps, MeshRefractionMaterialProps, MeshRefractionMaterialType, MeshTransmissionMaterialProps, MetaData, MotionPathProps, MotionPathRef, OnCenterCallbackProps, OnDragProps, OnDragStartProps, OnHoverProps, OrbitControlsChangeEvent, OrbitControlsProps, OrthographicCameraProps, OutlinesProps, PCSSShadowNodeOptions, PerformanceMonitorApi, PerformanceMonitorProps, PerspectiveCameraProps, PivotControlsProps, PointMaterialProps, PointerLockControlsProps, PointsBuffersProps, PointsInstancesProps, PortalProps, PositionalAudioProps, PreloadProps, PresentationControlProps, PresetsType, QuadraticBezierLineProps, QuadraticBezierLineRef, RandomizedLightProps, RenderCubeTextureApi, RenderCubeTextureProps, RenderTextureProps, ReservedUniformName, ResizeProps, RoundedBoxGeometryProps, RoundedBoxProps, SamplerProps, ScreenQuadProps, ScreenSizerProps, ScreenSpaceProps, ScreenVideoTextureProps, ScrollControlsProps, ScrollControlsState, ScrollProps, SegmentProps, SegmentsProps, SelectProps, ShadowProps, ShadowType, ShakeController, ShapeProps, Size, SizeProps, SkyProps, SoftShadowsProps, SparklesProps, SpotLightProps, SpriteAnimatorProps, SpriteData, StageProps, StarsProps, StatsGlProps, StatsOptions, StatsProps, SvgProps, Text3DProps, TrackballControlsProps, TrailProps, TrailTextureProps, TransformControlsProps, TransformFn, UniformFactory, UniformTable, UniformValue, UseGLTFOptions, VideoTextureProps, ViewProps, ViewportProps, WebcamVideoTextureProps, WireframeMaterialProps, WireframeMaterialType, WireframeProps, WithUniforms, WobbleMaterialProps, useSurfaceSamplerProps };