@soonspacejs/plugin-atmosphere 2.16.8 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1312 -65
- package/dist/index.esm.js +10 -10
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,65 +1,1312 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BufferGeometry
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
1
|
+
import { BlendFunction } from 'postprocessing';
|
|
2
|
+
import { BufferGeometry } from 'three';
|
|
3
|
+
import { Camera } from 'three';
|
|
4
|
+
import { Color } from 'three';
|
|
5
|
+
import { CubeCamera } from 'three';
|
|
6
|
+
import { Data3DTexture } from 'three';
|
|
7
|
+
import { DataArrayTexture } from 'three';
|
|
8
|
+
import { default as default_2 } from 'soonspacejs';
|
|
9
|
+
import { DepthPackingStrategies } from 'three';
|
|
10
|
+
import { DirectionalLight } from 'three';
|
|
11
|
+
import { Effect } from 'postprocessing';
|
|
12
|
+
import { EventDispatcher } from 'three';
|
|
13
|
+
import { FloatType } from 'three';
|
|
14
|
+
import { Group } from 'three';
|
|
15
|
+
import { HalfFloatType } from 'three';
|
|
16
|
+
import { IColor } from 'soonspacejs';
|
|
17
|
+
import { KawaseBlurPass } from 'postprocessing';
|
|
18
|
+
import { LightProbe } from 'three';
|
|
19
|
+
import { Loader } from 'three';
|
|
20
|
+
import { Matrix3 } from 'three';
|
|
21
|
+
import { Matrix4 } from 'three';
|
|
22
|
+
import { Mesh } from 'three';
|
|
23
|
+
import { MipmapBlurPass } from 'postprocessing';
|
|
24
|
+
import { Object3D } from 'three';
|
|
25
|
+
import { Pass } from 'postprocessing';
|
|
26
|
+
import { PerspectiveCamera } from 'three';
|
|
27
|
+
import { RawShaderMaterial } from 'three';
|
|
28
|
+
import { Ray } from 'three';
|
|
29
|
+
import { Resolution } from 'postprocessing';
|
|
30
|
+
import { Scene } from 'three';
|
|
31
|
+
import { Selection as Selection_2 } from 'postprocessing';
|
|
32
|
+
import { ShaderMaterial } from 'three';
|
|
33
|
+
import { ShaderMaterialParameters } from 'three';
|
|
34
|
+
import { ShaderPass } from 'postprocessing';
|
|
35
|
+
import { Texture } from 'three';
|
|
36
|
+
import { TextureDataType } from 'three';
|
|
37
|
+
import { Uniform } from 'three';
|
|
38
|
+
import { Vector2 } from 'three';
|
|
39
|
+
import { Vector3 } from 'three';
|
|
40
|
+
import { Vector4 } from 'three';
|
|
41
|
+
import { WebGL3DRenderTarget } from 'three';
|
|
42
|
+
import { WebGLArrayRenderTarget } from 'three';
|
|
43
|
+
import { WebGLCubeRenderTarget } from 'three';
|
|
44
|
+
import { WebGLProgramParametersWithUniforms } from 'three';
|
|
45
|
+
import { WebGLRenderer } from 'three';
|
|
46
|
+
import { WebGLRenderTarget } from 'three';
|
|
47
|
+
|
|
48
|
+
declare class AerialPerspectiveEffect extends Effect {
|
|
49
|
+
private camera;
|
|
50
|
+
private readonly atmosphere;
|
|
51
|
+
uniforms: UniformMap<AerialPerspectiveEffectUniforms>;
|
|
52
|
+
private _ellipsoid;
|
|
53
|
+
correctAltitude: boolean;
|
|
54
|
+
overlay: AtmosphereOverlay | null;
|
|
55
|
+
shadow: AtmosphereShadow | null;
|
|
56
|
+
shadowLength: AtmosphereShadowLength | null;
|
|
57
|
+
lightingMask: AtmosphereLightingMask | null;
|
|
58
|
+
constructor(camera?: Camera, options?: AerialPerspectiveEffectOptions, atmosphere?: AtmosphereParameters);
|
|
59
|
+
get mainCamera(): Camera;
|
|
60
|
+
set mainCamera(value: Camera);
|
|
61
|
+
private copyCameraSettings;
|
|
62
|
+
private updateOverlay;
|
|
63
|
+
private updateShadow;
|
|
64
|
+
private updateShadowLength;
|
|
65
|
+
private updateLightingMask;
|
|
66
|
+
update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime?: number): void;
|
|
67
|
+
get normalBuffer(): Texture | null;
|
|
68
|
+
set normalBuffer(value: Texture | null);
|
|
69
|
+
octEncodedNormal: boolean;
|
|
70
|
+
reconstructNormal: boolean;
|
|
71
|
+
hasNormals: boolean;
|
|
72
|
+
get irradianceTexture(): Texture | null;
|
|
73
|
+
set irradianceTexture(value: Texture | null);
|
|
74
|
+
get scatteringTexture(): Data3DTexture | null;
|
|
75
|
+
set scatteringTexture(value: Data3DTexture | null);
|
|
76
|
+
get transmittanceTexture(): Texture | null;
|
|
77
|
+
set transmittanceTexture(value: Texture | null);
|
|
78
|
+
/** @private */
|
|
79
|
+
combinedScatteringTextures: boolean;
|
|
80
|
+
get singleMieScatteringTexture(): Data3DTexture | null;
|
|
81
|
+
set singleMieScatteringTexture(value: Data3DTexture | null);
|
|
82
|
+
/** @private */
|
|
83
|
+
hasHigherOrderScatteringTexture: boolean;
|
|
84
|
+
get higherOrderScatteringTexture(): Data3DTexture | null;
|
|
85
|
+
set higherOrderScatteringTexture(value: Data3DTexture | null);
|
|
86
|
+
get ellipsoid(): Ellipsoid;
|
|
87
|
+
set ellipsoid(value: Ellipsoid);
|
|
88
|
+
get worldToECEFMatrix(): Matrix4;
|
|
89
|
+
correctGeometricError: boolean;
|
|
90
|
+
get sunDirection(): Vector3;
|
|
91
|
+
sunLight: boolean;
|
|
92
|
+
skyLight: boolean;
|
|
93
|
+
transmittance: boolean;
|
|
94
|
+
inscatter: boolean;
|
|
95
|
+
get albedoScale(): number;
|
|
96
|
+
set albedoScale(value: number);
|
|
97
|
+
sky: boolean;
|
|
98
|
+
sun: boolean;
|
|
99
|
+
moon: boolean;
|
|
100
|
+
get moonDirection(): Vector3;
|
|
101
|
+
get moonAngularRadius(): number;
|
|
102
|
+
set moonAngularRadius(value: number);
|
|
103
|
+
get lunarRadianceScale(): number;
|
|
104
|
+
set lunarRadianceScale(value: number);
|
|
105
|
+
ground: boolean;
|
|
106
|
+
get stbnTexture(): Data3DTexture | null;
|
|
107
|
+
set stbnTexture(value: Data3DTexture | null);
|
|
108
|
+
get shadowRadius(): number;
|
|
109
|
+
set shadowRadius(value: number);
|
|
110
|
+
shadowSampleCount: number;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
declare interface AerialPerspectiveEffectOptions {
|
|
114
|
+
blendFunction?: BlendFunction;
|
|
115
|
+
normalBuffer?: Texture | null;
|
|
116
|
+
octEncodedNormal?: boolean;
|
|
117
|
+
reconstructNormal?: boolean;
|
|
118
|
+
irradianceTexture?: Texture | null;
|
|
119
|
+
scatteringTexture?: Data3DTexture | null;
|
|
120
|
+
transmittanceTexture?: Texture | null;
|
|
121
|
+
singleMieScatteringTexture?: Data3DTexture | null;
|
|
122
|
+
higherOrderScatteringTexture?: Data3DTexture | null;
|
|
123
|
+
ellipsoid?: Ellipsoid;
|
|
124
|
+
correctAltitude?: boolean;
|
|
125
|
+
correctGeometricError?: boolean;
|
|
126
|
+
sunDirection?: Vector3;
|
|
127
|
+
sunLight?: boolean;
|
|
128
|
+
skyLight?: boolean;
|
|
129
|
+
transmittance?: boolean;
|
|
130
|
+
inscatter?: boolean;
|
|
131
|
+
albedoScale?: number;
|
|
132
|
+
sky?: boolean;
|
|
133
|
+
sun?: boolean;
|
|
134
|
+
moon?: boolean;
|
|
135
|
+
moonDirection?: Vector3;
|
|
136
|
+
moonAngularRadius?: number;
|
|
137
|
+
lunarRadianceScale?: number;
|
|
138
|
+
ground?: boolean;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
declare interface AerialPerspectiveEffectUniforms {
|
|
142
|
+
normalBuffer: Uniform<Texture | null>;
|
|
143
|
+
projectionMatrix: Uniform<Matrix4>;
|
|
144
|
+
viewMatrix: Uniform<Matrix4>;
|
|
145
|
+
inverseProjectionMatrix: Uniform<Matrix4>;
|
|
146
|
+
inverseViewMatrix: Uniform<Matrix4>;
|
|
147
|
+
cameraPosition: Uniform<Vector3>;
|
|
148
|
+
bottomRadius: Uniform<number>;
|
|
149
|
+
ellipsoidRadii: Uniform<Vector3>;
|
|
150
|
+
worldToECEFMatrix: Uniform<Matrix4>;
|
|
151
|
+
altitudeCorrection: Uniform<Vector3>;
|
|
152
|
+
geometricErrorCorrectionAmount: Uniform<number>;
|
|
153
|
+
sunDirection: Uniform<Vector3>;
|
|
154
|
+
albedoScale: Uniform<number>;
|
|
155
|
+
moonDirection: Uniform<Vector3>;
|
|
156
|
+
moonAngularRadius: Uniform<number>;
|
|
157
|
+
lunarRadianceScale: Uniform<number>;
|
|
158
|
+
overlayBuffer: Uniform<Texture | null>;
|
|
159
|
+
shadowBuffer: Uniform<Texture | null>;
|
|
160
|
+
shadowMapSize: Uniform<Vector2>;
|
|
161
|
+
shadowIntervals: Uniform<Vector2[]>;
|
|
162
|
+
shadowMatrices: Uniform<Matrix4[]>;
|
|
163
|
+
inverseShadowMatrices: Uniform<Matrix4[]>;
|
|
164
|
+
shadowFar: Uniform<number>;
|
|
165
|
+
shadowTopHeight: Uniform<number>;
|
|
166
|
+
shadowRadius: Uniform<number>;
|
|
167
|
+
stbnTexture: Uniform<Data3DTexture | null>;
|
|
168
|
+
frame: Uniform<number>;
|
|
169
|
+
shadowLengthBuffer: Uniform<Texture | null>;
|
|
170
|
+
lightingMaskBuffer: Uniform<Texture | null>;
|
|
171
|
+
ATMOSPHERE: AtmosphereParametersUniform;
|
|
172
|
+
SUN_SPECTRAL_RADIANCE_TO_LUMINANCE: Uniform<Vector3>;
|
|
173
|
+
SKY_SPECTRAL_RADIANCE_TO_LUMINANCE: Uniform<Vector3>;
|
|
174
|
+
irradiance_texture: Uniform<Texture | null>;
|
|
175
|
+
scattering_texture: Uniform<Data3DTexture | null>;
|
|
176
|
+
transmittance_texture: Uniform<Texture | null>;
|
|
177
|
+
single_mie_scattering_texture: Uniform<Data3DTexture | null>;
|
|
178
|
+
higher_order_scattering_texture: Uniform<Data3DTexture | null>;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
declare type AnyFloatType = typeof FloatType | typeof HalfFloatType;
|
|
182
|
+
|
|
183
|
+
declare class ArrayBufferLoader extends Loader<ArrayBuffer> {
|
|
184
|
+
load(url: string, onLoad: (data: ArrayBuffer) => void, onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
declare interface AtmosphereLightingMask {
|
|
188
|
+
map: Texture;
|
|
189
|
+
channel: 'r' | 'g' | 'b' | 'a';
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
declare abstract class AtmosphereMaterialBase extends RawShaderMaterial {
|
|
193
|
+
protected readonly atmosphere: AtmosphereParameters;
|
|
194
|
+
uniforms: AtmosphereMaterialBaseUniforms;
|
|
195
|
+
ellipsoid: Ellipsoid;
|
|
196
|
+
correctAltitude: boolean;
|
|
197
|
+
private _renderTargetCount;
|
|
198
|
+
constructor(params?: AtmosphereMaterialBaseParameters, atmosphere?: AtmosphereParameters);
|
|
199
|
+
copyCameraSettings(camera: Camera): void;
|
|
200
|
+
onBeforeCompile(parameters: WebGLProgramParametersWithUniforms, renderer: WebGLRenderer): void;
|
|
201
|
+
onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void;
|
|
202
|
+
get irradianceTexture(): Texture | null;
|
|
203
|
+
set irradianceTexture(value: Texture | null);
|
|
204
|
+
get scatteringTexture(): Data3DTexture | null;
|
|
205
|
+
set scatteringTexture(value: Data3DTexture | null);
|
|
206
|
+
get transmittanceTexture(): Texture | null;
|
|
207
|
+
set transmittanceTexture(value: Texture | null);
|
|
208
|
+
/** @private */
|
|
209
|
+
combinedScatteringTextures: boolean;
|
|
210
|
+
get singleMieScatteringTexture(): Data3DTexture | null;
|
|
211
|
+
set singleMieScatteringTexture(value: Data3DTexture | null);
|
|
212
|
+
/** @private */
|
|
213
|
+
hasHigherOrderScatteringTexture: boolean;
|
|
214
|
+
get higherOrderScatteringTexture(): Data3DTexture | null;
|
|
215
|
+
set higherOrderScatteringTexture(value: Data3DTexture | null);
|
|
216
|
+
get worldToECEFMatrix(): Matrix4;
|
|
217
|
+
get sunDirection(): Vector3;
|
|
218
|
+
get sunAngularRadius(): number;
|
|
219
|
+
set sunAngularRadius(value: number);
|
|
220
|
+
/** @package */
|
|
221
|
+
get renderTargetCount(): number;
|
|
222
|
+
/** @package */
|
|
223
|
+
set renderTargetCount(value: number);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
declare interface AtmosphereMaterialBaseParameters extends Partial<ShaderMaterialParameters>, AtmosphereMaterialProps {
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
declare interface AtmosphereMaterialBaseUniforms {
|
|
230
|
+
[key: string]: Uniform<unknown>;
|
|
231
|
+
cameraPosition: Uniform<Vector3>;
|
|
232
|
+
worldToECEFMatrix: Uniform<Matrix4>;
|
|
233
|
+
altitudeCorrection: Uniform<Vector3>;
|
|
234
|
+
sunDirection: Uniform<Vector3>;
|
|
235
|
+
ATMOSPHERE: AtmosphereParametersUniform;
|
|
236
|
+
SUN_SPECTRAL_RADIANCE_TO_LUMINANCE: Uniform<Vector3>;
|
|
237
|
+
SKY_SPECTRAL_RADIANCE_TO_LUMINANCE: Uniform<Vector3>;
|
|
238
|
+
irradiance_texture: Uniform<Texture | null>;
|
|
239
|
+
scattering_texture: Uniform<Data3DTexture | null>;
|
|
240
|
+
transmittance_texture: Uniform<Texture | null>;
|
|
241
|
+
single_mie_scattering_texture: Uniform<Data3DTexture | null>;
|
|
242
|
+
higher_order_scattering_texture: Uniform<Data3DTexture | null>;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
declare interface AtmosphereMaterialProps {
|
|
246
|
+
irradianceTexture?: Texture | null;
|
|
247
|
+
scatteringTexture?: Data3DTexture | null;
|
|
248
|
+
transmittanceTexture?: Texture | null;
|
|
249
|
+
singleMieScatteringTexture?: Data3DTexture | null;
|
|
250
|
+
higherOrderScatteringTexture?: Data3DTexture | null;
|
|
251
|
+
ellipsoid?: Ellipsoid;
|
|
252
|
+
correctAltitude?: boolean;
|
|
253
|
+
sunDirection?: Vector3;
|
|
254
|
+
sunAngularRadius?: number;
|
|
255
|
+
ground?: boolean;
|
|
256
|
+
renderTargetCount?: number;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
declare interface AtmosphereOverlay {
|
|
260
|
+
map: Texture;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
declare class AtmosphereParameters {
|
|
264
|
+
static readonly DEFAULT: AtmosphereParameters;
|
|
265
|
+
solarIrradiance: Vector3;
|
|
266
|
+
sunAngularRadius: number;
|
|
267
|
+
bottomRadius: number;
|
|
268
|
+
topRadius: number;
|
|
269
|
+
rayleighDensity: DensityProfile;
|
|
270
|
+
rayleighScattering: Vector3;
|
|
271
|
+
mieDensity: DensityProfile;
|
|
272
|
+
mieScattering: Vector3;
|
|
273
|
+
mieExtinction: Vector3;
|
|
274
|
+
miePhaseFunctionG: number;
|
|
275
|
+
absorptionDensity: DensityProfile;
|
|
276
|
+
absorptionExtinction: Vector3;
|
|
277
|
+
groundAlbedo: Color;
|
|
278
|
+
muSMin: number;
|
|
279
|
+
sunRadianceToLuminance: Vector3;
|
|
280
|
+
skyRadianceToLuminance: Vector3;
|
|
281
|
+
sunRadianceToRelativeLuminance: Vector3;
|
|
282
|
+
skyRadianceToRelativeLuminance: Vector3;
|
|
283
|
+
constructor(options?: AtmosphereParametersOptions);
|
|
284
|
+
toUniform(): Uniform<{
|
|
285
|
+
solar_irradiance: Vector3;
|
|
286
|
+
sun_angular_radius: number;
|
|
287
|
+
bottom_radius: number;
|
|
288
|
+
top_radius: number;
|
|
289
|
+
rayleigh_density: {
|
|
290
|
+
layers: {
|
|
291
|
+
width: number;
|
|
292
|
+
exp_term: number;
|
|
293
|
+
exp_scale: number;
|
|
294
|
+
linear_term: number;
|
|
295
|
+
constant_term: number;
|
|
296
|
+
}[];
|
|
297
|
+
};
|
|
298
|
+
rayleigh_scattering: Vector3;
|
|
299
|
+
mie_density: {
|
|
300
|
+
layers: {
|
|
301
|
+
width: number;
|
|
302
|
+
exp_term: number;
|
|
303
|
+
exp_scale: number;
|
|
304
|
+
linear_term: number;
|
|
305
|
+
constant_term: number;
|
|
306
|
+
}[];
|
|
307
|
+
};
|
|
308
|
+
mie_scattering: Vector3;
|
|
309
|
+
mie_extinction: Vector3;
|
|
310
|
+
mie_phase_function_g: number;
|
|
311
|
+
absorption_density: {
|
|
312
|
+
layers: {
|
|
313
|
+
width: number;
|
|
314
|
+
exp_term: number;
|
|
315
|
+
exp_scale: number;
|
|
316
|
+
linear_term: number;
|
|
317
|
+
constant_term: number;
|
|
318
|
+
}[];
|
|
319
|
+
};
|
|
320
|
+
absorption_extinction: Vector3;
|
|
321
|
+
ground_albedo: Color;
|
|
322
|
+
mu_s_min: number;
|
|
323
|
+
}>;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
declare interface AtmosphereParametersOptions extends Partial<Pick<AtmosphereParameters, (typeof paramKeys)[number]>> {
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
declare type AtmosphereParametersUniform = ReturnType<AtmosphereParameters['toUniform']>;
|
|
330
|
+
|
|
331
|
+
declare class AtmospherePlugin {
|
|
332
|
+
readonly ssp: default_2;
|
|
333
|
+
cacheKey: string;
|
|
334
|
+
date: Date;
|
|
335
|
+
longitude: number;
|
|
336
|
+
latitude: number;
|
|
337
|
+
altitude: number;
|
|
338
|
+
distance: number;
|
|
339
|
+
target: Vector3;
|
|
340
|
+
ground: boolean;
|
|
341
|
+
groundAlbedo: IColor;
|
|
342
|
+
castShadow: boolean;
|
|
343
|
+
cloudCoverage: number;
|
|
344
|
+
cloudQuality: 'low' | 'medium' | 'high' | 'ultra';
|
|
345
|
+
set neesUpdate(value: boolean);
|
|
346
|
+
atmosphereProps: {
|
|
347
|
+
inertialToECEFMatrix: Matrix4;
|
|
348
|
+
sunDirection: Vector3;
|
|
349
|
+
moonDirection: Vector3;
|
|
350
|
+
worldToECEFMatrix: Matrix4;
|
|
351
|
+
};
|
|
352
|
+
texturesGenerator: PrecomputedTexturesGenerator;
|
|
353
|
+
arrayBufferLoader: ArrayBufferLoader;
|
|
354
|
+
skyMaterial: SkyMaterial;
|
|
355
|
+
skyMesh: Mesh<BufferGeometry, SkyMaterial>;
|
|
356
|
+
skyLight: SkyLightProbe;
|
|
357
|
+
sunLight: SunDirectionalLight;
|
|
358
|
+
aerialPerspectiveEffect: AerialPerspectiveEffect;
|
|
359
|
+
aerialPerspective: EffectState<AerialPerspectiveEffect>;
|
|
360
|
+
lensFlareEffect: LensFlareEffect;
|
|
361
|
+
lensFlare: EffectState<LensFlareEffect>;
|
|
362
|
+
ditheringEffect: DitheringEffect;
|
|
363
|
+
dithering: EffectState<DitheringEffect>;
|
|
364
|
+
lightingMaskPass: LightingMaskPass;
|
|
365
|
+
cubeRenderTarget: WebGLCubeRenderTarget;
|
|
366
|
+
cubeCamera: CubeCamera;
|
|
367
|
+
cloudsEffect: CloudsEffect;
|
|
368
|
+
clouds: EffectState<CloudsEffect>;
|
|
369
|
+
_started: boolean;
|
|
370
|
+
constructor(ssp: default_2);
|
|
371
|
+
onCloudsChange: (event: CloudsEffectChangeEvent) => void;
|
|
372
|
+
update: () => void;
|
|
373
|
+
protected getCacheKey(): string;
|
|
374
|
+
start(): void;
|
|
375
|
+
updateModelLightingMask(): void;
|
|
376
|
+
loadCloudTextures(basePath: string): void;
|
|
377
|
+
setCloudLayer(options: {
|
|
378
|
+
coverage?: number;
|
|
379
|
+
quality?: 'low' | 'medium' | 'high' | 'ultra';
|
|
380
|
+
}): void;
|
|
381
|
+
stop(): void;
|
|
382
|
+
dispose(): void;
|
|
383
|
+
}
|
|
384
|
+
export default AtmospherePlugin;
|
|
385
|
+
|
|
386
|
+
declare interface AtmosphereShadow {
|
|
387
|
+
map: DataArrayTexture;
|
|
388
|
+
mapSize: Vector2;
|
|
389
|
+
cascadeCount: number;
|
|
390
|
+
intervals: Vector2[];
|
|
391
|
+
matrices: Matrix4[];
|
|
392
|
+
inverseMatrices: Matrix4[];
|
|
393
|
+
far: number;
|
|
394
|
+
topHeight: number;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
declare interface AtmosphereShadowLength {
|
|
398
|
+
map: Texture;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
declare interface AtmosphereUniforms {
|
|
402
|
+
bottomRadius: Uniform<number>;
|
|
403
|
+
topRadius: Uniform<number>;
|
|
404
|
+
worldToECEFMatrix: Uniform<Matrix4>;
|
|
405
|
+
ecefToWorldMatrix: Uniform<Matrix4>;
|
|
406
|
+
altitudeCorrection: Uniform<Vector3>;
|
|
407
|
+
sunDirection: Uniform<Vector3>;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
declare interface Cascade {
|
|
411
|
+
readonly interval: Vector2;
|
|
412
|
+
readonly matrix: Matrix4;
|
|
413
|
+
readonly inverseMatrix: Matrix4;
|
|
414
|
+
readonly projectionMatrix: Matrix4;
|
|
415
|
+
readonly inverseProjectionMatrix: Matrix4;
|
|
416
|
+
readonly viewMatrix: Matrix4;
|
|
417
|
+
readonly inverseViewMatrix: Matrix4;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
declare class CascadedShadowMaps {
|
|
421
|
+
readonly cascades: Cascade[];
|
|
422
|
+
readonly mapSize: Vector2;
|
|
423
|
+
maxFar: number | null;
|
|
424
|
+
farScale: number;
|
|
425
|
+
splitMode: FrustumSplitMode;
|
|
426
|
+
splitLambda: number;
|
|
427
|
+
margin: number;
|
|
428
|
+
fade: boolean;
|
|
429
|
+
private readonly cameraFrustum;
|
|
430
|
+
private readonly frusta;
|
|
431
|
+
private readonly splits;
|
|
432
|
+
private _far;
|
|
433
|
+
constructor(options: CascadedShadowMapsOptions);
|
|
434
|
+
get cascadeCount(): number;
|
|
435
|
+
set cascadeCount(value: number);
|
|
436
|
+
get far(): number;
|
|
437
|
+
private updateIntervals;
|
|
438
|
+
private getFrustumRadius;
|
|
439
|
+
private updateMatrices;
|
|
440
|
+
update(camera: PerspectiveCamera, sunDirection: Vector3, distance?: number): void;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
declare interface CascadedShadowMapsOptions {
|
|
444
|
+
cascadeCount: number;
|
|
445
|
+
mapSize: Vector2;
|
|
446
|
+
maxFar?: number | null;
|
|
447
|
+
farScale?: number;
|
|
448
|
+
splitMode?: FrustumSplitMode;
|
|
449
|
+
splitLambda?: number;
|
|
450
|
+
margin?: number;
|
|
451
|
+
fade?: boolean;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
declare class CloudLayer {
|
|
455
|
+
static readonly DEFAULT: CloudLayer;
|
|
456
|
+
channel: TextureChannel;
|
|
457
|
+
altitude: number;
|
|
458
|
+
height: number;
|
|
459
|
+
densityScale: number;
|
|
460
|
+
shapeAmount: number;
|
|
461
|
+
shapeDetailAmount: number;
|
|
462
|
+
weatherExponent: number;
|
|
463
|
+
shapeAlteringBias: number;
|
|
464
|
+
coverageFilterWidth: number;
|
|
465
|
+
densityProfile: DensityProfile_2;
|
|
466
|
+
shadow: boolean;
|
|
467
|
+
constructor(options?: CloudLayerLike);
|
|
468
|
+
set(options?: CloudLayerLike): this;
|
|
469
|
+
clone(): CloudLayer;
|
|
470
|
+
copy(other: CloudLayer): this;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
declare interface CloudLayerLike extends Partial<Pick<CloudLayer, Exclude<(typeof paramKeys_2)[number], 'densityProfile'>>> {
|
|
474
|
+
densityProfile?: DensityProfileLike;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
declare class CloudLayers extends Array<CloudLayer> {
|
|
478
|
+
static readonly DEFAULT: CloudLayers;
|
|
479
|
+
constructor(options?: readonly CloudLayerLike[]);
|
|
480
|
+
set(options?: readonly CloudLayerLike[]): this;
|
|
481
|
+
reset(): this;
|
|
482
|
+
clone(): CloudLayers;
|
|
483
|
+
copy(other: CloudLayers): this;
|
|
484
|
+
get localWeatherChannels(): string;
|
|
485
|
+
packValues<K extends NumericKey>(key: K, result: Vector4): Vector4;
|
|
486
|
+
packSums<A extends NumericKey, B extends NumericKey>(a: A, b: B, result: Vector4): Vector4;
|
|
487
|
+
packDensityProfiles<K extends keyof DensityProfileLike>(key: K, result: Vector4): Vector4;
|
|
488
|
+
packIntervalHeights(minIntervals: Vector3, maxIntervals: Vector3): void;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
declare interface CloudLayerUniforms {
|
|
492
|
+
minLayerHeights: Uniform<Vector4>;
|
|
493
|
+
maxLayerHeights: Uniform<Vector4>;
|
|
494
|
+
minIntervalHeights: Uniform<Vector3>;
|
|
495
|
+
maxIntervalHeights: Uniform<Vector3>;
|
|
496
|
+
densityScales: Uniform<Vector4>;
|
|
497
|
+
shapeAmounts: Uniform<Vector4>;
|
|
498
|
+
shapeDetailAmounts: Uniform<Vector4>;
|
|
499
|
+
weatherExponents: Uniform<Vector4>;
|
|
500
|
+
shapeAlteringBiases: Uniform<Vector4>;
|
|
501
|
+
coverageFilterWidths: Uniform<Vector4>;
|
|
502
|
+
minHeight: Uniform<number>;
|
|
503
|
+
maxHeight: Uniform<number>;
|
|
504
|
+
shadowTopHeight: Uniform<number>;
|
|
505
|
+
shadowBottomHeight: Uniform<number>;
|
|
506
|
+
shadowLayerMask: Uniform<Vector4>;
|
|
507
|
+
densityProfile: Uniform<DensityProfileVectors>;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
declare interface CloudParameterUniforms {
|
|
511
|
+
scatteringCoefficient: Uniform<number>;
|
|
512
|
+
absorptionCoefficient: Uniform<number>;
|
|
513
|
+
coverage: Uniform<number>;
|
|
514
|
+
localWeatherTexture: Uniform<Texture | null>;
|
|
515
|
+
localWeatherRepeat: Uniform<Vector2>;
|
|
516
|
+
localWeatherOffset: Uniform<Vector2>;
|
|
517
|
+
shapeTexture: Uniform<Data3DTexture | null>;
|
|
518
|
+
shapeRepeat: Uniform<Vector3>;
|
|
519
|
+
shapeOffset: Uniform<Vector3>;
|
|
520
|
+
shapeDetailTexture: Uniform<Data3DTexture | null>;
|
|
521
|
+
shapeDetailRepeat: Uniform<Vector3>;
|
|
522
|
+
shapeDetailOffset: Uniform<Vector3>;
|
|
523
|
+
turbulenceTexture: Uniform<Texture | null>;
|
|
524
|
+
turbulenceRepeat: Uniform<Vector2>;
|
|
525
|
+
turbulenceDisplacement: Uniform<number>;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
declare class CloudsEffect extends Effect {
|
|
529
|
+
private camera;
|
|
530
|
+
private readonly atmosphere;
|
|
531
|
+
uniforms: UniformMap<CloudsEffectUniforms>;
|
|
532
|
+
readonly cloudLayers: CloudLayers;
|
|
533
|
+
correctAltitude: boolean;
|
|
534
|
+
readonly localWeatherRepeat: Vector2;
|
|
535
|
+
readonly localWeatherOffset: Vector2;
|
|
536
|
+
readonly shapeRepeat: Vector3;
|
|
537
|
+
readonly shapeOffset: Vector3;
|
|
538
|
+
readonly shapeDetailRepeat: Vector3;
|
|
539
|
+
readonly shapeDetailOffset: Vector3;
|
|
540
|
+
readonly turbulenceRepeat: Vector2;
|
|
541
|
+
readonly worldToECEFMatrix: Matrix4;
|
|
542
|
+
private readonly ecefToWorldMatrix;
|
|
543
|
+
private readonly altitudeCorrection;
|
|
544
|
+
readonly sunDirection: Vector3;
|
|
545
|
+
private readonly parameterUniforms;
|
|
546
|
+
private readonly layerUniforms;
|
|
547
|
+
private readonly atmosphereUniforms;
|
|
548
|
+
readonly localWeatherVelocity: Vector2;
|
|
549
|
+
readonly shapeVelocity: Vector3;
|
|
550
|
+
readonly shapeDetailVelocity: Vector3;
|
|
551
|
+
private proceduralLocalWeather?;
|
|
552
|
+
private proceduralShape?;
|
|
553
|
+
private proceduralShapeDetail?;
|
|
554
|
+
private proceduralTurbulence?;
|
|
555
|
+
readonly shadowMaps: CascadedShadowMaps;
|
|
556
|
+
readonly shadowPass: ShadowPass;
|
|
557
|
+
readonly cloudsPass: CloudsPass;
|
|
558
|
+
readonly clouds: CloudsShorthand;
|
|
559
|
+
readonly shadow: ShadowShorthand;
|
|
560
|
+
private _atmosphereOverlay;
|
|
561
|
+
private _atmosphereShadow;
|
|
562
|
+
private _atmosphereShadowLength;
|
|
563
|
+
readonly resolution: Resolution;
|
|
564
|
+
readonly events: EventDispatcher<{
|
|
565
|
+
change: CloudsEffectChangeEvent;
|
|
566
|
+
}>;
|
|
567
|
+
private frame;
|
|
568
|
+
private shadowCascadeCount;
|
|
569
|
+
private readonly shadowMapSize;
|
|
570
|
+
constructor(camera?: Camera, options?: CloudsEffectOptions, atmosphere?: AtmosphereParameters);
|
|
571
|
+
private readonly onResolutionChange;
|
|
572
|
+
get mainCamera(): Camera;
|
|
573
|
+
set mainCamera(value: Camera);
|
|
574
|
+
initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: TextureDataType): void;
|
|
575
|
+
private updateSharedUniforms;
|
|
576
|
+
private updateWeatherTextureChannels;
|
|
577
|
+
private updateAtmosphereComposition;
|
|
578
|
+
update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime?: number): void;
|
|
579
|
+
setSize(baseWidth: number, baseHeight: number): void;
|
|
580
|
+
setDepthTexture(depthTexture: Texture, depthPacking?: DepthPackingStrategies): void;
|
|
581
|
+
skipRendering: boolean;
|
|
582
|
+
set qualityPreset(value: QualityPreset);
|
|
583
|
+
get localWeatherTexture(): Texture | ProceduralTexture | null;
|
|
584
|
+
set localWeatherTexture(value: Texture | ProceduralTexture | null);
|
|
585
|
+
get shapeTexture(): Data3DTexture | Procedural3DTexture | null;
|
|
586
|
+
set shapeTexture(value: Data3DTexture | Procedural3DTexture | null);
|
|
587
|
+
get shapeDetailTexture(): Data3DTexture | Procedural3DTexture | null;
|
|
588
|
+
set shapeDetailTexture(value: Data3DTexture | Procedural3DTexture | null);
|
|
589
|
+
get turbulenceTexture(): Texture | ProceduralTexture | null;
|
|
590
|
+
set turbulenceTexture(value: Texture | ProceduralTexture | null);
|
|
591
|
+
get stbnTexture(): Data3DTexture | null;
|
|
592
|
+
set stbnTexture(value: Data3DTexture | null);
|
|
593
|
+
get resolutionScale(): number;
|
|
594
|
+
set resolutionScale(value: number);
|
|
595
|
+
get temporalUpscale(): boolean;
|
|
596
|
+
set temporalUpscale(value: boolean);
|
|
597
|
+
get lightShafts(): boolean;
|
|
598
|
+
set lightShafts(value: boolean);
|
|
599
|
+
get shapeDetail(): boolean;
|
|
600
|
+
set shapeDetail(value: boolean);
|
|
601
|
+
get turbulence(): boolean;
|
|
602
|
+
set turbulence(value: boolean);
|
|
603
|
+
get haze(): boolean;
|
|
604
|
+
set haze(value: boolean);
|
|
605
|
+
get scatteringCoefficient(): number;
|
|
606
|
+
set scatteringCoefficient(value: number);
|
|
607
|
+
get absorptionCoefficient(): number;
|
|
608
|
+
set absorptionCoefficient(value: number);
|
|
609
|
+
get coverage(): number;
|
|
610
|
+
set coverage(value: number);
|
|
611
|
+
get turbulenceDisplacement(): number;
|
|
612
|
+
set turbulenceDisplacement(value: number);
|
|
613
|
+
get scatterAnisotropy1(): number;
|
|
614
|
+
set scatterAnisotropy1(value: number);
|
|
615
|
+
get scatterAnisotropy2(): number;
|
|
616
|
+
set scatterAnisotropy2(value: number);
|
|
617
|
+
get scatterAnisotropyMix(): number;
|
|
618
|
+
set scatterAnisotropyMix(value: number);
|
|
619
|
+
get skyLightScale(): number;
|
|
620
|
+
set skyLightScale(value: number);
|
|
621
|
+
get groundBounceScale(): number;
|
|
622
|
+
set groundBounceScale(value: number);
|
|
623
|
+
get powderScale(): number;
|
|
624
|
+
set powderScale(value: number);
|
|
625
|
+
get powderExponent(): number;
|
|
626
|
+
set powderExponent(value: number);
|
|
627
|
+
get atmosphereOverlay(): AtmosphereOverlay | null;
|
|
628
|
+
get atmosphereShadow(): AtmosphereShadow | null;
|
|
629
|
+
get atmosphereShadowLength(): AtmosphereShadowLength | null;
|
|
630
|
+
get irradianceTexture(): Texture | null;
|
|
631
|
+
set irradianceTexture(value: Texture | null);
|
|
632
|
+
get scatteringTexture(): Data3DTexture | null;
|
|
633
|
+
set scatteringTexture(value: Data3DTexture | null);
|
|
634
|
+
get transmittanceTexture(): Texture | null;
|
|
635
|
+
set transmittanceTexture(value: Texture | null);
|
|
636
|
+
get singleMieScatteringTexture(): Data3DTexture | null;
|
|
637
|
+
set singleMieScatteringTexture(value: Data3DTexture | null);
|
|
638
|
+
get higherOrderScatteringTexture(): Data3DTexture | null;
|
|
639
|
+
set higherOrderScatteringTexture(value: Data3DTexture | null);
|
|
640
|
+
get ellipsoid(): Ellipsoid;
|
|
641
|
+
set ellipsoid(value: Ellipsoid);
|
|
642
|
+
get sunAngularRadius(): number;
|
|
643
|
+
set sunAngularRadius(value: number);
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
declare interface CloudsEffectChangeEvent {
|
|
647
|
+
type: 'change';
|
|
648
|
+
target?: CloudsEffect;
|
|
649
|
+
property?: 'atmosphereOverlay' | 'atmosphereShadow' | 'atmosphereShadowLength';
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
declare interface CloudsEffectOptions {
|
|
653
|
+
resolutionScale?: number;
|
|
654
|
+
width?: number;
|
|
655
|
+
height?: number;
|
|
656
|
+
resolutionX?: number;
|
|
657
|
+
resolutionY?: number;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
declare interface CloudsEffectUniforms {
|
|
661
|
+
cloudsBuffer: Uniform<Texture | null>;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
declare class CloudsMaterial extends AtmosphereMaterialBase {
|
|
665
|
+
uniforms: AtmosphereMaterialBaseUniforms & CloudsMaterialUniforms;
|
|
666
|
+
temporalUpscale: boolean;
|
|
667
|
+
private previousProjectionMatrix?;
|
|
668
|
+
private previousViewMatrix?;
|
|
669
|
+
constructor({ parameterUniforms, layerUniforms, atmosphereUniforms }: CloudsMaterialParameters, atmosphere?: AtmosphereParameters);
|
|
670
|
+
onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void;
|
|
671
|
+
copyCameraSettings(camera: Camera): void;
|
|
672
|
+
copyReprojectionMatrix(camera: Camera): void;
|
|
673
|
+
setSize(width: number, height: number, targetWidth?: number, targetHeight?: number): void;
|
|
674
|
+
setShadowSize(width: number, height: number): void;
|
|
675
|
+
get depthBuffer(): Texture | null;
|
|
676
|
+
set depthBuffer(value: Texture | null);
|
|
677
|
+
depthPacking: number;
|
|
678
|
+
localWeatherChannels: string;
|
|
679
|
+
shapeDetail: boolean;
|
|
680
|
+
turbulence: boolean;
|
|
681
|
+
shadowLength: boolean;
|
|
682
|
+
haze: boolean;
|
|
683
|
+
multiScatteringOctaves: number;
|
|
684
|
+
accurateSunSkyLight: boolean;
|
|
685
|
+
accuratePhaseFunction: boolean;
|
|
686
|
+
shadowCascadeCount: number;
|
|
687
|
+
shadowSampleCount: number;
|
|
688
|
+
scatterAnisotropy1: number;
|
|
689
|
+
scatterAnisotropy2: number;
|
|
690
|
+
scatterAnisotropyMix: number;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
declare const cloudsMaterialParameterKeys: ["multiScatteringOctaves", "accurateSunSkyLight", "accuratePhaseFunction"];
|
|
694
|
+
|
|
695
|
+
declare interface CloudsMaterialParameters {
|
|
696
|
+
parameterUniforms: CloudParameterUniforms;
|
|
697
|
+
layerUniforms: CloudLayerUniforms;
|
|
698
|
+
atmosphereUniforms: AtmosphereUniforms;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
declare interface CloudsMaterialUniforms extends CloudParameterUniforms, CloudLayerUniforms, AtmosphereUniforms {
|
|
702
|
+
depthBuffer: Uniform<Texture | null>;
|
|
703
|
+
viewMatrix: Uniform<Matrix4>;
|
|
704
|
+
inverseProjectionMatrix: Uniform<Matrix4>;
|
|
705
|
+
inverseViewMatrix: Uniform<Matrix4>;
|
|
706
|
+
reprojectionMatrix: Uniform<Matrix4>;
|
|
707
|
+
viewReprojectionMatrix: Uniform<Matrix4>;
|
|
708
|
+
resolution: Uniform<Vector2>;
|
|
709
|
+
cameraNear: Uniform<number>;
|
|
710
|
+
cameraFar: Uniform<number>;
|
|
711
|
+
cameraHeight: Uniform<number>;
|
|
712
|
+
frame: Uniform<number>;
|
|
713
|
+
temporalJitter: Uniform<Vector2>;
|
|
714
|
+
targetUvScale: Uniform<Vector2>;
|
|
715
|
+
mipLevelScale: Uniform<number>;
|
|
716
|
+
stbnTexture: Uniform<Data3DTexture | null>;
|
|
717
|
+
skyLightScale: Uniform<number>;
|
|
718
|
+
groundBounceScale: Uniform<number>;
|
|
719
|
+
powderScale: Uniform<number>;
|
|
720
|
+
powderExponent: Uniform<number>;
|
|
721
|
+
maxIterationCount: Uniform<number>;
|
|
722
|
+
minStepSize: Uniform<number>;
|
|
723
|
+
maxStepSize: Uniform<number>;
|
|
724
|
+
maxRayDistance: Uniform<number>;
|
|
725
|
+
perspectiveStepScale: Uniform<number>;
|
|
726
|
+
minDensity: Uniform<number>;
|
|
727
|
+
minExtinction: Uniform<number>;
|
|
728
|
+
minTransmittance: Uniform<number>;
|
|
729
|
+
maxIterationCountToSun: Uniform<number>;
|
|
730
|
+
maxIterationCountToGround: Uniform<number>;
|
|
731
|
+
minSecondaryStepSize: Uniform<number>;
|
|
732
|
+
secondaryStepScale: Uniform<number>;
|
|
733
|
+
shadowBuffer: Uniform<DataArrayTexture | null>;
|
|
734
|
+
shadowTexelSize: Uniform<Vector2>;
|
|
735
|
+
shadowIntervals: Uniform<Vector2[]>;
|
|
736
|
+
shadowMatrices: Uniform<Matrix4[]>;
|
|
737
|
+
shadowFar: Uniform<number>;
|
|
738
|
+
maxShadowFilterRadius: Uniform<number>;
|
|
739
|
+
maxShadowLengthIterationCount: Uniform<number>;
|
|
740
|
+
minShadowLengthStepSize: Uniform<number>;
|
|
741
|
+
maxShadowLengthRayDistance: Uniform<number>;
|
|
742
|
+
hazeDensityScale: Uniform<number>;
|
|
743
|
+
hazeExponent: Uniform<number>;
|
|
744
|
+
hazeScatteringCoefficient: Uniform<number>;
|
|
745
|
+
hazeAbsorptionCoefficient: Uniform<number>;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
declare class CloudsPass extends PassBase {
|
|
749
|
+
private readonly atmosphere;
|
|
750
|
+
private currentRenderTarget;
|
|
751
|
+
readonly currentMaterial: CloudsMaterial;
|
|
752
|
+
readonly currentPass: ShaderPass;
|
|
753
|
+
private resolveRenderTarget;
|
|
754
|
+
readonly resolveMaterial: CloudsResolveMaterial;
|
|
755
|
+
readonly resolvePass: ShaderPass;
|
|
756
|
+
private historyRenderTarget;
|
|
757
|
+
private width;
|
|
758
|
+
private height;
|
|
759
|
+
constructor({ parameterUniforms, layerUniforms, atmosphereUniforms, ...options }: CloudsPassOptions, atmosphere: AtmosphereParameters);
|
|
760
|
+
copyCameraSettings(camera: Camera): void;
|
|
761
|
+
initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: TextureDataType): void;
|
|
762
|
+
private initRenderTargets;
|
|
763
|
+
private copyShadow;
|
|
764
|
+
private copyReprojection;
|
|
765
|
+
private swapBuffers;
|
|
766
|
+
update(renderer: WebGLRenderer, frame: number, deltaTime: number): void;
|
|
767
|
+
setSize(width: number, height: number): void;
|
|
768
|
+
setShadowSize(width: number, height: number, depth: number): void;
|
|
769
|
+
setDepthTexture(depthTexture: Texture, depthPacking?: DepthPackingStrategies): void;
|
|
770
|
+
get outputBuffer(): Texture;
|
|
771
|
+
get shadowBuffer(): DataArrayTexture | null;
|
|
772
|
+
set shadowBuffer(value: DataArrayTexture | null);
|
|
773
|
+
get shadowLengthBuffer(): Texture | null;
|
|
774
|
+
get temporalUpscale(): boolean;
|
|
775
|
+
set temporalUpscale(value: boolean);
|
|
776
|
+
get lightShafts(): boolean;
|
|
777
|
+
set lightShafts(value: boolean);
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
declare interface CloudsPassOptions extends PassBaseOptions {
|
|
781
|
+
parameterUniforms: CloudParameterUniforms;
|
|
782
|
+
layerUniforms: CloudLayerUniforms;
|
|
783
|
+
atmosphereUniforms: AtmosphereUniforms;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
declare class CloudsResolveMaterial extends RawShaderMaterial {
|
|
787
|
+
uniforms: CloudsResolveMaterialUniforms;
|
|
788
|
+
constructor({ colorBuffer, depthVelocityBuffer, shadowLengthBuffer, colorHistoryBuffer, shadowLengthHistoryBuffer }?: CloudsResolveMaterialParameters);
|
|
789
|
+
setSize(width: number, height: number): void;
|
|
790
|
+
onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void;
|
|
791
|
+
temporalUpscale: boolean;
|
|
792
|
+
shadowLength: boolean;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
declare interface CloudsResolveMaterialParameters {
|
|
796
|
+
colorBuffer?: Texture | null;
|
|
797
|
+
depthVelocityBuffer?: Texture | null;
|
|
798
|
+
shadowLengthBuffer?: Texture | null;
|
|
799
|
+
colorHistoryBuffer?: Texture | null;
|
|
800
|
+
shadowLengthHistoryBuffer?: Texture | null;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
declare interface CloudsResolveMaterialUniforms {
|
|
804
|
+
[key: string]: Uniform<unknown>;
|
|
805
|
+
colorBuffer: Uniform<Texture | null>;
|
|
806
|
+
depthVelocityBuffer: Uniform<Texture | null>;
|
|
807
|
+
shadowLengthBuffer: Uniform<Texture | null>;
|
|
808
|
+
colorHistoryBuffer: Uniform<Texture | null>;
|
|
809
|
+
shadowLengthHistoryBuffer: Uniform<Texture | null>;
|
|
810
|
+
texelSize: Uniform<Vector2>;
|
|
811
|
+
frame: Uniform<number>;
|
|
812
|
+
jitterOffset: Uniform<Vector2>;
|
|
813
|
+
varianceGamma: Uniform<number>;
|
|
814
|
+
temporalAlpha: Uniform<number>;
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
declare interface CloudsShorthand extends UniformShorthand<CloudsMaterial, (typeof cloudsUniformKeys)[number]>, PropertyShorthand<[CloudsMaterial, typeof cloudsMaterialParameterKeys]> {
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
declare const cloudsUniformKeys: ["maxIterationCount", "minStepSize", "maxStepSize", "maxRayDistance", "perspectiveStepScale", "minDensity", "minExtinction", "minTransmittance", "maxIterationCountToSun", "maxIterationCountToGround", "minSecondaryStepSize", "secondaryStepScale", "maxShadowFilterRadius", "maxShadowLengthIterationCount", "minShadowLengthStepSize", "maxShadowLengthRayDistance", "hazeDensityScale", "hazeExponent", "hazeScatteringCoefficient", "hazeAbsorptionCoefficient"];
|
|
821
|
+
|
|
822
|
+
declare class Context {
|
|
823
|
+
lambdas: Vector3;
|
|
824
|
+
luminanceFromRadiance: Matrix3;
|
|
825
|
+
opticalDepth?: WebGLRenderTarget;
|
|
826
|
+
deltaIrradiance: WebGLRenderTarget;
|
|
827
|
+
deltaRayleighScattering: WebGL3DRenderTarget;
|
|
828
|
+
deltaMieScattering: WebGL3DRenderTarget;
|
|
829
|
+
deltaScatteringDensity: WebGL3DRenderTarget;
|
|
830
|
+
deltaMultipleScattering: WebGL3DRenderTarget;
|
|
831
|
+
constructor(type: AnyFloatType);
|
|
832
|
+
dispose(): void;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
declare type DensityProfile = [DensityProfileLayer, DensityProfileLayer];
|
|
836
|
+
|
|
837
|
+
declare class DensityProfile_2 {
|
|
838
|
+
expTerm: number;
|
|
839
|
+
exponent: number;
|
|
840
|
+
linearTerm: number;
|
|
841
|
+
constantTerm: number;
|
|
842
|
+
constructor(expTerm?: number, exponent?: number, linearTerm?: number, constantTerm?: number);
|
|
843
|
+
set(expTerm?: number, exponent?: number, linearTerm?: number, constantTerm?: number): this;
|
|
844
|
+
clone(): DensityProfile_2;
|
|
845
|
+
copy(other: DensityProfile_2): this;
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
declare class DensityProfileLayer {
|
|
849
|
+
width: number;
|
|
850
|
+
expTerm: number;
|
|
851
|
+
expScale: number;
|
|
852
|
+
linearTerm: number;
|
|
853
|
+
constantTerm: number;
|
|
854
|
+
constructor(width: number, expTerm: number, expScale: number, linearTerm: number, constantTerm: number);
|
|
855
|
+
toUniform(): Uniform<{
|
|
856
|
+
width: number;
|
|
857
|
+
exp_term: number;
|
|
858
|
+
exp_scale: number;
|
|
859
|
+
linear_term: number;
|
|
860
|
+
constant_term: number;
|
|
861
|
+
}>;
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
declare interface DensityProfileLike extends Partial<Pick<DensityProfile_2, 'expTerm' | 'exponent' | 'linearTerm' | 'constantTerm'>> {
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
declare interface DensityProfileVectors {
|
|
868
|
+
expTerms: Vector4;
|
|
869
|
+
exponents: Vector4;
|
|
870
|
+
linearTerms: Vector4;
|
|
871
|
+
constantTerms: Vector4;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
declare class DitheringEffect extends Effect {
|
|
875
|
+
constructor(options?: DitheringEffectOptions);
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
declare interface DitheringEffectOptions {
|
|
879
|
+
blendFunction?: BlendFunction;
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
declare class DownsampleThresholdMaterial extends ShaderMaterial {
|
|
883
|
+
constructor(params?: DownsampleThresholdMaterialParameters);
|
|
884
|
+
setSize(width: number, height: number): void;
|
|
885
|
+
get inputBuffer(): Texture | null;
|
|
886
|
+
set inputBuffer(value: Texture | null);
|
|
887
|
+
get thresholdLevel(): number;
|
|
888
|
+
set thresholdLevel(value: number);
|
|
889
|
+
get thresholdRange(): number;
|
|
890
|
+
set thresholdRange(value: number);
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
declare interface DownsampleThresholdMaterialParameters extends ShaderMaterialParameters {
|
|
894
|
+
inputBuffer?: Texture | null;
|
|
895
|
+
thresholdLevel?: number;
|
|
896
|
+
thresholdRange?: number;
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
declare type EffectState<T = Effect> = {
|
|
900
|
+
enabled: boolean;
|
|
901
|
+
effect: T;
|
|
902
|
+
};
|
|
903
|
+
|
|
904
|
+
declare class Ellipsoid {
|
|
905
|
+
static readonly WGS84: Ellipsoid;
|
|
906
|
+
readonly radii: Vector3;
|
|
907
|
+
constructor(x: number, y: number, z: number);
|
|
908
|
+
get minimumRadius(): number;
|
|
909
|
+
get maximumRadius(): number;
|
|
910
|
+
get flattening(): number;
|
|
911
|
+
get eccentricity(): number;
|
|
912
|
+
get eccentricitySquared(): number;
|
|
913
|
+
reciprocalRadii(result?: Vector3): Vector3;
|
|
914
|
+
reciprocalRadiiSquared(result?: Vector3): Vector3;
|
|
915
|
+
projectOnSurface(position: Vector3, result?: Vector3, options?: ProjectOnEllipsoidSurfaceOptions): Vector3 | undefined;
|
|
916
|
+
getSurfaceNormal(position: Vector3, result?: Vector3): Vector3;
|
|
917
|
+
getEastNorthUpVectors(position: Vector3, east?: Vector3, north?: Vector3, up?: Vector3): void;
|
|
918
|
+
getEastNorthUpFrame(position: Vector3, result?: Matrix4): Matrix4;
|
|
919
|
+
getNorthUpEastFrame(position: Vector3, result?: Matrix4): Matrix4;
|
|
920
|
+
getIntersection(ray: Ray, result?: Vector3): Vector3 | undefined;
|
|
921
|
+
getOsculatingSphereCenter(surfacePosition: Vector3, radius: number, result?: Vector3): Vector3;
|
|
922
|
+
getNormalAtHorizon(position: Vector3, direction: Vector3, result?: Vector3): Vector3;
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
declare type FrustumSplitFunction = (length: number, near: number, far: number, lambda?: number, result?: number[]) => number[];
|
|
926
|
+
|
|
927
|
+
declare interface FrustumSplitFunctions {
|
|
928
|
+
uniform: FrustumSplitFunction;
|
|
929
|
+
logarithmic: FrustumSplitFunction;
|
|
930
|
+
practical: FrustumSplitFunction;
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
declare type FrustumSplitMode = keyof FrustumSplitFunctions;
|
|
934
|
+
|
|
935
|
+
declare class LensFlareEffect extends Effect {
|
|
936
|
+
uniforms: UniformMap<LensFlareEffectUniforms>;
|
|
937
|
+
readonly resolution: Resolution;
|
|
938
|
+
readonly renderTarget1: WebGLRenderTarget;
|
|
939
|
+
readonly renderTarget2: WebGLRenderTarget;
|
|
940
|
+
readonly thresholdMaterial: DownsampleThresholdMaterial;
|
|
941
|
+
readonly thresholdPass: ShaderPass;
|
|
942
|
+
readonly blurPass: MipmapBlurPass;
|
|
943
|
+
readonly preBlurPass: KawaseBlurPass;
|
|
944
|
+
readonly featuresMaterial: LensFlareFeaturesMaterial;
|
|
945
|
+
readonly featuresPass: ShaderPass;
|
|
946
|
+
constructor(options?: LensFlareEffectOptions);
|
|
947
|
+
private readonly onResolutionChange;
|
|
948
|
+
initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: TextureDataType): void;
|
|
949
|
+
update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime?: number): void;
|
|
950
|
+
setSize(baseWidth: number, baseHeight: number): void;
|
|
951
|
+
get intensity(): number;
|
|
952
|
+
set intensity(value: number);
|
|
953
|
+
get thresholdLevel(): number;
|
|
954
|
+
set thresholdLevel(value: number);
|
|
955
|
+
get thresholdRange(): number;
|
|
956
|
+
set thresholdRange(value: number);
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
declare interface LensFlareEffectOptions {
|
|
960
|
+
blendFunction?: BlendFunction;
|
|
961
|
+
resolutionScale?: number;
|
|
962
|
+
width?: number;
|
|
963
|
+
height?: number;
|
|
964
|
+
resolutionX?: number;
|
|
965
|
+
resolutionY?: number;
|
|
966
|
+
intensity?: number;
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
declare interface LensFlareEffectUniforms {
|
|
970
|
+
bloomBuffer: Uniform<Texture | null>;
|
|
971
|
+
featuresBuffer: Uniform<Texture | null>;
|
|
972
|
+
intensity: Uniform<number>;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
declare class LensFlareFeaturesMaterial extends ShaderMaterial {
|
|
976
|
+
constructor(params?: LensFlareFeaturesMaterialParameters);
|
|
977
|
+
setSize(width: number, height: number): void;
|
|
978
|
+
get inputBuffer(): Texture | null;
|
|
979
|
+
set inputBuffer(value: Texture | null);
|
|
980
|
+
get ghostAmount(): number;
|
|
981
|
+
set ghostAmount(value: number);
|
|
982
|
+
get haloAmount(): number;
|
|
983
|
+
set haloAmount(value: number);
|
|
984
|
+
get chromaticAberration(): number;
|
|
985
|
+
set chromaticAberration(value: number);
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
declare interface LensFlareFeaturesMaterialParameters extends ShaderMaterialParameters {
|
|
989
|
+
inputBuffer?: Texture | null;
|
|
990
|
+
lensColorTexture?: Texture | null;
|
|
991
|
+
ghostAmount?: number;
|
|
992
|
+
haloAmount?: number;
|
|
993
|
+
chromaticAberration?: number;
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
declare class LightingMaskPass extends Pass {
|
|
997
|
+
private readonly renderPass;
|
|
998
|
+
private readonly depthTexture;
|
|
999
|
+
private readonly renderTarget;
|
|
1000
|
+
private readonly depthCopyPass0;
|
|
1001
|
+
private readonly depthCopyPass1;
|
|
1002
|
+
private readonly clearPass;
|
|
1003
|
+
private readonly depthMaskMaterial;
|
|
1004
|
+
private readonly depthMaskPass;
|
|
1005
|
+
readonly selection: Selection_2;
|
|
1006
|
+
constructor(scene: Scene, camera: Camera);
|
|
1007
|
+
set mainScene(value: Scene);
|
|
1008
|
+
set mainCamera(value: Camera);
|
|
1009
|
+
initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: TextureDataType): void;
|
|
1010
|
+
setDepthTexture(depthTexture: Texture, depthPacking?: DepthPackingStrategies): void;
|
|
1011
|
+
render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget | null, outputBuffer: WebGLRenderTarget | null, deltaTime?: number, stencilTest?: boolean): void;
|
|
1012
|
+
setSize(width: number, height: number): void;
|
|
1013
|
+
get texture(): Texture;
|
|
1014
|
+
get selectionLayer(): number;
|
|
1015
|
+
set selectionLayer(value: number);
|
|
1016
|
+
get inverted(): boolean;
|
|
1017
|
+
set inverted(value: boolean);
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
declare type NumericKey = keyof {
|
|
1021
|
+
[P in keyof CloudLayer as number extends CloudLayer[P] ? P : never]: any;
|
|
1022
|
+
};
|
|
1023
|
+
|
|
1024
|
+
declare const paramKeys: readonly ["solarIrradiance", "sunAngularRadius", "bottomRadius", "topRadius", "rayleighDensity", "rayleighScattering", "mieDensity", "mieScattering", "mieExtinction", "miePhaseFunctionG", "absorptionDensity", "absorptionExtinction", "groundAlbedo", "muSMin", "skyRadianceToLuminance", "sunRadianceToLuminance"];
|
|
1025
|
+
|
|
1026
|
+
declare const paramKeys_2: readonly ["channel", "altitude", "height", "densityScale", "shapeAmount", "shapeDetailAmount", "weatherExponent", "shapeAlteringBias", "coverageFilterWidth", "shadow", "densityProfile"];
|
|
1027
|
+
|
|
1028
|
+
declare abstract class PassBase extends Pass {
|
|
1029
|
+
shadow: CascadedShadowMaps;
|
|
1030
|
+
private _mainCamera;
|
|
1031
|
+
constructor(name: string, options: PassBaseOptions);
|
|
1032
|
+
get mainCamera(): Camera;
|
|
1033
|
+
set mainCamera(value: Camera);
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
declare interface PassBaseOptions {
|
|
1037
|
+
shadow: CascadedShadowMaps;
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
declare interface PrecomputedTextures {
|
|
1041
|
+
irradianceTexture: Texture;
|
|
1042
|
+
scatteringTexture: Data3DTexture;
|
|
1043
|
+
transmittanceTexture: Texture;
|
|
1044
|
+
singleMieScatteringTexture?: Data3DTexture;
|
|
1045
|
+
higherOrderScatteringTexture?: Data3DTexture;
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
declare class PrecomputedTexturesGenerator {
|
|
1049
|
+
readonly transmittanceRenderTarget: WebGLRenderTarget;
|
|
1050
|
+
readonly scatteringRenderTarget: WebGL3DRenderTarget;
|
|
1051
|
+
readonly irradianceRenderTarget: WebGLRenderTarget;
|
|
1052
|
+
readonly singleMieScatteringRenderTarget?: WebGL3DRenderTarget;
|
|
1053
|
+
readonly higherOrderScatteringRenderTarget?: WebGL3DRenderTarget;
|
|
1054
|
+
readonly textures: PrecomputedTextures;
|
|
1055
|
+
transmittanceMaterial: PrecomputeMaterial;
|
|
1056
|
+
directIrradianceMaterial: PrecomputeMaterial;
|
|
1057
|
+
singleScatteringMaterial: PrecomputeMaterial;
|
|
1058
|
+
scatteringDensityMaterial: PrecomputeMaterial;
|
|
1059
|
+
indirectIrradianceMaterial: PrecomputeMaterial;
|
|
1060
|
+
multipleScatteringMaterial: PrecomputeMaterial;
|
|
1061
|
+
private readonly renderer;
|
|
1062
|
+
private readonly type;
|
|
1063
|
+
private readonly mesh;
|
|
1064
|
+
private readonly scene;
|
|
1065
|
+
private readonly camera;
|
|
1066
|
+
private updating;
|
|
1067
|
+
private disposeQueue;
|
|
1068
|
+
constructor(renderer: WebGLRenderer, { type, combinedScattering, higherOrderScattering }?: PrecomputedTexturesGeneratorOptions);
|
|
1069
|
+
private render3DRenderTarget;
|
|
1070
|
+
private computeTransmittance;
|
|
1071
|
+
private computeOpticalDepth;
|
|
1072
|
+
private computeDirectIrradiance;
|
|
1073
|
+
private computeSingleScattering;
|
|
1074
|
+
private computeScatteringDensity;
|
|
1075
|
+
private computeIndirectIrradiance;
|
|
1076
|
+
private computeMultipleScattering;
|
|
1077
|
+
private precompute;
|
|
1078
|
+
update(atmosphere?: AtmosphereParameters): Promise<PrecomputedTextures>;
|
|
1079
|
+
dispose(options?: {
|
|
1080
|
+
textures?: boolean;
|
|
1081
|
+
}): void;
|
|
1082
|
+
}
|
|
1083
|
+
|
|
1084
|
+
declare interface PrecomputedTexturesGeneratorOptions {
|
|
1085
|
+
type?: AnyFloatType;
|
|
1086
|
+
combinedScattering?: boolean;
|
|
1087
|
+
higherOrderScattering?: boolean;
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
declare class PrecomputeMaterial extends RawShaderMaterial {
|
|
1091
|
+
constructor(params: ShaderMaterialParameters);
|
|
1092
|
+
set additive(value: boolean);
|
|
1093
|
+
setUniforms(context: Context): void;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
declare type Procedural3DTexture = ProceduralTexture<Data3DTexture>;
|
|
1097
|
+
|
|
1098
|
+
declare interface ProceduralTexture<T extends Texture = Texture> {
|
|
1099
|
+
readonly size: number;
|
|
1100
|
+
readonly texture: T;
|
|
1101
|
+
dispose: () => void;
|
|
1102
|
+
render: (renderer: WebGLRenderer, deltaTime?: number) => void;
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
declare interface ProjectOnEllipsoidSurfaceOptions {
|
|
1106
|
+
centerTolerance?: number;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
declare type PropertyShorthand<Args extends readonly unknown[]> = Args extends readonly [infer T, infer K, ...infer Rest] ? K extends readonly string[] ? K[number] extends keyof T ? Rest extends readonly unknown[] ? {
|
|
1110
|
+
[P in K[number]]: T[P];
|
|
1111
|
+
} & PropertyShorthand<Rest> : {
|
|
1112
|
+
[P in K[number]]: T[P];
|
|
1113
|
+
} : never : never : {};
|
|
1114
|
+
|
|
1115
|
+
declare type QualityPreset = 'low' | 'medium' | 'high' | 'ultra';
|
|
1116
|
+
|
|
1117
|
+
declare class ShaderArrayPass extends ShaderPass {
|
|
1118
|
+
input: string;
|
|
1119
|
+
render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget | null, outputBuffer: WebGLArrayRenderTarget, deltaTime?: number, stencilTest?: boolean): void;
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
declare const shadowMapsParameterKeys: ["cascadeCount", "mapSize", "maxFar", "farScale", "splitMode", "splitLambda"];
|
|
1123
|
+
|
|
1124
|
+
declare class ShadowMaterial extends RawShaderMaterial {
|
|
1125
|
+
uniforms: ShadowMaterialUniforms;
|
|
1126
|
+
constructor({ parameterUniforms, layerUniforms, atmosphereUniforms }: ShadowMaterialParameters);
|
|
1127
|
+
setSize(width: number, height: number): void;
|
|
1128
|
+
localWeatherChannels: string;
|
|
1129
|
+
cascadeCount: number;
|
|
1130
|
+
temporalPass: boolean;
|
|
1131
|
+
temporalJitter: boolean;
|
|
1132
|
+
shapeDetail: boolean;
|
|
1133
|
+
turbulence: boolean;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
declare const shadowMaterialParameterKeys: ["temporalJitter"];
|
|
1137
|
+
|
|
1138
|
+
declare interface ShadowMaterialParameters {
|
|
1139
|
+
parameterUniforms: CloudParameterUniforms;
|
|
1140
|
+
layerUniforms: CloudLayerUniforms;
|
|
1141
|
+
atmosphereUniforms: AtmosphereUniforms;
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
declare interface ShadowMaterialUniforms extends CloudParameterUniforms, CloudLayerUniforms, AtmosphereUniforms {
|
|
1145
|
+
[key: string]: Uniform<unknown>;
|
|
1146
|
+
inverseShadowMatrices: Uniform<Matrix4[]>;
|
|
1147
|
+
reprojectionMatrices: Uniform<Matrix4[]>;
|
|
1148
|
+
resolution: Uniform<Vector2>;
|
|
1149
|
+
frame: Uniform<number>;
|
|
1150
|
+
stbnTexture: Uniform<Data3DTexture | null>;
|
|
1151
|
+
maxIterationCount: Uniform<number>;
|
|
1152
|
+
minStepSize: Uniform<number>;
|
|
1153
|
+
maxStepSize: Uniform<number>;
|
|
1154
|
+
minDensity: Uniform<number>;
|
|
1155
|
+
minExtinction: Uniform<number>;
|
|
1156
|
+
minTransmittance: Uniform<number>;
|
|
1157
|
+
opticalDepthTailScale: Uniform<number>;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
declare class ShadowPass extends PassBase {
|
|
1161
|
+
private currentRenderTarget;
|
|
1162
|
+
readonly currentMaterial: ShadowMaterial;
|
|
1163
|
+
readonly currentPass: ShaderArrayPass;
|
|
1164
|
+
private resolveRenderTarget;
|
|
1165
|
+
readonly resolveMaterial: ShadowResolveMaterial;
|
|
1166
|
+
readonly resolvePass: ShaderArrayPass;
|
|
1167
|
+
private historyRenderTarget;
|
|
1168
|
+
private width;
|
|
1169
|
+
private height;
|
|
1170
|
+
constructor({ parameterUniforms, layerUniforms, atmosphereUniforms, ...options }: ShadowPassOptions);
|
|
1171
|
+
initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: TextureDataType): void;
|
|
1172
|
+
private initRenderTargets;
|
|
1173
|
+
private copyShadow;
|
|
1174
|
+
private copyReprojection;
|
|
1175
|
+
private swapBuffers;
|
|
1176
|
+
update(renderer: WebGLRenderer, frame: number, deltaTime: number): void;
|
|
1177
|
+
setSize(width: number, height: number, depth?: number): void;
|
|
1178
|
+
get outputBuffer(): DataArrayTexture;
|
|
1179
|
+
get temporalPass(): boolean;
|
|
1180
|
+
set temporalPass(value: boolean);
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
declare interface ShadowPassOptions extends PassBaseOptions {
|
|
1184
|
+
parameterUniforms: CloudParameterUniforms;
|
|
1185
|
+
layerUniforms: CloudLayerUniforms;
|
|
1186
|
+
atmosphereUniforms: AtmosphereUniforms;
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
declare const shadowPassParameterKeys: ["temporalPass"];
|
|
1190
|
+
|
|
1191
|
+
declare class ShadowResolveMaterial extends RawShaderMaterial {
|
|
1192
|
+
uniforms: ShadowResolveMaterialUniforms;
|
|
1193
|
+
constructor({ inputBuffer, historyBuffer }?: ShadowResolveMaterialParameters);
|
|
1194
|
+
setSize(width: number, height: number): void;
|
|
1195
|
+
cascadeCount: number;
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
declare interface ShadowResolveMaterialParameters {
|
|
1199
|
+
inputBuffer?: DataArrayTexture | null;
|
|
1200
|
+
historyBuffer?: DataArrayTexture | null;
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
declare interface ShadowResolveMaterialUniforms {
|
|
1204
|
+
[key: string]: Uniform<unknown>;
|
|
1205
|
+
inputBuffer: Uniform<DataArrayTexture | null>;
|
|
1206
|
+
historyBuffer: Uniform<DataArrayTexture | null>;
|
|
1207
|
+
texelSize: Uniform<Vector2>;
|
|
1208
|
+
varianceGamma: Uniform<number>;
|
|
1209
|
+
temporalAlpha: Uniform<number>;
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
declare interface ShadowShorthand extends UniformShorthand<ShadowMaterial, (typeof shadowUniformKeys)[number]>, PropertyShorthand<[
|
|
1213
|
+
ShadowMaterial,
|
|
1214
|
+
typeof shadowMaterialParameterKeys,
|
|
1215
|
+
ShadowPass,
|
|
1216
|
+
typeof shadowPassParameterKeys,
|
|
1217
|
+
CascadedShadowMaps,
|
|
1218
|
+
typeof shadowMapsParameterKeys
|
|
1219
|
+
]> {
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1222
|
+
declare const shadowUniformKeys: ["maxIterationCount", "minStepSize", "maxStepSize", "minDensity", "minExtinction", "minTransmittance", "opticalDepthTailScale"];
|
|
1223
|
+
|
|
1224
|
+
declare class SkyLightProbe extends LightProbe {
|
|
1225
|
+
private readonly atmosphere;
|
|
1226
|
+
irradianceTexture: Texture | null;
|
|
1227
|
+
ellipsoid: Ellipsoid;
|
|
1228
|
+
readonly worldToECEFMatrix: Matrix4;
|
|
1229
|
+
correctAltitude: boolean;
|
|
1230
|
+
readonly sunDirection: Vector3;
|
|
1231
|
+
constructor(params?: SkyLightProbeParameters, atmosphere?: AtmosphereParameters);
|
|
1232
|
+
update(): void;
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
declare interface SkyLightProbeParameters {
|
|
1236
|
+
irradianceTexture?: Texture | null;
|
|
1237
|
+
ellipsoid?: Ellipsoid;
|
|
1238
|
+
correctAltitude?: boolean;
|
|
1239
|
+
sunDirection?: Vector3;
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
declare class SkyMaterial extends AtmosphereMaterialBase {
|
|
1243
|
+
uniforms: AtmosphereMaterialBaseUniforms & SkyMaterialUniforms;
|
|
1244
|
+
shadowLength: AtmosphereShadowLength | null;
|
|
1245
|
+
constructor(params?: SkyMaterialParameters);
|
|
1246
|
+
onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void;
|
|
1247
|
+
sun: boolean;
|
|
1248
|
+
moon: boolean;
|
|
1249
|
+
ground: boolean;
|
|
1250
|
+
get moonDirection(): Vector3;
|
|
1251
|
+
get moonAngularRadius(): number;
|
|
1252
|
+
set moonAngularRadius(value: number);
|
|
1253
|
+
get lunarRadianceScale(): number;
|
|
1254
|
+
set lunarRadianceScale(value: number);
|
|
1255
|
+
get groundAlbedo(): Color;
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1258
|
+
declare interface SkyMaterialParameters extends AtmosphereMaterialBaseParameters {
|
|
1259
|
+
sun?: boolean;
|
|
1260
|
+
moon?: boolean;
|
|
1261
|
+
moonDirection?: Vector3;
|
|
1262
|
+
moonAngularRadius?: number;
|
|
1263
|
+
lunarRadianceScale?: number;
|
|
1264
|
+
ground?: boolean;
|
|
1265
|
+
groundAlbedo?: Color;
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
declare interface SkyMaterialUniforms {
|
|
1269
|
+
[key: string]: Uniform<unknown>;
|
|
1270
|
+
inverseProjectionMatrix: Uniform<Matrix4>;
|
|
1271
|
+
inverseViewMatrix: Uniform<Matrix4>;
|
|
1272
|
+
moonDirection: Uniform<Vector3>;
|
|
1273
|
+
moonAngularRadius: Uniform<number>;
|
|
1274
|
+
lunarRadianceScale: Uniform<number>;
|
|
1275
|
+
groundAlbedo: Uniform<Color>;
|
|
1276
|
+
shadowLengthBuffer: Uniform<Texture | null>;
|
|
1277
|
+
}
|
|
1278
|
+
|
|
1279
|
+
declare class SunDirectionalLight extends DirectionalLight {
|
|
1280
|
+
private readonly atmosphere;
|
|
1281
|
+
transmittanceTexture: Texture | null;
|
|
1282
|
+
ellipsoid: Ellipsoid;
|
|
1283
|
+
readonly worldToECEFMatrix: Matrix4;
|
|
1284
|
+
correctAltitude: boolean;
|
|
1285
|
+
readonly sunDirection: Vector3;
|
|
1286
|
+
distance: number;
|
|
1287
|
+
constructor(params?: SunDirectionalLightParameters, atmosphere?: AtmosphereParameters);
|
|
1288
|
+
update(): void;
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
declare interface SunDirectionalLightParameters {
|
|
1292
|
+
transmittanceTexture?: Texture | null;
|
|
1293
|
+
ellipsoid?: Ellipsoid;
|
|
1294
|
+
correctAltitude?: boolean;
|
|
1295
|
+
sunDirection?: Vector3;
|
|
1296
|
+
distance?: number;
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
declare type TextureChannel = 'r' | 'g' | 'b' | 'a';
|
|
1300
|
+
|
|
1301
|
+
declare type UniformMap<T> = Omit<Map<string, Uniform>, 'get'> & {
|
|
1302
|
+
get: <K extends keyof T>(key: K) => T[K];
|
|
1303
|
+
set: <K extends keyof T>(key: K, value: T[K]) => void;
|
|
1304
|
+
};
|
|
1305
|
+
|
|
1306
|
+
declare type UniformShorthand<T extends {
|
|
1307
|
+
uniforms: Record<K, Uniform>;
|
|
1308
|
+
}, K extends keyof T['uniforms']> = {
|
|
1309
|
+
[P in K]: T['uniforms'][P] extends Uniform<infer U> ? U : never;
|
|
1310
|
+
};
|
|
1311
|
+
|
|
1312
|
+
export { }
|