import { Matrix4, Uniform, Vector2, BufferGeometry, Camera, Data3DTexture, DataArrayTexture, Group, Object3D, Scene, Texture, WebGLRenderer } from 'three'; import { AtmosphereMaterialBase, AtmosphereParameters, AtmosphereMaterialBaseUniforms } from '@takram/three-atmosphere'; import { AtmosphereUniforms, CloudLayerUniforms, CloudParameterUniforms } from './uniforms'; export interface CloudsMaterialParameters { parameterUniforms: CloudParameterUniforms; layerUniforms: CloudLayerUniforms; atmosphereUniforms: AtmosphereUniforms; } export interface CloudsMaterialUniforms extends CloudParameterUniforms, CloudLayerUniforms, AtmosphereUniforms { depthBuffer: Uniform; viewMatrix: Uniform; inverseProjectionMatrix: Uniform; inverseViewMatrix: Uniform; reprojectionMatrix: Uniform; viewReprojectionMatrix: Uniform; resolution: Uniform; cameraNear: Uniform; cameraFar: Uniform; cameraHeight: Uniform; frame: Uniform; temporalJitter: Uniform; targetUvScale: Uniform; mipLevelScale: Uniform; stbnTexture: Uniform; skyLightScale: Uniform; groundBounceScale: Uniform; powderScale: Uniform; powderExponent: Uniform; maxIterationCount: Uniform; minStepSize: Uniform; maxStepSize: Uniform; maxRayDistance: Uniform; perspectiveStepScale: Uniform; minDensity: Uniform; minExtinction: Uniform; minTransmittance: Uniform; maxIterationCountToSun: Uniform; maxIterationCountToGround: Uniform; minSecondaryStepSize: Uniform; secondaryStepScale: Uniform; shadowBuffer: Uniform; shadowTexelSize: Uniform; shadowIntervals: Uniform; shadowMatrices: Uniform; shadowFar: Uniform; maxShadowFilterRadius: Uniform; maxShadowLengthIterationCount: Uniform; minShadowLengthStepSize: Uniform; maxShadowLengthRayDistance: Uniform; hazeDensityScale: Uniform; hazeExponent: Uniform; hazeScatteringCoefficient: Uniform; hazeAbsorptionCoefficient: Uniform; } export declare class CloudsMaterial extends AtmosphereMaterialBase { uniforms: AtmosphereMaterialBaseUniforms & CloudsMaterialUniforms; temporalUpscale: boolean; private previousProjectionMatrix?; private previousViewMatrix?; constructor({ parameterUniforms, layerUniforms, atmosphereUniforms }: CloudsMaterialParameters, atmosphere?: AtmosphereParameters); onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void; copyCameraSettings(camera: Camera): void; copyReprojectionMatrix(camera: Camera): void; setSize(width: number, height: number, targetWidth?: number, targetHeight?: number): void; setShadowSize(width: number, height: number): void; get depthBuffer(): Texture | null; set depthBuffer(value: Texture | null); depthPacking: number; localWeatherChannels: string; shapeDetail: boolean; turbulence: boolean; shadowLength: boolean; haze: boolean; multiScatteringOctaves: number; accurateSunSkyLight: boolean; accuratePhaseFunction: boolean; shadowCascadeCount: number; shadowSampleCount: number; scatterAnisotropy1: number; scatterAnisotropy2: number; scatterAnisotropyMix: number; }