import { Texture, Vector2, Vector3 } from 'three'; import { Storage3DTexture, StorageTexture, Renderer } from 'three/webgpu'; import { AnyFloatType } from '@takram/three-geospatial'; import { AtmosphereLUTTexture3DName, AtmosphereLUTTextureName } from './AtmosphereLUTNode'; import { AtmosphereLUTTextures, AtmosphereLUTTexturesContext } from './AtmosphereLUTTextures'; import { AtmosphereParameters } from './AtmosphereParameters'; export declare function createStorageTexture(name: string): StorageTexture; export declare function createStorage3DTexture(name: string): Storage3DTexture; export declare function setupStorageTexture(texture: Texture, textureType: AnyFloatType, size: Vector2): void; export declare function setupStorage3DTexture(texture: Storage3DTexture, textureType: AnyFloatType, size: Vector3): void; declare class AtmosphereLUTTexturesContextWebGPU extends AtmosphereLUTTexturesContext { opticalDepth: StorageTexture; deltaIrradiance: StorageTexture; deltaRayleighScattering: Storage3DTexture; deltaMieScattering: Storage3DTexture; deltaScatteringDensity: Storage3DTexture; irradianceRead: StorageTexture; scatteringRead: Storage3DTexture; higherOrderScatteringRead: Storage3DTexture; deltaMultipleScattering: Storage3DTexture; constructor(parameters: AtmosphereParameters, textureType: AnyFloatType); dispose(): void; } export declare class AtmosphereLUTTexturesWebGPU extends AtmosphereLUTTextures { private readonly transmittance; private readonly irradiance; private readonly scattering; private readonly singleMieScattering; private readonly higherOrderScattering; private transmittanceNode?; private directIrradianceNode?; private singleScatteringNode?; private scatteringDensityNode?; private indirectIrradianceNode?; private multipleScatteringNode?; private readonly scatteringOrder; get(name: AtmosphereLUTTextureName | AtmosphereLUTTexture3DName): Texture; createContext(): AtmosphereLUTTexturesContextWebGPU; computeTransmittance(renderer: Renderer, context: AtmosphereLUTTexturesContextWebGPU): void; computeDirectIrradiance(renderer: Renderer, context: AtmosphereLUTTexturesContextWebGPU): void; computeSingleScattering(renderer: Renderer, context: AtmosphereLUTTexturesContextWebGPU): void; computeScatteringDensity(renderer: Renderer, context: AtmosphereLUTTexturesContextWebGPU, scatteringOrder: number): void; computeIndirectIrradiance(renderer: Renderer, context: AtmosphereLUTTexturesContextWebGPU, scatteringOrder: number): void; computeMultipleScattering(renderer: Renderer, context: AtmosphereLUTTexturesContextWebGPU): void; setup(parameters: AtmosphereParameters, textureType: AnyFloatType): void; dispose(): void; } export {};