@takram/three-clouds
Version:
A Three.js and R3F implementation of geospatial volumetric clouds
44 lines (43 loc) • 2.09 kB
TypeScript
import { ShaderPass } from 'postprocessing';
import { Camera, DataArrayTexture, DepthPackingStrategies, Texture, TextureDataType, WebGLRenderer } from 'three';
import { AtmosphereParameters } from '@takram/three-atmosphere';
import { CloudsMaterial } from './CloudsMaterial';
import { CloudsResolveMaterial } from './CloudsResolveMaterial';
import { PassBase, PassBaseOptions } from './PassBase';
import { AtmosphereUniforms, CloudLayerUniforms, CloudParameterUniforms } from './uniforms';
export interface CloudsPassOptions extends PassBaseOptions {
parameterUniforms: CloudParameterUniforms;
layerUniforms: CloudLayerUniforms;
atmosphereUniforms: AtmosphereUniforms;
}
export declare class CloudsPass extends PassBase {
private readonly atmosphere;
private currentRenderTarget;
readonly currentMaterial: CloudsMaterial;
readonly currentPass: ShaderPass;
private resolveRenderTarget;
readonly resolveMaterial: CloudsResolveMaterial;
readonly resolvePass: ShaderPass;
private historyRenderTarget;
private width;
private height;
constructor({ parameterUniforms, layerUniforms, atmosphereUniforms, ...options }: CloudsPassOptions, atmosphere: AtmosphereParameters);
copyCameraSettings(camera: Camera): void;
initialize(renderer: WebGLRenderer, alpha: boolean, frameBufferType: TextureDataType): void;
private initRenderTargets;
private copyShadow;
private copyReprojection;
private swapBuffers;
update(renderer: WebGLRenderer, frame: number, deltaTime: number): void;
setSize(width: number, height: number): void;
setShadowSize(width: number, height: number, depth: number): void;
setDepthTexture(depthTexture: Texture, depthPacking?: DepthPackingStrategies): void;
get outputBuffer(): Texture;
get shadowBuffer(): DataArrayTexture | null;
set shadowBuffer(value: DataArrayTexture | null);
get shadowLengthBuffer(): Texture | null;
get temporalUpscale(): boolean;
set temporalUpscale(value: boolean);
get lightShafts(): boolean;
set lightShafts(value: boolean);
}