import { BlendFunction, Effect } from 'postprocessing'; import { Camera, Matrix4, Uniform, Vector2, Vector3, Data3DTexture, Texture, WebGLRenderer, WebGLRenderTarget } from 'three'; import { Ellipsoid, UniformMap } from '@takram/three-geospatial'; import { AtmosphereParameters, AtmosphereParametersUniform } from './AtmosphereParameters'; import { AtmosphereLightingMask, AtmosphereOverlay, AtmosphereShadow, AtmosphereShadowLength } from './types'; export interface AerialPerspectiveEffectOptions { blendFunction?: BlendFunction; normalBuffer?: Texture | null; octEncodedNormal?: boolean; reconstructNormal?: boolean; irradianceTexture?: Texture | null; scatteringTexture?: Data3DTexture | null; transmittanceTexture?: Texture | null; singleMieScatteringTexture?: Data3DTexture | null; higherOrderScatteringTexture?: Data3DTexture | null; ellipsoid?: Ellipsoid; correctAltitude?: boolean; correctGeometricError?: boolean; sunDirection?: Vector3; sunLight?: boolean; skyLight?: boolean; transmittance?: boolean; inscatter?: boolean; albedoScale?: number; sky?: boolean; sun?: boolean; moon?: boolean; moonDirection?: Vector3; moonAngularRadius?: number; lunarRadianceScale?: number; ground?: boolean; } export interface AerialPerspectiveEffectUniforms { normalBuffer: Uniform; projectionMatrix: Uniform; viewMatrix: Uniform; inverseProjectionMatrix: Uniform; inverseViewMatrix: Uniform; cameraPosition: Uniform; bottomRadius: Uniform; ellipsoidRadii: Uniform; worldToECEFMatrix: Uniform; altitudeCorrection: Uniform; geometricErrorCorrectionAmount: Uniform; sunDirection: Uniform; albedoScale: Uniform; moonDirection: Uniform; moonAngularRadius: Uniform; lunarRadianceScale: Uniform; overlayBuffer: Uniform; shadowBuffer: Uniform; shadowMapSize: Uniform; shadowIntervals: Uniform; shadowMatrices: Uniform; inverseShadowMatrices: Uniform; shadowFar: Uniform; shadowTopHeight: Uniform; shadowRadius: Uniform; stbnTexture: Uniform; frame: Uniform; shadowLengthBuffer: Uniform; lightingMaskBuffer: Uniform; ATMOSPHERE: AtmosphereParametersUniform; SUN_SPECTRAL_RADIANCE_TO_LUMINANCE: Uniform; SKY_SPECTRAL_RADIANCE_TO_LUMINANCE: Uniform; irradiance_texture: Uniform; scattering_texture: Uniform; transmittance_texture: Uniform; single_mie_scattering_texture: Uniform; higher_order_scattering_texture: Uniform; } export declare const aerialPerspectiveEffectOptionsDefaults: { blendFunction: BlendFunction; octEncodedNormal: false; reconstructNormal: false; ellipsoid: Ellipsoid; correctAltitude: true; correctGeometricError: true; sunLight: false; skyLight: false; transmittance: true; inscatter: true; albedoScale: number; sky: false; sun: true; moon: true; moonAngularRadius: number; lunarRadianceScale: number; ground: true; }; export declare class AerialPerspectiveEffect extends Effect { private camera; private readonly atmosphere; uniforms: UniformMap; private _ellipsoid; correctAltitude: boolean; overlay: AtmosphereOverlay | null; shadow: AtmosphereShadow | null; shadowLength: AtmosphereShadowLength | null; lightingMask: AtmosphereLightingMask | null; constructor(camera?: Camera, options?: AerialPerspectiveEffectOptions, atmosphere?: AtmosphereParameters); get mainCamera(): Camera; set mainCamera(value: Camera); private copyCameraSettings; private updateOverlay; private updateShadow; private updateShadowLength; private updateLightingMask; update(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, deltaTime?: number): void; get normalBuffer(): Texture | null; set normalBuffer(value: Texture | null); octEncodedNormal: boolean; reconstructNormal: boolean; hasNormals: boolean; get irradianceTexture(): Texture | null; set irradianceTexture(value: Texture | null); get scatteringTexture(): Data3DTexture | null; set scatteringTexture(value: Data3DTexture | null); get transmittanceTexture(): Texture | null; set transmittanceTexture(value: Texture | null); /** @private */ combinedScatteringTextures: boolean; get singleMieScatteringTexture(): Data3DTexture | null; set singleMieScatteringTexture(value: Data3DTexture | null); /** @private */ hasHigherOrderScatteringTexture: boolean; get higherOrderScatteringTexture(): Data3DTexture | null; set higherOrderScatteringTexture(value: Data3DTexture | null); get ellipsoid(): Ellipsoid; set ellipsoid(value: Ellipsoid); get worldToECEFMatrix(): Matrix4; correctGeometricError: boolean; get sunDirection(): Vector3; sunLight: boolean; skyLight: boolean; transmittance: boolean; inscatter: boolean; get albedoScale(): number; set albedoScale(value: number); sky: boolean; sun: boolean; moon: boolean; get moonDirection(): Vector3; get moonAngularRadius(): number; set moonAngularRadius(value: number); get lunarRadianceScale(): number; set lunarRadianceScale(value: number); ground: boolean; get stbnTexture(): Data3DTexture | null; set stbnTexture(value: Data3DTexture | null); get shadowRadius(): number; set shadowRadius(value: number); shadowSampleCount: number; }