import { type Atmosphere } from "./atmosphere.js"; import { type IColor3Like, type IVector3Like } from "@babylonjs/core/Maths/math.like.js"; import { RenderTargetTexture } from "@babylonjs/core/Materials/Textures/renderTargetTexture.pure.js"; /** * The diffuse sky irradiance LUT is used to query the diffuse irradiance at a specified position. */ export declare class DiffuseSkyIrradianceLut { private readonly _atmosphere; private _renderTarget; private _effectWrapper; private _effectRenderer; private _isDirty; private _isDisposed; private _needsReadPixels; private _lutData; /** * True if the LUT needs to be rendered. */ get isDirty(): boolean; /** * True if the LUT has been disposed. */ get isDisposed(): boolean; /** * The render target used for this LUT. * @throws if the LUT has been disposed. */ get renderTarget(): RenderTargetTexture; /** * True if the LUT data has been read back from the GPU. */ get hasLutData(): boolean; /** * Constructs the {@link DiffuseSkyIrradianceLut}. * @param atmosphere - The atmosphere to use. */ constructor(atmosphere: Atmosphere); /** * Gets the diffuse sky irradiance for a surface oriented along the geocentric normal. * Resulting color is always in linear space. * @param directionToLight - The direction to the light in world space. * @param radius - The position's distance to the planet origin. * @param cameraGeocentricNormal - The geocentric normal of the camera. * @param lightIrradiance - The irradiance of the light. * @param result - The color to store the result in. * @returns The result color. */ getDiffuseSkyIrradianceToRef(directionToLight: IVector3Like, radius: number, cameraGeocentricNormal: IVector3Like, lightIrradiance: number, result: T): T; /** * Renders the LUT. * @returns True if the LUT was rendered. */ render(): boolean; /** * Reads back the LUT data from the GPU if a readback is pending. * @internal */ readPixelsAsync(): Promise; /** * Marks the LUT as needing to be rendered. */ markDirty(): void; /** * Disposes the LUT. */ dispose(): void; }