@takram/three-clouds
Version:
A Three.js and R3F implementation of geospatial volumetric clouds
30 lines (29 loc) • 1.42 kB
TypeScript
import { RawShaderMaterial, Uniform, Vector2, BufferGeometry, Camera, Group, Object3D, Scene, Texture, WebGLRenderer } from 'three';
export interface CloudsResolveMaterialParameters {
colorBuffer?: Texture | null;
depthVelocityBuffer?: Texture | null;
shadowLengthBuffer?: Texture | null;
colorHistoryBuffer?: Texture | null;
shadowLengthHistoryBuffer?: Texture | null;
}
export interface CloudsResolveMaterialUniforms {
[key: string]: Uniform<unknown>;
colorBuffer: Uniform<Texture | null>;
depthVelocityBuffer: Uniform<Texture | null>;
shadowLengthBuffer: Uniform<Texture | null>;
colorHistoryBuffer: Uniform<Texture | null>;
shadowLengthHistoryBuffer: Uniform<Texture | null>;
texelSize: Uniform<Vector2>;
frame: Uniform<number>;
jitterOffset: Uniform<Vector2>;
varianceGamma: Uniform<number>;
temporalAlpha: Uniform<number>;
}
export declare class CloudsResolveMaterial extends RawShaderMaterial {
uniforms: CloudsResolveMaterialUniforms;
constructor({ colorBuffer, depthVelocityBuffer, shadowLengthBuffer, colorHistoryBuffer, shadowLengthHistoryBuffer }?: CloudsResolveMaterialParameters);
setSize(width: number, height: number): void;
onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void;
temporalUpscale: boolean;
shadowLength: boolean;
}