@react-three/drei 11.0.0-alpha.5 → 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/webgpu/index.d.ts CHANGED
@@ -3,11 +3,10 @@ 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, Color, ColorRepresentation, Object3D, Texture as Texture$1, Fog, FogExp2, WebGLCubeRenderTarget, 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, SpotLight as SpotLight$1 } from 'three/webgpu';
7
- import { reflector, uniform, 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
- import { DragConfig } from '@use-gesture/react';
11
10
  import { FirstPersonControls as FirstPersonControls$1 } from 'three/examples/jsm/controls/FirstPersonControls.js';
12
11
  import { FlyControls as FlyControls$1 } from 'three/examples/jsm/controls/FlyControls.js';
13
12
  import * as zustand from 'zustand';
@@ -17,6 +16,7 @@ import { OrbitControls as OrbitControls$1 } from 'three/addons/controls/OrbitCon
17
16
  import { PointerLockControls as PointerLockControls$1 } from 'three/examples/jsm/controls/PointerLockControls.js';
18
17
  import { TrackballControls as TrackballControls$1 } from 'three/examples/jsm/controls/TrackballControls.js';
19
18
  import * as three from 'three';
19
+ import { Material as Material$1 } from 'three';
20
20
  import { Line2 as Line2$1 } from 'three/examples/jsm/lines/Line2.js';
21
21
  import { Line2 } from 'three/examples/jsm/lines/webgpu/Line2.js';
22
22
  import { Flow } from 'three/examples/jsm/modifiers/CurveModifier.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;
@@ -76,7 +97,7 @@ interface AccumulativeContext {
76
97
  frames: number;
77
98
  blend: number;
78
99
  count: number;
79
- getMesh: () => THREE.Mesh<THREE.PlaneGeometry, THREE.ShaderMaterial>;
100
+ getMesh: () => THREE.Mesh<THREE.PlaneGeometry, SoftShadowMaterialImpl>;
80
101
  reset: () => void;
81
102
  update: (frames?: number) => void;
82
103
  }
@@ -84,6 +105,14 @@ interface AccumulativeLightContext {
84
105
  update: () => void;
85
106
  }
86
107
  declare const accumulativeContext: React.Context<AccumulativeContext>;
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 {
113
+ constructor();
114
+ private _buildShader;
115
+ }
87
116
  declare const AccumulativeShadows: ForwardRefComponent<AccumulativeShadowsProps, AccumulativeContext>;
88
117
  type RandomizedLightProps = Omit<ThreeElements['group'], 'ref'> & {
89
118
  frames?: number;
@@ -114,70 +143,35 @@ type CausticsProps = Omit<ThreeElements['group'], 'ref'> & {
114
143
  resolution?: number;
115
144
  lightSource?: [x: number, y: number, z: number] | React.RefObject<THREE.Object3D>;
116
145
  };
117
- declare class CausticsProjectionMaterial extends MeshBasicNodeMaterial {
118
- private _causticsTexture;
119
- private _causticsTextureB;
120
- private _color;
121
- private _lightProjMatrix;
122
- 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 {
123
153
  constructor();
124
154
  private _buildShader;
125
- get causticsTexture(): THREE.Texture;
126
- set causticsTexture(v: THREE.Texture);
127
- get causticsTextureB(): THREE.Texture;
128
- set causticsTextureB(v: THREE.Texture);
129
- get color(): THREE.Color;
130
- set color(v: THREE.Color);
131
- get lightProjMatrix(): THREE.Matrix4;
132
- set lightProjMatrix(v: THREE.Matrix4);
133
- get lightViewMatrix(): THREE.Matrix4;
134
- set lightViewMatrix(v: THREE.Matrix4);
135
- }
136
- declare class CausticsMaterial extends MeshBasicNodeMaterial {
137
- private _cameraMatrixWorld;
138
- private _cameraProjectionMatrixInv;
139
- private _normalTexture;
140
- private _depthTexture;
141
- private _lightDir;
142
- private _lightPlaneNormal;
143
- private _lightPlaneConstant;
144
- private _near;
145
- private _far;
146
- private _worldRadius;
147
- private _ior;
148
- private _resolution;
149
- private _size;
150
- 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 {
151
173
  constructor();
152
174
  private _buildShader;
153
- get cameraMatrixWorld(): THREE.Matrix4;
154
- set cameraMatrixWorld(v: THREE.Matrix4);
155
- get cameraProjectionMatrixInv(): THREE.Matrix4;
156
- set cameraProjectionMatrixInv(v: THREE.Matrix4);
157
- get normalTexture(): THREE.Texture | null;
158
- set normalTexture(v: THREE.Texture | null);
159
- get depthTexture(): THREE.Texture | null;
160
- set depthTexture(v: THREE.Texture | null);
161
- get lightDir(): THREE.Vector3;
162
- set lightDir(v: THREE.Vector3);
163
- get lightPlaneNormal(): THREE.Vector3;
164
- set lightPlaneNormal(v: THREE.Vector3);
165
- get lightPlaneConstant(): number;
166
- set lightPlaneConstant(v: number);
167
- get near(): number;
168
- set near(v: number);
169
- get far(): number;
170
- set far(v: number);
171
- get worldRadius(): number;
172
- set worldRadius(v: number);
173
- get ior(): number;
174
- set ior(v: number);
175
- get resolution(): number;
176
- set resolution(v: number);
177
- get size(): number;
178
- set size(v: number);
179
- get intensity(): number;
180
- set intensity(v: number);
181
175
  }
182
176
  declare class CausticsNormalMaterial extends MeshNormalNodeMaterial {
183
177
  constructor(side?: THREE.Side);
@@ -196,6 +190,7 @@ type MeshTransmissionMaterialType = Omit<ThreeElements['meshPhysicalMaterial'],
196
190
  temporalDistortion?: number;
197
191
  buffer?: THREE.Texture;
198
192
  time?: number;
193
+ debugMode?: number;
199
194
  args?: [samples: number, transmissionSampler: boolean];
200
195
  };
201
196
  type MeshTransmissionMaterialProps = Omit<MeshTransmissionMaterialType, 'ref' | 'args'> & {
@@ -213,44 +208,7 @@ declare module '@react-three/fiber' {
213
208
  meshTransmissionMaterial: MeshTransmissionMaterialType;
214
209
  }
215
210
  }
216
- declare class MeshTransmissionMaterialImpl extends MeshPhysicalNodeMaterial {
217
- private _chromaticAberration;
218
- private _anisotropicBlur;
219
- private _time;
220
- private _distortion;
221
- private _distortionScale;
222
- private _temporalDistortion;
223
- private _buffer;
224
- private _transmissionValue;
225
- private _attenuationDistance;
226
- private _attenuationColor;
227
- private _samples;
228
- private _transmissionSampler;
229
- readonly isMeshTransmissionMaterial = true;
230
- constructor(samples?: number, transmissionSampler?: boolean);
231
- private _buildTransmissionShader;
232
- get chromaticAberration(): number;
233
- set chromaticAberration(v: number);
234
- get anisotropicBlur(): number;
235
- set anisotropicBlur(v: number);
236
- get time(): number;
237
- set time(v: number);
238
- get distortion(): number;
239
- set distortion(v: number);
240
- get distortionScale(): number;
241
- set distortionScale(v: number);
242
- get temporalDistortion(): number;
243
- set temporalDistortion(v: number);
244
- get buffer(): THREE.Texture | null;
245
- set buffer(v: THREE.Texture | null);
246
- get _transmission(): number;
247
- set _transmission(v: number);
248
- get attenuationDistance(): number;
249
- set attenuationDistance(v: number);
250
- get attenuationColor(): THREE.Color;
251
- set attenuationColor(v: THREE.Color);
252
- }
253
- declare const MeshTransmissionMaterial: ForwardRefComponent<MeshTransmissionMaterialProps, MeshTransmissionMaterialImpl>;
211
+ declare const MeshTransmissionMaterial: ForwardRefComponent<MeshTransmissionMaterialProps, ThreeElements['meshTransmissionMaterial']>;
254
212
 
255
213
  interface MeshReflectorMaterialOptions {
256
214
  resolution?: number;
@@ -265,43 +223,23 @@ interface MeshReflectorMaterialOptions {
265
223
  mixContrast?: number;
266
224
  reflectorOffset?: number;
267
225
  }
268
- 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 {
269
239
  reflection: ReturnType<typeof reflector>;
270
- mirrorUniform: ReturnType<typeof uniform<number>>;
271
- mixBlurUniform: ReturnType<typeof uniform<number>>;
272
- mixStrengthUniform: ReturnType<typeof uniform<number>>;
273
- minDepthThresholdUniform: ReturnType<typeof uniform<number>>;
274
- maxDepthThresholdUniform: ReturnType<typeof uniform<number>>;
275
- depthScaleUniform: ReturnType<typeof uniform<number>>;
276
- depthToBlurRatioBiasUniform: ReturnType<typeof uniform<number>>;
277
- distortionUniform: ReturnType<typeof uniform<number>>;
278
- mixContrastUniform: ReturnType<typeof uniform<number>>;
279
- blurRadiusUniform: ReturnType<typeof uniform<number>>;
280
- hasBlurUniform: ReturnType<typeof uniform<number>>;
281
- hasDepthUniform: ReturnType<typeof uniform<number>>;
240
+ get reflectorTarget(): THREE.Object3D;
282
241
  constructor(options?: MeshReflectorMaterialOptions, parameters?: THREE.MeshStandardMaterialParameters);
283
242
  private setupNodes;
284
- get mirror(): number;
285
- set mirror(v: number);
286
- get mixBlur(): number;
287
- set mixBlur(v: number);
288
- get mixStrength(): number;
289
- set mixStrength(v: number);
290
- get minDepthThreshold(): number;
291
- set minDepthThreshold(v: number);
292
- get maxDepthThreshold(): number;
293
- set maxDepthThreshold(v: number);
294
- get depthScale(): number;
295
- set depthScale(v: number);
296
- get depthToBlurRatioBias(): number;
297
- set depthToBlurRatioBias(v: number);
298
- get distortion(): number;
299
- set distortion(v: number);
300
- get mixContrast(): number;
301
- set mixContrast(v: number);
302
- get blurRadius(): number;
303
- set blurRadius(v: number);
304
- get reflectorTarget(): THREE.Object3D;
305
243
  }
306
244
 
307
245
  declare module '@react-three/fiber' {
@@ -344,6 +282,7 @@ type MeshRefractionMaterialType = Omit<ThreeElements['meshPhysicalMaterial'], 'a
344
282
  fastChroma?: boolean;
345
283
  tintColor?: THREE.ColorRepresentation;
346
284
  opacity?: number;
285
+ args?: [fastChroma?: boolean];
347
286
  };
348
287
  type MeshRefractionMaterialProps = Omit<MeshRefractionMaterialType, 'ref'>;
349
288
  declare module '@react-three/fiber' {
@@ -351,38 +290,17 @@ declare module '@react-three/fiber' {
351
290
  meshRefractionMaterial: MeshRefractionMaterialType;
352
291
  }
353
292
  }
354
- declare class MeshRefractionMaterialImpl extends MeshPhysicalNodeMaterial {
355
- private _envMap;
356
- private _bounces;
357
- private _ior;
358
- private _fresnel;
359
- private _aberrationStrength;
360
- private _color;
361
- private _opacityValue;
362
- private _resolution;
363
- private _thickness;
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 {
364
300
  private _fastChroma;
365
301
  readonly isMeshRefractionMaterial = true;
366
302
  constructor(fastChroma?: boolean);
367
303
  private _buildRefractionShader;
368
- get envMap(): THREE.Texture | THREE.CubeTexture | null;
369
- set envMap(v: THREE.Texture | THREE.CubeTexture | null);
370
- get bounces(): number;
371
- set bounces(v: number);
372
- get ior(): number;
373
- set ior(v: number);
374
- get fresnel(): number;
375
- set fresnel(v: number);
376
- get aberrationStrength(): number;
377
- set aberrationStrength(v: number);
378
- get tintColor(): THREE.Color;
379
- set tintColor(v: THREE.Color | THREE.ColorRepresentation);
380
- get opacity(): number;
381
- set opacity(v: number);
382
- get resolution(): THREE.Vector2;
383
- set resolution(v: THREE.Vector2);
384
- get thickness(): number;
385
- set thickness(v: number);
386
304
  }
387
305
  declare const MeshRefractionMaterial: ForwardRefComponent<MeshRefractionMaterialProps, MeshRefractionMaterialImpl>;
388
306
 
@@ -396,41 +314,26 @@ type PortalProps = Omit<ThreeElements['meshBasicMaterial'], 'ref'> & {
396
314
  events?: boolean;
397
315
  children?: React.ReactNode;
398
316
  };
399
- declare class PortalMaterialImpl extends MeshBasicNodeMaterial {
400
- private _blur;
401
- private _map;
402
- private _sdf;
403
- private _blend;
404
- private _size;
405
- 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 {
406
325
  constructor();
407
326
  private _buildShader;
408
- get blur(): number;
409
- set blur(v: number);
410
- get map(): THREE.Texture | null;
411
- set map(v: THREE.Texture | null);
412
- get sdf(): THREE.Texture | null;
413
- set sdf(v: THREE.Texture | null);
414
- get blend(): number;
415
- set blend(v: number);
416
- get size(): number;
417
- set size(v: number);
418
- get resolution(): THREE.Vector2 | [number, number];
419
- set resolution(v: THREE.Vector2 | [number, number]);
420
327
  }
421
328
  declare const MeshPortalMaterial: ForwardRefComponent<PortalProps, PortalMaterialImpl>;
422
329
 
423
- declare class DistortMaterialImplWebGPU extends THREE.MeshPhysicalNodeMaterial {
424
- timeUniform: ReturnType<typeof uniform>;
425
- distortUniform: ReturnType<typeof uniform>;
426
- radiusUniform: ReturnType<typeof uniform>;
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 {
427
336
  constructor(parameters?: THREE.MeshPhysicalMaterialParameters);
428
- get time(): unknown;
429
- set time(v: unknown);
430
- get distort(): unknown;
431
- set distort(v: unknown);
432
- get radius(): unknown;
433
- set radius(v: unknown);
434
337
  }
435
338
  declare module '@react-three/fiber' {
436
339
  interface ThreeElements {
@@ -447,14 +350,12 @@ type MeshDistortMaterialProps = Omit<ThreeElements['distortMaterialImplWebGPU'],
447
350
  };
448
351
  declare const MeshDistortMaterial: ForwardRefComponent<MeshDistortMaterialProps, DistortMaterialImplWebGPU>;
449
352
 
450
- declare class WobbleMaterialImpl extends THREE.MeshStandardNodeMaterial {
451
- timeUniform: ReturnType<typeof uniform>;
452
- factorUniform: ReturnType<typeof uniform>;
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 {
453
358
  constructor(parameters?: THREE.MeshStandardMaterialParameters);
454
- get time(): unknown;
455
- set time(v: unknown);
456
- get factor(): unknown;
457
- set factor(v: unknown);
458
359
  }
459
360
  declare module '@react-three/fiber' {
460
361
  interface ThreeElements {
@@ -471,7 +372,7 @@ type WobbleMaterialProps = Omit<ThreeElements['meshStandardMaterial'], 'ref'> &
471
372
  };
472
373
  declare const MeshWobbleMaterial: ForwardRefComponent<WobbleMaterialProps, WobbleMaterialImpl>;
473
374
 
474
- declare function FakeCloudMaterial(BaseMaterial: typeof Material): Material;
375
+ declare function FakeCloudMaterial(BaseMaterial: typeof Material): Material<three.MaterialEventMap>;
475
376
 
476
377
  type OutlinesProps = Omit<ThreeElements['group'], 'ref'> & {
477
378
  color?: ReactThreeFiber.Color;
@@ -525,7 +426,7 @@ type RenderCubeTextureProps = Omit<ThreeElements['texture'], 'ref' | 'args' | 'r
525
426
  };
526
427
  type RenderCubeTextureApi = {
527
428
  scene: THREE.Scene;
528
- fbo: THREE.WebGLCubeRenderTarget;
429
+ fbo: CubeRenderTarget;
529
430
  camera: THREE.CubeCamera;
530
431
  };
531
432
  declare const RenderCubeTexture: ForwardRefComponent<RenderCubeTextureProps, RenderCubeTextureApi>;
@@ -601,7 +502,7 @@ type CubeCameraProps = Omit<ThreeElements['group'], 'children'> & {
601
502
  frames?: number;
602
503
  } & CubeCameraOptions;
603
504
  declare function useCubeCamera({ resolution, near, far, envMap, fog }?: CubeCameraOptions): {
604
- fbo: WebGLCubeRenderTarget;
505
+ fbo: CubeRenderTarget;
605
506
  camera: CubeCamera$1;
606
507
  update: () => void;
607
508
  };
@@ -674,8 +575,9 @@ type DeviceOrientationControlsProps = Omit<ThreeElement<typeof DeviceOrientation
674
575
  };
675
576
  declare const DeviceOrientationControls: ForwardRefComponent<DeviceOrientationControlsProps, DeviceOrientationControls$1>;
676
577
 
677
- type ExpandedDragConfig = DragConfig & {
678
- preventOverlap?: boolean;
578
+ type DragConfig = {
579
+ threshold?: number;
580
+ filterTaps?: boolean;
679
581
  };
680
582
  type DragControlsProps = {
681
583
  autoTransform?: boolean;
@@ -687,7 +589,7 @@ type DragControlsProps = {
687
589
  onDrag?: (localMatrix: THREE.Matrix4, deltaLocalMatrix: THREE.Matrix4, worldMatrix: THREE.Matrix4, deltaWorldMatrix: THREE.Matrix4) => void;
688
590
  onDragEnd?: () => void;
689
591
  children: React.ReactNode;
690
- dragConfig?: ExpandedDragConfig;
592
+ dragConfig?: DragConfig;
691
593
  };
692
594
  declare const DragControls: ForwardRefComponent<DragControlsProps, THREE.Group>;
693
595
 
@@ -928,6 +830,7 @@ type CloudsProps = Omit<ThreeElements['group'], 'ref'> & {
928
830
  frustumCulled?: boolean;
929
831
  };
930
832
  type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
833
+ materialFactory?: (baseMaterial: typeof Material) => Material;
931
834
  seed?: number;
932
835
  segments?: number;
933
836
  bounds?: ReactThreeFiber.Vector3;
@@ -945,9 +848,52 @@ type CloudProps = Omit<ThreeElements['group'], 'ref'> & {
945
848
  opacity?: number;
946
849
  color?: ReactThreeFiber.Color;
947
850
  };
948
- declare const Clouds: React.ForwardRefExoticComponent<Omit<CloudsProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
949
- declare const CloudInstance: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
950
- declare const Cloud: React.ForwardRefExoticComponent<Omit<CloudProps, "ref"> & React.RefAttributes<Group<three.Object3DEventMap>>>;
851
+ declare const Clouds: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
852
+ texture?: string;
853
+ limit?: number;
854
+ range?: number;
855
+ material?: typeof Material;
856
+ materialFactory?: (baseMaterial: typeof Material) => Material;
857
+ frustumCulled?: boolean;
858
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
859
+ declare const CloudInstance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
860
+ materialFactory?: (baseMaterial: typeof Material) => Material;
861
+ seed?: number;
862
+ segments?: number;
863
+ bounds?: ReactThreeFiber.Vector3;
864
+ concentrate?: "random" | "inside" | "outside";
865
+ scale?: ReactThreeFiber.Vector3;
866
+ volume?: number;
867
+ smallestVolume?: number;
868
+ distribute?: (cloud: CloudState, index: number) => {
869
+ point: Vector3$1;
870
+ volume?: number;
871
+ };
872
+ growth?: number;
873
+ speed?: number;
874
+ fade?: number;
875
+ opacity?: number;
876
+ color?: ReactThreeFiber.Color;
877
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
878
+ declare const Cloud: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<Group<three.Object3DEventMap>, _react_three_fiber.MathProps<Group<three.Object3DEventMap>> & _react_three_fiber.ReactProps<Group<three.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<Group<three.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<Group<three.Object3DEventMap>, typeof Group>, "object">>>, "ref"> & {
879
+ materialFactory?: (baseMaterial: typeof Material) => Material;
880
+ seed?: number;
881
+ segments?: number;
882
+ bounds?: ReactThreeFiber.Vector3;
883
+ concentrate?: "random" | "inside" | "outside";
884
+ scale?: ReactThreeFiber.Vector3;
885
+ volume?: number;
886
+ smallestVolume?: number;
887
+ distribute?: (cloud: CloudState, index: number) => {
888
+ point: Vector3$1;
889
+ volume?: number;
890
+ };
891
+ growth?: number;
892
+ speed?: number;
893
+ fade?: number;
894
+ opacity?: number;
895
+ color?: ReactThreeFiber.Color;
896
+ } & React.RefAttributes<Group<three.Object3DEventMap>>>;
951
897
 
952
898
  type CatmullRomLineProps = Omit<LineProps, 'ref' | 'segments'> & {
953
899
  closed?: boolean;
@@ -1067,25 +1013,25 @@ type Args<T> = T extends new (...args: any) => any ? ConstructorParameters<T> :
1067
1013
  type ShapeProps<T> = Omit<ThreeElements['mesh'], 'ref' | 'args'> & {
1068
1014
  args?: Args<T>;
1069
1015
  };
1070
- declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1071
- declare const Circle: ForwardRefComponent<ShapeProps<typeof THREE.CircleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1072
- declare const Cone: ForwardRefComponent<ShapeProps<typeof THREE.ConeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1073
- declare const Cylinder: ForwardRefComponent<ShapeProps<typeof THREE.CylinderGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1074
- declare const Sphere: ForwardRefComponent<ShapeProps<typeof THREE.SphereGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1075
- declare const Plane: ForwardRefComponent<ShapeProps<typeof THREE.PlaneGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1076
- declare const Tube: ForwardRefComponent<ShapeProps<typeof THREE.TubeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1077
- declare const Torus: ForwardRefComponent<ShapeProps<typeof THREE.TorusGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1078
- declare const TorusKnot: ForwardRefComponent<ShapeProps<typeof THREE.TorusKnotGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1079
- declare const Tetrahedron: ForwardRefComponent<ShapeProps<typeof THREE.TetrahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1080
- declare const Ring: ForwardRefComponent<ShapeProps<typeof THREE.RingGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1081
- declare const Polyhedron: ForwardRefComponent<ShapeProps<typeof THREE.PolyhedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1082
- declare const Icosahedron: ForwardRefComponent<ShapeProps<typeof THREE.IcosahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1083
- declare const Octahedron: ForwardRefComponent<ShapeProps<typeof THREE.OctahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1084
- declare const Dodecahedron: ForwardRefComponent<ShapeProps<typeof THREE.DodecahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1085
- declare const Extrude: ForwardRefComponent<ShapeProps<typeof THREE.ExtrudeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1086
- declare const Lathe: ForwardRefComponent<ShapeProps<typeof THREE.LatheGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1087
- declare const Capsule: ForwardRefComponent<ShapeProps<typeof THREE.CapsuleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1088
- declare const Shape: ForwardRefComponent<ShapeProps<typeof THREE.ShapeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>>;
1016
+ declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1017
+ declare const Circle: ForwardRefComponent<ShapeProps<typeof THREE.CircleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1018
+ declare const Cone: ForwardRefComponent<ShapeProps<typeof THREE.ConeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1019
+ declare const Cylinder: ForwardRefComponent<ShapeProps<typeof THREE.CylinderGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1020
+ declare const Sphere: ForwardRefComponent<ShapeProps<typeof THREE.SphereGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1021
+ declare const Plane: ForwardRefComponent<ShapeProps<typeof THREE.PlaneGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1022
+ declare const Tube: ForwardRefComponent<ShapeProps<typeof THREE.TubeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1023
+ declare const Torus: ForwardRefComponent<ShapeProps<typeof THREE.TorusGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1024
+ declare const TorusKnot: ForwardRefComponent<ShapeProps<typeof THREE.TorusKnotGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1025
+ declare const Tetrahedron: ForwardRefComponent<ShapeProps<typeof THREE.TetrahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1026
+ declare const Ring: ForwardRefComponent<ShapeProps<typeof THREE.RingGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1027
+ declare const Polyhedron: ForwardRefComponent<ShapeProps<typeof THREE.PolyhedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1028
+ declare const Icosahedron: ForwardRefComponent<ShapeProps<typeof THREE.IcosahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1029
+ declare const Octahedron: ForwardRefComponent<ShapeProps<typeof THREE.OctahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1030
+ declare const Dodecahedron: ForwardRefComponent<ShapeProps<typeof THREE.DodecahedronGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1031
+ declare const Extrude: ForwardRefComponent<ShapeProps<typeof THREE.ExtrudeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1032
+ declare const Lathe: ForwardRefComponent<ShapeProps<typeof THREE.LatheGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1033
+ declare const Capsule: ForwardRefComponent<ShapeProps<typeof THREE.CapsuleGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1034
+ declare const Shape: ForwardRefComponent<ShapeProps<typeof THREE.ShapeGeometry>, THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.Object3DEventMap>>;
1089
1035
 
1090
1036
  type Glyph = {
1091
1037
  _cachedOutline: string[];
@@ -1124,7 +1070,8 @@ type Text3DProps = Omit<ThreeElements['mesh'], 'ref'> & {
1124
1070
  font: FontData | string;
1125
1071
  bevelSegments?: number;
1126
1072
  smooth?: number;
1127
- } & Omit<TextGeometryParameters, 'font'>;
1073
+ height?: number;
1074
+ } & Omit<TextGeometryParameters, 'font' | 'depth'>;
1128
1075
  declare const Text3D: ForwardRefComponent<React.PropsWithChildren<Text3DProps & {
1129
1076
  letterSpacing?: number;
1130
1077
  lineHeight?: number;
@@ -1176,6 +1123,12 @@ type OnDragStartProps = {
1176
1123
  origin: THREE.Vector3;
1177
1124
  directions: THREE.Vector3[];
1178
1125
  };
1126
+ type OnDragProps = {
1127
+ local: THREE.Matrix4;
1128
+ deltaLocal: THREE.Matrix4;
1129
+ world: THREE.Matrix4;
1130
+ deltaWorld: THREE.Matrix4;
1131
+ };
1179
1132
  type OnHoverProps = {
1180
1133
  component: 'Arrow' | 'Slider' | 'Rotator' | 'Sphere';
1181
1134
  axis: 0 | 1 | 2;
@@ -1206,8 +1159,8 @@ type PivotControlsProps = {
1206
1159
  annotations?: boolean;
1207
1160
  annotationsClass?: string;
1208
1161
  onDragStart?: (props: OnDragStartProps) => void;
1209
- onDrag?: (l: THREE.Matrix4, deltaL: THREE.Matrix4, w: THREE.Matrix4, deltaW: THREE.Matrix4) => void;
1210
- onDragEnd?: () => void;
1162
+ onDrag?: (props: OnDragProps) => void;
1163
+ onDragEnd?: (props: OnDragProps) => void;
1211
1164
  onHover?: (props: OnHoverProps) => void;
1212
1165
  depthTest?: boolean;
1213
1166
  renderOrder?: number;
@@ -1250,8 +1203,8 @@ type HelperType = Object3D & {
1250
1203
  dispose: () => void;
1251
1204
  };
1252
1205
  type HelperConstructor = new (...args: any[]) => any;
1253
- type HelperArgs<T> = T extends [infer _, ...infer R] ? R : never;
1254
- declare function useHelper<T extends HelperConstructor>(object3D: React.RefObject<Object3D> | Falsey, helperConstructor: T, ...args: HelperArgs<ConstructorParameters<T>>): React.RefObject<HelperType | null>;
1206
+ type HelperArgs<T> = T extends [infer _, ...infer R] ? R : [];
1207
+ declare function useHelper<T extends HelperConstructor>(object3D: React.RefObject<Object3D | null> | Falsey, helperConstructor: T, ...args: HelperArgs<ConstructorParameters<T>>): React.RefObject<HelperType | null>;
1255
1208
  type HelperProps<T extends HelperConstructor> = {
1256
1209
  type: T;
1257
1210
  args?: HelperArgs<ConstructorParameters<T>>;
@@ -1308,7 +1261,7 @@ declare class PositionMesh extends THREE.Group {
1308
1261
  get geometry(): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap> | undefined;
1309
1262
  raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
1310
1263
  }
1311
- declare const Instance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1264
+ declare const Instance: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<PositionMesh>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1312
1265
  context?: React.Context<Api$1>;
1313
1266
  } & React.RefAttributes<unknown>>;
1314
1267
  declare const Instances: ForwardRefComponent<InstancesProps, THREE.InstancedMesh>;
@@ -1317,10 +1270,21 @@ interface MergedProps extends Omit<InstancesProps, 'children'> {
1317
1270
  children: (...instances: [React.FC<InstanceProps> & Record<string, React.FC<InstanceProps>>, ...React.FC<InstanceProps>[]]) => React.ReactNode;
1318
1271
  }
1319
1272
  declare const Merged: ForwardRefComponent<MergedProps, THREE.Group>;
1320
- declare function createInstances<T = InstanceProps>(): readonly [React.ForwardRefExoticComponent<Omit<InstancesProps, "ref"> & React.RefAttributes<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.InstancedMeshEventMap>>>, React.ForwardRefExoticComponent<React.PropsWithoutRef<T & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1273
+ declare function createInstances<T = InstanceProps>(): readonly [React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>, _react_three_fiber.MathProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>> & _react_three_fiber.ReactProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>, typeof THREE.InstancedMesh>, "object">>>, "ref" | "args"> & {
1274
+ context?: React.Context<Api$1>;
1275
+ range?: number;
1276
+ limit?: number;
1277
+ frames?: number;
1278
+ } & React.RefAttributes<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap> | THREE.Material<THREE.MaterialEventMap>[], THREE.InstancedMeshEventMap>>>, React.ForwardRefExoticComponent<React.PropsWithoutRef<T & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<PositionMesh, _react_three_fiber.MathProps<PositionMesh> & _react_three_fiber.ReactProps<PositionMesh> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<PositionMesh>>>, Omit<_react_three_fiber.InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
1321
1279
  context?: React.Context<Api$1>;
1322
1280
  }> & React.RefAttributes<PositionMesh & T>>];
1323
- declare const InstancedAttribute: React.ForwardRefExoticComponent<Omit<InstancedAttributeProps, "ref"> & React.RefAttributes<THREE.InstancedBufferAttribute>>;
1281
+ declare const InstancedAttribute: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.InstancedBufferAttribute, _react_three_fiber.MathProps<THREE.InstancedBufferAttribute> & _react_three_fiber.ReactProps<THREE.InstancedBufferAttribute> & _react_three_fiber.NodeProps<THREE.InstancedBufferAttribute>>>, Omit<_react_three_fiber.InstanceProps<THREE.InstancedBufferAttribute, typeof THREE.InstancedBufferAttribute>, "object">>>, "ref" | "args"> & {
1282
+ name: string;
1283
+ defaultValue: any;
1284
+ normalized?: boolean;
1285
+ usage?: number;
1286
+ type?: "float" | "int" | "uint" | "short" | "ushort" | "byte";
1287
+ } & React.RefAttributes<THREE.InstancedBufferAttribute>>;
1324
1288
 
1325
1289
  type Size = {
1326
1290
  w: number;
@@ -1424,7 +1388,40 @@ type SpriteAnimatorState = {
1424
1388
  ref: React.Ref<THREE.Group>;
1425
1389
  };
1426
1390
  declare function useSpriteAnimator(): SpriteAnimatorState | null;
1427
- declare const SpriteAnimator: React.ForwardRefExoticComponent<Omit<SpriteAnimatorProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1391
+ declare const SpriteAnimator: React.ForwardRefExoticComponent<{
1392
+ startFrame?: number;
1393
+ endFrame?: number;
1394
+ fps?: number;
1395
+ frameName?: string;
1396
+ textureDataURL?: string;
1397
+ textureImageURL?: string;
1398
+ loop?: boolean;
1399
+ numberOfFrames?: number;
1400
+ autoPlay?: boolean;
1401
+ animationNames?: Array<string>;
1402
+ onStart?: (data: AnimationEventData) => void;
1403
+ onEnd?: (data: AnimationEventData) => void;
1404
+ onLoopEnd?: (data: AnimationEventData) => void;
1405
+ onFrame?: (data: AnimationEventData) => void;
1406
+ play?: boolean;
1407
+ pause?: boolean;
1408
+ flipX?: boolean;
1409
+ alphaTest?: number;
1410
+ asSprite?: boolean;
1411
+ offset?: number;
1412
+ playBackwards?: boolean;
1413
+ resetOnEnd?: boolean;
1414
+ instanceItems?: Vector3[];
1415
+ maxItems?: number;
1416
+ spriteDataset?: {
1417
+ spriteTexture: THREE.Texture;
1418
+ spriteData: SpriteData | null;
1419
+ aspect: Vector3;
1420
+ } | null;
1421
+ canvasRenderingContext2DSettings?: CanvasRenderingContext2DSettings;
1422
+ roundFramePosition?: boolean;
1423
+ meshProps?: CommonMeshProps;
1424
+ } & Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.Group<THREE.Object3DEventMap>, _react_three_fiber.MathProps<THREE.Group<THREE.Object3DEventMap>> & _react_three_fiber.ReactProps<THREE.Group<THREE.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.Group<THREE.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.Group<THREE.Object3DEventMap>, typeof THREE.Group>, "object">>>, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
1428
1425
 
1429
1426
  type Api<T extends AnimationClip> = {
1430
1427
  ref: React.RefObject<Object3D | undefined | null>;
@@ -1510,7 +1507,7 @@ declare const Svg: ForwardRefComponent<SvgProps, Object3D>;
1510
1507
  declare function useDepthBuffer({ size, frames }?: {
1511
1508
  size?: number;
1512
1509
  frames?: number;
1513
- }): DepthTexture | null;
1510
+ }): DepthTexture<three.DepthTextureImageData> | null;
1514
1511
 
1515
1512
  interface CubeTextureOptions {
1516
1513
  path: string;
@@ -1609,27 +1606,42 @@ declare function Fbx({ path, ...props }: {
1609
1606
  type Path = string | string[];
1610
1607
  type UseDraco = boolean | string;
1611
1608
  type UseMeshopt = boolean;
1609
+ type UseKTX2 = boolean | string;
1612
1610
  type ExtendLoader$1 = (loader: GLTFLoader) => void;
1613
- declare const useGLTF: {
1614
- <T extends Path>(path: T, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader$1): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
1615
- preload(path: Path, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader$1): void;
1616
- clear(path: Path): void;
1617
- setDecoderPath(path: string): void;
1618
- };
1611
+ interface UseGLTFOptions {
1612
+ draco?: UseDraco;
1613
+ meshopt?: UseMeshopt;
1614
+ ktx2?: UseKTX2;
1615
+ extendLoader?: ExtendLoader$1;
1616
+ }
1617
+ declare function useGLTF<T extends Path>(path: T, optionsOrDraco?: UseGLTFOptions | UseDraco, useMeshoptArg?: UseMeshopt, useKTX2Arg?: UseKTX2, extendLoaderArg?: ExtendLoader$1): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
1618
+ declare namespace useGLTF {
1619
+ var preload: (path: Path, optionsOrDraco?: UseGLTFOptions | UseDraco, useMeshoptArg?: UseMeshopt, useKTX2Arg?: UseKTX2, extendLoaderArg?: ExtendLoader$1) => void;
1620
+ var clear: (path: Path) => void;
1621
+ var setDecoderPath: (path: string) => void;
1622
+ var setKTX2TranscoderPath: (path: string) => void;
1623
+ }
1619
1624
  type GltfProps = Omit<CloneProps, 'object'> & {
1620
1625
  src: string;
1621
1626
  useDraco?: UseDraco;
1622
1627
  useMeshOpt?: UseMeshopt;
1623
1628
  extendLoader?: ExtendLoader$1;
1629
+ options?: UseGLTFOptions;
1624
1630
  };
1625
- declare const Gltf: React.ForwardRefExoticComponent<Omit<GltfProps, "ref"> & React.RefAttributes<three.Group<three.Object3DEventMap>>>;
1631
+ declare const Gltf: React.ForwardRefExoticComponent<Omit<CloneProps, "object"> & {
1632
+ src: string;
1633
+ useDraco?: UseDraco;
1634
+ useMeshOpt?: UseMeshopt;
1635
+ extendLoader?: ExtendLoader$1;
1636
+ options?: UseGLTFOptions;
1637
+ } & React.RefAttributes<three.Group<three.Object3DEventMap>>>;
1626
1638
 
1627
1639
  type ExtendLoader = (loader: KTX2Loader) => void;
1628
1640
  declare function useKTX2<Url extends string[] | string | Record<string, string>>(input: Url, basisPath?: boolean | string, extendLoader?: ExtendLoader): Url extends any[] ? Texture$1[] : Url extends object ? {
1629
1641
  [key in keyof Url]: Texture$1;
1630
1642
  } : Texture$1;
1631
1643
  declare namespace useKTX2 {
1632
- var preload: (url: string extends any[] ? string[] : string, basisPath?: boolean | string, extendLoader?: ExtendLoader) => void;
1644
+ var preload: (url: string | string[], basisPath?: boolean | string, extendLoader?: ExtendLoader) => void;
1633
1645
  var clear: (input: string | string[]) => void;
1634
1646
  var setTranscoderPath: (path: string) => void;
1635
1647
  }
@@ -1670,6 +1682,13 @@ declare const Texture: ({ children, input, onLoad, }: {
1670
1682
  onLoad?: Parameters<typeof useTexture>[1];
1671
1683
  }) => React.JSX.Element;
1672
1684
 
1685
+ declare const useVariants: (model: GLTF, inVariant?: string) => {
1686
+ variants: any;
1687
+ activeVariant: string | null;
1688
+ setVariant: (variantName: string | null) => void;
1689
+ materials: Material$1<three.MaterialEventMap>[];
1690
+ };
1691
+
1673
1692
  type WebcamVideoTextureProps = Omit<VideoTextureProps, 'src'> & {
1674
1693
  constraints?: MediaStreamConstraints;
1675
1694
  };
@@ -1755,7 +1774,7 @@ declare const StatsGl: ForwardRefComponent<StatsGlProps, HTMLDivElement>;
1755
1774
  type FBOSettings = {
1756
1775
  depth?: boolean;
1757
1776
  } & RenderTargetOptions;
1758
- declare function useFBO(width?: number | FBOSettings, height?: number, settings?: FBOSettings): THREE.WebGLRenderTarget<THREE.Texture<unknown>>;
1777
+ declare function useFBO(width?: number | FBOSettings, height?: number, settings?: FBOSettings): THREE.WebGLRenderTarget<THREE.Texture<unknown, THREE.TextureEventMap>>;
1759
1778
  type UseFBOParams = Parameters<typeof useFBO>;
1760
1779
  type FboProps = {
1761
1780
  children?: (target: Fbo) => React.ReactNode;
@@ -1769,7 +1788,7 @@ declare const Fbo: React.ForwardRefExoticComponent<{
1769
1788
  height?: UseFBOParams[1];
1770
1789
  } & {
1771
1790
  depth?: boolean;
1772
- } & THREE.RenderTargetOptions & React.RefAttributes<THREE.WebGLRenderTarget<THREE.Texture<unknown>>>>;
1791
+ } & THREE.RenderTargetOptions & React.RefAttributes<THREE.WebGLRenderTarget<THREE.Texture<unknown, THREE.TextureEventMap>>>>;
1773
1792
 
1774
1793
  type FisheyeProps = ThreeElements['mesh'] & {
1775
1794
  zoom?: number;
@@ -1942,7 +1961,7 @@ type EnvironmentLoaderProps = {
1942
1961
  extensions?: (loader: Loader$1) => void;
1943
1962
  colorSpace?: ColorSpace;
1944
1963
  };
1945
- declare function useEnvironment({ files, path, preset, colorSpace, extensions, }?: Partial<EnvironmentLoaderProps>): Texture$1<unknown> | CubeTexture$1<unknown>;
1964
+ declare function useEnvironment({ files, path, preset, colorSpace, extensions, }?: Partial<EnvironmentLoaderProps>): Texture$1<unknown, three.TextureEventMap> | CubeTexture$1<unknown>;
1946
1965
  declare namespace useEnvironment {
1947
1966
  var preload: (preloadOptions?: EnvironmentLoaderPreloadOptions) => void;
1948
1967
  var clear: (clearOptions?: EnvironmentLoaderClearOptions) => void;
@@ -2013,7 +2032,13 @@ type ResizeProps = Omit<ThreeElements['group'], 'ref'> & {
2013
2032
  box3?: THREE.Box3;
2014
2033
  precise?: boolean;
2015
2034
  };
2016
- declare const Resize: React.ForwardRefExoticComponent<Omit<ResizeProps, "ref"> & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
2035
+ declare const Resize: React.ForwardRefExoticComponent<Omit<_react_three_fiber.Mutable<_react_three_fiber.Overwrite<Partial<_react_three_fiber.Overwrite<THREE.Group<THREE.Object3DEventMap>, _react_three_fiber.MathProps<THREE.Group<THREE.Object3DEventMap>> & _react_three_fiber.ReactProps<THREE.Group<THREE.Object3DEventMap>> & Partial<_react_three_fiber.EventHandlers> & _react_three_fiber.NodeProps<THREE.Group<THREE.Object3DEventMap>>>>, Omit<_react_three_fiber.InstanceProps<THREE.Group<THREE.Object3DEventMap>, typeof THREE.Group>, "object">>>, "ref"> & {
2036
+ width?: boolean;
2037
+ height?: boolean;
2038
+ depth?: boolean;
2039
+ box3?: THREE.Box3;
2040
+ precise?: boolean;
2041
+ } & React.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
2017
2042
 
2018
2043
  type ScreenSizerProps = Omit<ThreeElements['object3D'], 'ref'> & {
2019
2044
  scale?: number;
@@ -2168,55 +2193,27 @@ declare module '@react-three/fiber' {
2168
2193
  wireframeMaterial: WireframeMaterialType;
2169
2194
  }
2170
2195
  }
2171
- declare class WireframeMaterialImpl extends MeshBasicNodeMaterial {
2172
- private _strokeOpacity;
2173
- private _fillOpacity;
2174
- private _fillMix;
2175
- private _thickness;
2176
- private _colorBackfaces;
2177
- private _dashInvert;
2178
- private _dash;
2179
- private _dashRepeats;
2180
- private _dashLength;
2181
- private _squeeze;
2182
- private _squeezeMin;
2183
- private _squeezeMax;
2184
- private _stroke;
2185
- private _backfaceStroke;
2186
- 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 {
2187
2214
  readonly isWireframeMaterial = true;
2188
2215
  constructor();
2189
2216
  private _buildWireframeShader;
2190
- get strokeOpacity(): number;
2191
- set strokeOpacity(v: number);
2192
- get fillOpacity(): number;
2193
- set fillOpacity(v: number);
2194
- get fillMix(): number;
2195
- set fillMix(v: number);
2196
- get thickness(): number;
2197
- set thickness(v: number);
2198
- get colorBackfaces(): boolean;
2199
- set colorBackfaces(v: boolean);
2200
- get dashInvert(): boolean;
2201
- set dashInvert(v: boolean);
2202
- get dash(): boolean;
2203
- set dash(v: boolean);
2204
- get dashRepeats(): number;
2205
- set dashRepeats(v: number);
2206
- get dashLength(): number;
2207
- set dashLength(v: number);
2208
- get squeeze(): boolean;
2209
- set squeeze(v: boolean);
2210
- get squeezeMin(): number;
2211
- set squeezeMin(v: number);
2212
- get squeezeMax(): number;
2213
- set squeezeMax(v: number);
2214
- get stroke(): THREE.Color;
2215
- set stroke(v: THREE.Color | THREE.ColorRepresentation);
2216
- get backfaceStroke(): THREE.Color;
2217
- set backfaceStroke(v: THREE.Color | THREE.ColorRepresentation);
2218
- get fill(): THREE.Color;
2219
- set fill(v: THREE.Color | THREE.ColorRepresentation);
2220
2217
  }
2221
2218
  declare function setBarycentricCoordinates(geometry: THREE.BufferGeometry): THREE.BufferGeometry;
2222
2219
  declare const WireframeMaterial: ForwardRefComponent<WireframeMaterialProps, WireframeMaterialImpl>;
@@ -2256,57 +2253,56 @@ declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProp
2256
2253
 
2257
2254
  declare function BakeShadows(): null;
2258
2255
 
2259
- declare class ConvolutionMaterial extends MeshBasicNodeMaterial {
2260
- private _inputBuffer;
2261
- private _depthBuffer;
2262
- private _resolution;
2263
- private _texelSize;
2264
- private _halfTexelSize;
2265
- private _kernel;
2266
- private _scale;
2267
- private _cameraNear;
2268
- private _cameraFar;
2269
- private _minDepthThreshold;
2270
- private _maxDepthThreshold;
2271
- private _depthScale;
2272
- private _depthToBlurRatioBias;
2273
- 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 {
2274
2273
  readonly kernel: Float32Array;
2275
2274
  constructor(texelSize?: THREE.Vector2);
2276
2275
  private _buildShader;
2277
2276
  setTexelSize(x: number, y: number): void;
2278
2277
  setResolution(resolution: THREE.Vector2): void;
2279
- get inputBuffer(): THREE.Texture | null;
2280
- set inputBuffer(v: THREE.Texture | null);
2281
- get depthBuffer(): THREE.Texture | null;
2282
- set depthBuffer(v: THREE.Texture | null);
2283
- get resolution(): THREE.Vector2;
2284
- set resolution(v: THREE.Vector2);
2285
- get texelSize(): THREE.Vector2;
2286
- set texelSize(v: THREE.Vector2);
2287
- get halfTexelSize(): THREE.Vector2;
2288
- set halfTexelSize(v: THREE.Vector2);
2289
- get kernelValue(): number;
2290
- set kernelValue(v: number);
2291
- get scale(): number;
2292
- set scale(v: number);
2293
- get cameraNear(): number;
2294
- set cameraNear(v: number);
2295
- get cameraFar(): number;
2296
- set cameraFar(v: number);
2297
- get minDepthThreshold(): number;
2298
- set minDepthThreshold(v: number);
2299
- get maxDepthThreshold(): number;
2300
- set maxDepthThreshold(v: number);
2301
- get depthScale(): number;
2302
- set depthScale(v: number);
2303
- get depthToBlurRatioBias(): number;
2304
- set depthToBlurRatioBias(v: number);
2305
- get useDepth(): boolean;
2306
- set useDepth(v: boolean);
2307
- }
2308
-
2309
- 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;
2310
2306
 
2311
2307
  declare enum GradientType {
2312
2308
  Linear = "linear",
@@ -2320,7 +2316,7 @@ type GradientTextureProps = {
2320
2316
  type?: GradientType;
2321
2317
  innerCircleRadius?: number;
2322
2318
  outerCircleRadius?: number | 'auto';
2323
- } & Omit<ThreeElements['canvasTexture'], 'args'>;
2319
+ } & Omit<ThreeElements['canvasTexture'], 'args' | 'type'>;
2324
2320
  declare function GradientTexture({ stops, colors, size, width, type, innerCircleRadius, outerCircleRadius, ...props }: GradientTextureProps): React.JSX.Element;
2325
2321
 
2326
2322
  type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
@@ -2343,64 +2339,44 @@ type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
2343
2339
  });
2344
2340
  declare const Image: ForwardRefComponent<ImageProps, THREE.Mesh>;
2345
2341
 
2346
- declare class SpotLightMaterial extends MeshBasicNodeMaterial {
2347
- private _depth;
2348
- private _opacity;
2349
- private _attenuation;
2350
- private _anglePower;
2351
- private _spotPosition;
2352
- private _lightColor;
2353
- private _cameraNear;
2354
- private _cameraFar;
2355
- 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 {
2356
2356
  constructor();
2357
2357
  private _buildShader;
2358
- get depth(): THREE.Texture | null;
2359
- set depth(v: THREE.Texture | null);
2360
- get opacity(): number;
2361
- set opacity(v: number);
2362
- get attenuation(): number;
2363
- set attenuation(v: number);
2364
- get anglePower(): number;
2365
- set anglePower(v: number);
2366
- get spotPosition(): THREE.Vector3;
2367
- set spotPosition(v: THREE.Vector3);
2368
- get lightColor(): THREE.Color;
2369
- set lightColor(v: THREE.Color);
2370
- get cameraNear(): number;
2371
- set cameraNear(v: number);
2372
- get cameraFar(): number;
2373
- set cameraFar(v: number);
2374
- get resolution(): THREE.Vector2;
2375
- set resolution(v: THREE.Vector2);
2376
- }
2377
-
2378
- declare class StarfieldMaterial extends SpriteNodeMaterial {
2379
- private _time;
2380
- private _fade;
2381
- positionNode: ReturnType<typeof Fn>;
2382
- scaleNode: ReturnType<typeof Fn>;
2383
- colorNode: ReturnType<typeof Fn>;
2358
+ }
2359
+
2360
+ declare const HtmlMaterial: ({ transform }: {
2361
+ transform: boolean;
2362
+ }) => React.JSX.Element;
2363
+
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 {
2384
2369
  constructor();
2385
2370
  setTime(time: number): void;
2386
2371
  setFade(fade: number): void;
2387
- get time(): number;
2388
- set time(value: number);
2389
- get fade(): number;
2390
- set fade(value: number);
2391
- }
2392
-
2393
- declare class SparklesMaterial extends SpriteNodeMaterial {
2394
- private _time;
2395
- private _pixelRatio;
2396
- positionNode: ReturnType<typeof Fn>;
2397
- scaleNode: ReturnType<typeof Fn>;
2398
- 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 {
2399
2379
  constructor();
2400
- get time(): number;
2401
- set time(value: number);
2402
- get pixelRatio(): number;
2403
- set pixelRatio(value: number);
2404
2380
  }
2405
2381
 
2406
2382
  type GridMaterialType = {
@@ -2422,12 +2398,26 @@ type GridProps = Omit<ThreeElements['mesh'], 'ref' | 'args'> & GridMaterialType
2422
2398
  };
2423
2399
  declare const Grid: ForwardRefComponent<GridProps, THREE.Mesh>;
2424
2400
 
2401
+ type PCSSShadowNodeOptions = {
2402
+ size?: number;
2403
+ samples?: number;
2404
+ focus?: number;
2405
+ };
2406
+ declare class PCSSShadowNode extends ShadowNode {
2407
+ size: number;
2408
+ samples: number;
2409
+ focus: number;
2410
+ constructor(light: Light, { size, samples, focus }?: PCSSShadowNodeOptions);
2411
+ setupRenderTarget(shadow: any, builder: any): any;
2412
+ getShadowFilterFn(_type: number): ShaderCallable<THREE.Node>;
2413
+ }
2414
+
2425
2415
  type SoftShadowsProps = {
2426
2416
  size?: number;
2427
2417
  samples?: number;
2428
2418
  focus?: number;
2429
2419
  };
2430
- declare function SoftShadows(props: SoftShadowsProps): null;
2420
+ declare function SoftShadows({ size, samples, focus }: SoftShadowsProps): null;
2431
2421
 
2432
2422
  type SpotLightProps = Omit<ThreeElements['spotLight'], 'ref'> & {
2433
2423
  depthBuffer?: Texture$1;
@@ -2474,5 +2464,35 @@ type SparklesProps = Omit<ThreeElements['mesh'], 'ref'> & {
2474
2464
  };
2475
2465
  declare const Sparkles: ForwardRefComponent<SparklesProps, THREE.InstancedMesh>;
2476
2466
 
2477
- 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, 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, 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, useVideoTexture, useWireframeUniforms };
2478
- 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, DragControlsProps, EdgesProps, EdgesRef, EnvironmentLoaderProps, EnvironmentProps, ExampleApi, ExampleProps, ExpandedDragConfig, 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, OnDragStartProps, OnHoverProps, OrbitControlsChangeEvent, OrbitControlsProps, OrthographicCameraProps, OutlinesProps, 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, StatsProps, SvgProps, Text3DProps, TrackballControlsProps, TrailProps, TrailTextureProps, TransformControlsProps, TransformFn, 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 };