@onerjs/addons 8.25.3 → 8.25.5

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.
Files changed (81) hide show
  1. package/atmosphere/Shaders/ShadersInclude/atmosphereFragmentDeclaration.d.ts +5 -0
  2. package/atmosphere/Shaders/ShadersInclude/atmosphereFragmentDeclaration.js +12 -0
  3. package/atmosphere/Shaders/ShadersInclude/atmosphereFragmentDeclaration.js.map +1 -0
  4. package/atmosphere/Shaders/ShadersInclude/atmosphereFunctions.d.ts +6 -0
  5. package/atmosphere/Shaders/ShadersInclude/atmosphereFunctions.js +234 -0
  6. package/atmosphere/Shaders/ShadersInclude/atmosphereFunctions.js.map +1 -0
  7. package/atmosphere/Shaders/ShadersInclude/atmosphereUboDeclaration.d.ts +5 -0
  8. package/atmosphere/Shaders/ShadersInclude/atmosphereUboDeclaration.js +12 -0
  9. package/atmosphere/Shaders/ShadersInclude/atmosphereUboDeclaration.js.map +1 -0
  10. package/atmosphere/Shaders/ShadersInclude/atmosphereVertexDeclaration.d.ts +5 -0
  11. package/atmosphere/Shaders/ShadersInclude/atmosphereVertexDeclaration.js +12 -0
  12. package/atmosphere/Shaders/ShadersInclude/atmosphereVertexDeclaration.js.map +1 -0
  13. package/atmosphere/Shaders/ShadersInclude/depthFunctions.d.ts +5 -0
  14. package/atmosphere/Shaders/ShadersInclude/depthFunctions.js +19 -0
  15. package/atmosphere/Shaders/ShadersInclude/depthFunctions.js.map +1 -0
  16. package/atmosphere/Shaders/aerialPerspective.fragment.d.ts +9 -0
  17. package/atmosphere/Shaders/aerialPerspective.fragment.js +25 -0
  18. package/atmosphere/Shaders/aerialPerspective.fragment.js.map +1 -0
  19. package/atmosphere/Shaders/compositeAerialPerspective.fragment.d.ts +10 -0
  20. package/atmosphere/Shaders/compositeAerialPerspective.fragment.js +72 -0
  21. package/atmosphere/Shaders/compositeAerialPerspective.fragment.js.map +1 -0
  22. package/atmosphere/Shaders/compositeGlobeAtmosphere.fragment.d.ts +10 -0
  23. package/atmosphere/Shaders/compositeGlobeAtmosphere.fragment.js +96 -0
  24. package/atmosphere/Shaders/compositeGlobeAtmosphere.fragment.js.map +1 -0
  25. package/atmosphere/Shaders/compositeSky.fragment.d.ts +10 -0
  26. package/atmosphere/Shaders/compositeSky.fragment.js +75 -0
  27. package/atmosphere/Shaders/compositeSky.fragment.js.map +1 -0
  28. package/atmosphere/Shaders/diffuseSkyIrradiance.fragment.d.ts +13 -0
  29. package/atmosphere/Shaders/diffuseSkyIrradiance.fragment.js +49 -0
  30. package/atmosphere/Shaders/diffuseSkyIrradiance.fragment.js.map +1 -0
  31. package/atmosphere/Shaders/fullscreenTriangle.vertex.d.ts +7 -0
  32. package/atmosphere/Shaders/fullscreenTriangle.vertex.js +31 -0
  33. package/atmosphere/Shaders/fullscreenTriangle.vertex.js.map +1 -0
  34. package/atmosphere/Shaders/multiScattering.fragment.d.ts +9 -0
  35. package/atmosphere/Shaders/multiScattering.fragment.js +21 -0
  36. package/atmosphere/Shaders/multiScattering.fragment.js.map +1 -0
  37. package/atmosphere/Shaders/skyView.fragment.d.ts +9 -0
  38. package/atmosphere/Shaders/skyView.fragment.js +20 -0
  39. package/atmosphere/Shaders/skyView.fragment.js.map +1 -0
  40. package/atmosphere/Shaders/transmittance.fragment.d.ts +9 -0
  41. package/atmosphere/Shaders/transmittance.fragment.js +20 -0
  42. package/atmosphere/Shaders/transmittance.fragment.js.map +1 -0
  43. package/atmosphere/atmosphere.d.ts +418 -0
  44. package/atmosphere/atmosphere.js +1446 -0
  45. package/atmosphere/atmosphere.js.map +1 -0
  46. package/atmosphere/atmosphereOptions.d.ts +135 -0
  47. package/atmosphere/atmosphereOptions.js +4 -0
  48. package/atmosphere/atmosphereOptions.js.map +1 -0
  49. package/atmosphere/atmospherePBRMaterialPlugin.d.ts +72 -0
  50. package/atmosphere/atmospherePBRMaterialPlugin.js +230 -0
  51. package/atmosphere/atmospherePBRMaterialPlugin.js.map +1 -0
  52. package/atmosphere/atmospherePerCameraVariables.d.ts +102 -0
  53. package/atmosphere/atmospherePerCameraVariables.js +189 -0
  54. package/atmosphere/atmospherePerCameraVariables.js.map +1 -0
  55. package/atmosphere/atmospherePhysicalProperties.d.ts +154 -0
  56. package/atmosphere/atmospherePhysicalProperties.js +305 -0
  57. package/atmosphere/atmospherePhysicalProperties.js.map +1 -0
  58. package/atmosphere/atmospherePhysicalPropertiesOptions.d.ts +52 -0
  59. package/atmosphere/atmospherePhysicalPropertiesOptions.js +4 -0
  60. package/atmosphere/atmospherePhysicalPropertiesOptions.js.map +1 -0
  61. package/atmosphere/diffuseSkyIrradianceLut.d.ts +63 -0
  62. package/atmosphere/diffuseSkyIrradianceLut.js +199 -0
  63. package/atmosphere/diffuseSkyIrradianceLut.js.map +1 -0
  64. package/atmosphere/index.d.ts +6 -0
  65. package/atmosphere/index.js +9 -0
  66. package/atmosphere/index.js.map +1 -0
  67. package/atmosphere/sampling.d.ts +15 -0
  68. package/atmosphere/sampling.js +89 -0
  69. package/atmosphere/sampling.js.map +1 -0
  70. package/atmosphere/test/unit/sampling.test.d.ts +1 -0
  71. package/atmosphere/test/unit/sampling.test.js +77 -0
  72. package/atmosphere/test/unit/sampling.test.js.map +1 -0
  73. package/atmosphere/transmittanceLut.d.ts +68 -0
  74. package/atmosphere/transmittanceLut.js +207 -0
  75. package/atmosphere/transmittanceLut.js.map +1 -0
  76. package/index.d.ts +1 -0
  77. package/index.js +1 -0
  78. package/index.js.map +1 -1
  79. package/msdfText/paragraphOptions.d.ts +1 -1
  80. package/msdfText/paragraphOptions.js.map +1 -1
  81. package/package.json +2 -2
@@ -0,0 +1,418 @@
1
+ import type { AbstractEngine } from "@onerjs/core/Engines/abstractEngine.js";
2
+ import { AtmospherePerCameraVariables } from "./atmospherePerCameraVariables.js";
3
+ import { AtmospherePhysicalProperties } from "./atmospherePhysicalProperties.js";
4
+ import type { BaseTexture } from "@onerjs/core/Materials/Textures/baseTexture.js";
5
+ import type { Camera } from "@onerjs/core/Cameras/camera.js";
6
+ import type { DeepImmutable, Nullable } from "@onerjs/core/types.js";
7
+ import { DiffuseSkyIrradianceLut } from "./diffuseSkyIrradianceLut.js";
8
+ import type { DirectionalLight } from "@onerjs/core/Lights/directionalLight.js";
9
+ import type { Effect } from "@onerjs/core/Materials/effect.js";
10
+ import type { IAtmosphereOptions } from "./atmosphereOptions.js";
11
+ import type { IColor3Like, IVector3Like } from "@onerjs/core/Maths/math.like.js";
12
+ import type { IDisposable, Scene } from "@onerjs/core/scene.js";
13
+ import { Observable } from "@onerjs/core/Misc/observable.js";
14
+ import { RenderTargetTexture } from "@onerjs/core/Materials/Textures/renderTargetTexture.js";
15
+ import { TransmittanceLut } from "./transmittanceLut.js";
16
+ import { UniformBuffer } from "@onerjs/core/Materials/uniformBuffer.js";
17
+ import "./Shaders/compositeAerialPerspective.fragment.js";
18
+ import "./Shaders/compositeSky.fragment.js";
19
+ import "./Shaders/compositeGlobeAtmosphere.fragment.js";
20
+ import "./Shaders/fullscreenTriangle.vertex.js";
21
+ import "./Shaders/multiScattering.fragment.js";
22
+ import "./Shaders/skyView.fragment.js";
23
+ import "./Shaders/aerialPerspective.fragment.js";
24
+ import "./Shaders/ShadersInclude/atmosphereFragmentDeclaration.js";
25
+ import "./Shaders/ShadersInclude/atmosphereFunctions.js";
26
+ import "./Shaders/ShadersInclude/atmosphereUboDeclaration.js";
27
+ import "./Shaders/ShadersInclude/atmosphereVertexDeclaration.js";
28
+ import "./Shaders/ShadersInclude/depthFunctions.js";
29
+ /**
30
+ * Renders a physically based atmosphere.
31
+ * Use {@link IsSupported} to check if the atmosphere is supported before creating an instance.
32
+ * @experimental
33
+ */
34
+ export declare class Atmosphere implements IDisposable {
35
+ readonly name: string;
36
+ readonly scene: Scene;
37
+ private readonly _directionToLight;
38
+ private readonly _tempSceneAmbient;
39
+ private readonly _engine;
40
+ private _physicalProperties;
41
+ private _transmittanceLut;
42
+ private _diffuseSkyIrradianceLut;
43
+ private _isSkyViewLutEnabled;
44
+ private _isAerialPerspectiveLutEnabled;
45
+ private _aerialPerspectiveTransmittanceScale;
46
+ private _aerialPerspectiveSaturation;
47
+ private _aerialPerspectiveIntensity;
48
+ private _aerialPerspectiveRadianceBias;
49
+ private _diffuseSkyIrradianceDesaturationFactor;
50
+ private _additionalDiffuseSkyIrradianceIntensity;
51
+ private _additionalDiffuseSkyIrradianceColor;
52
+ private _additionalDiffuseSkyIrradiance;
53
+ private _diffuseSkyIrradianceIntensity;
54
+ private _multiScatteringIntensity;
55
+ private _groundAlbedo;
56
+ private _minimumMultiScatteringColor;
57
+ private _minimumMultiScatteringIntensity;
58
+ private _lights;
59
+ private _atmosphereUbo;
60
+ private _minimumMultiScattering;
61
+ private _cameraAtmosphereVariables;
62
+ private _isLinearSpaceComposition;
63
+ private _isLinearSpaceLight;
64
+ private _lightRadianceAtCamera;
65
+ private _linearLightColor;
66
+ private _originHeight;
67
+ private _applyApproximateTransmittance;
68
+ private _exposure;
69
+ private _atmosphereUniformBufferAsArray;
70
+ private _effectRenderer;
71
+ private _skyRenderingGroup;
72
+ private _aerialPerspectiveRenderingGroup;
73
+ private _globeAtmosphereRenderingGroup;
74
+ private _isEnabled;
75
+ private _hasRenderedMultiScatteringLut;
76
+ private _multiScatteringEffectWrapper;
77
+ private _multiScatteringLutRenderTarget;
78
+ private _aerialPerspectiveLutEffectWrapper;
79
+ private _aerialPerspectiveLutEffectRenderer;
80
+ private _aerialPerspectiveLutRenderTarget;
81
+ private _skyViewLutEffectWrapper;
82
+ private _skyViewLutEffectRenderer;
83
+ private _skyViewLutRenderTarget;
84
+ private _aerialPerspectiveCompositorEffectWrapper;
85
+ private _skyCompositorEffectWrapper;
86
+ private _globeAtmosphereCompositorEffectWrapper;
87
+ private _onBeforeCameraRenderObserver;
88
+ private _onBeforeDrawPhaseObserver;
89
+ private _onAfterRenderingGroupObserver;
90
+ /**
91
+ * Checks if the {@link Atmosphere} is supported.
92
+ * @param engine - The engine to check.
93
+ * @returns True if the atmosphere is supported, false otherwise.
94
+ */
95
+ static IsSupported(engine: AbstractEngine): boolean;
96
+ /**
97
+ * Called after the atmosphere variables have been updated for the specified camera.
98
+ */
99
+ readonly onAfterUpdateVariablesForCameraObservable: Observable<Camera>;
100
+ /**
101
+ * Called immediately before the light variables are finalized.
102
+ */
103
+ readonly onBeforeLightVariablesUpdateObservable: Observable<void>;
104
+ /**
105
+ * Called before the LUTs are rendered for this camera. This happens after the per-camera UBO update.
106
+ */
107
+ readonly onBeforeRenderLutsForCameraObservable: Observable<void>;
108
+ /**
109
+ * Called after the LUTs were rendered.
110
+ */
111
+ readonly onAfterRenderLutsForCameraObservable: Observable<void>;
112
+ /**
113
+ * If provided, this is the depth texture used for composition passes.
114
+ * Expects an infinite far plane on the camera (camera.maxZ = 0) and the non-linear depth accessible in red channel.
115
+ * @internal
116
+ */
117
+ readonly depthTexture: Nullable<BaseTexture>;
118
+ /**
119
+ * Controls the overall brightness of the atmosphere rendering.
120
+ */
121
+ get exposure(): number;
122
+ set exposure(value: number);
123
+ /**
124
+ * Affects the overall intensity of the multiple scattering.
125
+ */
126
+ get multiScatteringIntensity(): number;
127
+ set multiScatteringIntensity(value: number);
128
+ /**
129
+ * Affects the multiply scattered light contribution in the atmosphere by describing the average light color reflected off the ground.
130
+ */
131
+ get groundAlbedo(): DeepImmutable<IColor3Like>;
132
+ set groundAlbedo(value: DeepImmutable<IColor3Like>);
133
+ /**
134
+ * Can be used to clamp the multiple scattering to a minimum value.
135
+ */
136
+ get minimumMultiScatteringColor(): DeepImmutable<IColor3Like>;
137
+ set minimumMultiScatteringColor(value: DeepImmutable<IColor3Like>);
138
+ /**
139
+ * This is an additional scaling factor applied to the {@link minimumMultiScatteringColor}.
140
+ */
141
+ get minimumMultiScatteringIntensity(): number;
142
+ set minimumMultiScatteringIntensity(value: number);
143
+ /**
144
+ * Can be used to force the diffuse irradiance towards a gray color.
145
+ */
146
+ get diffuseSkyIrradianceDesaturationFactor(): number;
147
+ set diffuseSkyIrradianceDesaturationFactor(value: number);
148
+ /**
149
+ * This is an additional amount of irradiance added to the diffuse irradiance.
150
+ */
151
+ get additionalDiffuseSkyIrradianceIntensity(): number;
152
+ set additionalDiffuseSkyIrradianceIntensity(value: number);
153
+ /**
154
+ * This is the color for the additional amount of irradiance added to the diffuse irradiance.
155
+ */
156
+ get additionalDiffuseSkyIrradianceColor(): DeepImmutable<IColor3Like>;
157
+ set additionalDiffuseSkyIrradianceColor(value: DeepImmutable<IColor3Like>);
158
+ /**
159
+ * The final additional diffuse irradiance, taking into account the intensity and color.
160
+ */
161
+ get additionalDiffuseSkyIrradiance(): DeepImmutable<IColor3Like>;
162
+ /**
163
+ * The intensity of the diffuse irradiance.
164
+ */
165
+ get diffuseSkyIrradianceIntensity(): number;
166
+ set diffuseSkyIrradianceIntensity(value: number);
167
+ /**
168
+ * True if the sky view LUT should be used for compositing the sky instead of a per-pixel ray march.
169
+ */
170
+ get isSkyViewLutEnabled(): boolean;
171
+ set isSkyViewLutEnabled(value: boolean);
172
+ /**
173
+ * Gets the sky view LUT render target or null if not enabled.
174
+ * @returns The render target.
175
+ */
176
+ get skyViewLutRenderTarget(): Nullable<RenderTargetTexture>;
177
+ /**
178
+ * True if the aerial perspective LUT should be used.
179
+ * If false, full ray marching would be used instead.
180
+ */
181
+ get isAerialPerspectiveLutEnabled(): boolean;
182
+ set isAerialPerspectiveLutEnabled(value: boolean);
183
+ /**
184
+ * Gets the aerial perspective LUT render target or null if not enabled.
185
+ * @returns The render target.
186
+ */
187
+ get aerialPerspectiveLutRenderTarget(): Nullable<RenderTargetTexture>;
188
+ /**
189
+ * The intensity of the aerial perspective.
190
+ */
191
+ get aerialPerspectiveIntensity(): number;
192
+ set aerialPerspectiveIntensity(value: number);
193
+ /**
194
+ * The amount of light transmitted into aerial perspective.
195
+ * A scale of 1 is physically correct.
196
+ */
197
+ get aerialPerspectiveTransmittanceScale(): number;
198
+ set aerialPerspectiveTransmittanceScale(value: number);
199
+ /**
200
+ * The amount of saturation applied to the aerial perspective.
201
+ * Reducing to zero desaturates the aerial perspective completely.
202
+ * A value of 1 has no effect.
203
+ */
204
+ get aerialPerspectiveSaturation(): number;
205
+ set aerialPerspectiveSaturation(value: number);
206
+ /**
207
+ * A radiance bias applied to aerial perspective.
208
+ */
209
+ get aerialPerspectiveRadianceBias(): number;
210
+ set aerialPerspectiveRadianceBias(value: number);
211
+ /**
212
+ * True if the composition should be in linear space (e.g. for HDR rendering).
213
+ * Typically linear space is expected when ImageProcessing is enabled via PostProcesses.
214
+ * False for non-linear output.
215
+ */
216
+ get isLinearSpaceComposition(): boolean;
217
+ set isLinearSpaceComposition(value: boolean);
218
+ /**
219
+ * True if the {@link light} value should be specified in linear space.
220
+ * If using PBRMaterials, light value is expected to be linear.
221
+ */
222
+ get isLinearSpaceLight(): boolean;
223
+ set isLinearSpaceLight(value: boolean);
224
+ /**
225
+ * The lookup table for transmittance.
226
+ */
227
+ get transmittanceLut(): Nullable<TransmittanceLut>;
228
+ /**
229
+ * Gets the multiple scattering LUT render target.
230
+ * @returns The render target.
231
+ */
232
+ get multiScatteringLutRenderTarget(): Nullable<RenderTargetTexture>;
233
+ /**
234
+ * The lookup table for diffuse sky irradiance, or null if not enabled.
235
+ */
236
+ get diffuseSkyIrradianceLut(): Nullable<DiffuseSkyIrradianceLut>;
237
+ /**
238
+ * The properties used to describe the size and optical parameters of the atmosphere.
239
+ */
240
+ get physicalProperties(): AtmospherePhysicalProperties;
241
+ /**
242
+ * The height in kilometers of the scene's origin.
243
+ */
244
+ get originHeight(): number;
245
+ set originHeight(value: number);
246
+ /**
247
+ * When atmospheric scattering is applied to surfaces, if this value is set to true,
248
+ * a grayscale approximation of the transmittance is used to dim surfaces.
249
+ *
250
+ * When set to false, the atmospheric composition does not dim the surfaces behind it.
251
+ * It is up to the client application to apply transmittance manually.
252
+ */
253
+ get applyApproximateTransmittance(): boolean;
254
+ set applyApproximateTransmittance(value: boolean);
255
+ /**
256
+ * The directional lights in the scene which represent the suns illuminating the atmosphere.
257
+ * Each frame, the color and intensity of the lights are updated based on the camera position and the light's direction.
258
+ */
259
+ get lights(): ReadonlyArray<DirectionalLight>;
260
+ /**
261
+ * The rendering group ID for the sky compositor.
262
+ * The sky will only be rendered for this group.
263
+ */
264
+ get skyRenderingGroup(): number;
265
+ set skyRenderingGroup(value: number);
266
+ /**
267
+ * The rendering group ID for the aerial perspective compositor.
268
+ * Aerial perspective will only be rendered for this group.
269
+ */
270
+ get aerialPerspectiveRenderingGroup(): number;
271
+ set aerialPerspectiveRenderingGroup(value: number);
272
+ /**
273
+ * The rendering group ID for the globe atmosphere compositor.
274
+ * The globe atmosphere will only be rendered for this group.
275
+ */
276
+ get globeAtmosphereRenderingGroup(): number;
277
+ set globeAtmosphereRenderingGroup(value: number);
278
+ /**
279
+ * Gets the uniform buffer used to store the atmosphere's physical properties.
280
+ */
281
+ get uniformBuffer(): UniformBuffer;
282
+ /**
283
+ * Gets the camera-related variables for this atmosphere. Updated each frame.
284
+ */
285
+ get cameraAtmosphereVariables(): AtmospherePerCameraVariables;
286
+ private _peakRayleighScatteringMmInternal;
287
+ private _peakRayleighScatteringKm;
288
+ private _peakMieScatteringMmInternal;
289
+ private _peakMieScatteringKm;
290
+ private _peakMieAbsorptionMmInternal;
291
+ private _peakMieAbsorptionKm;
292
+ private _peakOzoneAbsorptionMmInternal;
293
+ private _peakOzoneAbsorptionKm;
294
+ private get _planetRadius();
295
+ private set _planetRadius(value);
296
+ private get _planetRadiusOffset();
297
+ private set _planetRadiusOffset(value);
298
+ private get _atmosphereThickness();
299
+ private set _atmosphereThickness(value);
300
+ private get _rayleighScatteringScale();
301
+ private set _rayleighScatteringScale(value);
302
+ private get _peakRayleighScatteringMm();
303
+ private set _peakRayleighScatteringMm(value);
304
+ private get _mieScatteringScale();
305
+ private set _mieScatteringScale(value);
306
+ private get _peakMieScatteringMm();
307
+ private set _peakMieScatteringMm(value);
308
+ private get _mieAbsorptionScale();
309
+ private set _mieAbsorptionScale(value);
310
+ private get _peakMieAbsorptionMm();
311
+ private set _peakMieAbsorptionMm(value);
312
+ private get _ozoneAbsorptionScale();
313
+ private set _ozoneAbsorptionScale(value);
314
+ private get _peakOzoneAbsorptionMm();
315
+ private set _peakOzoneAbsorptionMm(value);
316
+ /**
317
+ * Constructs the {@link Atmosphere}.
318
+ * @param name - The name of this instance.
319
+ * @param scene - The scene to which the atmosphere will be added.
320
+ * @param lights - The light sources that illuminate the atmosphere. Currently only supports one light, and that light should be the first light in the scene.
321
+ * @param options - The options used to create the atmosphere.
322
+ */
323
+ constructor(name: string, scene: Scene, lights: DirectionalLight[], options?: IAtmosphereOptions);
324
+ /**
325
+ * @override
326
+ */
327
+ dispose(): void;
328
+ /**
329
+ * True if the atmosphere is enabled.
330
+ * @returns - True if the atmosphere is enabled.
331
+ */
332
+ isEnabled(): boolean;
333
+ /**
334
+ * Sets the enabled state of the atmosphere.
335
+ * @param enabled - True to enable the atmosphere, false to disable it.
336
+ */
337
+ setEnabled(enabled: boolean): void;
338
+ /**
339
+ * The class name of the {@link Atmosphere}.
340
+ * @returns - The class name of the atmosphere.
341
+ */
342
+ getClassName(): string;
343
+ /**
344
+ * Gets the color of a light after being transmitted through the atmosphere to a point specified by its distance to the planet center and its geocentric normal.
345
+ * NOTE, the result is always a linear space color.
346
+ * @param directionToLight - The direction of the light.
347
+ * @param pointRadius - The distance from the planet center to the point in kilometers.
348
+ * @param pointGeocentricNormal - The geocentric normal at the point i.e., normalize(point - planet center).
349
+ * @param result - The color to store the result in.
350
+ * @returns The result color.
351
+ */
352
+ getTransmittedColorToRef: <T extends IColor3Like>(directionToLight: IVector3Like, pointRadius: number, pointGeocentricNormal: IVector3Like, result: T) => T;
353
+ /**
354
+ * Gets the diffuse sky irradiance. Result is always in linear space.
355
+ * @param directionToLight - The direction of the point to the light.
356
+ * @param pointRadius - The distance from the planet center to the point in kilometers.
357
+ * @param pointGeocentricNormal - The geocentric normal at the point: normalize(point - planet center).
358
+ * @param lightIrradiance - The irradiance of the light.
359
+ * @param result - The color to store the result in.
360
+ * @returns The result color.
361
+ */
362
+ getDiffuseSkyIrradianceToRef: <T extends IColor3Like>(directionToLight: IVector3Like, pointRadius: number, pointGeocentricNormal: IVector3Like, lightIrradiance: number, result: T) => T;
363
+ /**
364
+ * Creates a new {@link EffectWrapper} for the multiple scattering LUT
365
+ * @returns The newly created {@link EffectWrapper}.
366
+ */
367
+ private _createMultiScatteringEffectWrapper;
368
+ /**
369
+ * Draws the multiple scattering LUT using {@link EffectWrapper} and {@link EffectRenderer}.
370
+ */
371
+ private _drawMultiScatteringLut;
372
+ /**
373
+ * Draws the aerial perspective compositor using {@link EffectWrapper} and {@link EffectRenderer}.
374
+ */
375
+ drawAerialPerspectiveCompositor(): void;
376
+ /**
377
+ * Draws the sky compositor using {@link EffectWrapper} and {@link EffectRenderer}.
378
+ */
379
+ drawSkyCompositor(): void;
380
+ /**
381
+ * Draws the globe atmosphere compositor using {@link EffectWrapper} and {@link EffectRenderer}.
382
+ */
383
+ drawGlobeAtmosphereCompositor(): void;
384
+ private _disposeSkyCompositor;
385
+ private _disposeAerialPerspectiveCompositor;
386
+ private _disposeGlobeAtmosphereCompositor;
387
+ /**
388
+ * Updates the camera variables that are specific to the atmosphere.
389
+ * @param camera - The camera to update the variables for.
390
+ */
391
+ private _updatePerCameraVariables;
392
+ /**
393
+ * Renders the lookup tables, some of which can vary per-camera.
394
+ * It is expected that updatePerCameraVariables was previously called.
395
+ */
396
+ private _renderLutsForCamera;
397
+ /**
398
+ * Renders the lookup tables that do not depend on a camera position.
399
+ */
400
+ renderGlobalLuts(): void;
401
+ /**
402
+ * Binds the atmosphere's uniform buffer to an {@link Effect}.
403
+ * @param effect - The {@link Effect} to bind the uniform buffer to.
404
+ */
405
+ bindUniformBufferToEffect(effect: Effect): void;
406
+ /**
407
+ * Updates the atmosphere's uniform buffer.
408
+ */
409
+ updateUniformBuffer(): void;
410
+ /**
411
+ * Draws the aerial perspective LUT using {@link EffectWrapper} and {@link EffectRenderer}.
412
+ */
413
+ private _drawAerialPerspectiveLut;
414
+ /**
415
+ * Draws the sky view LUT using {@link EffectWrapper} and {@link EffectRenderer}.
416
+ */
417
+ private _drawSkyViewLut;
418
+ }