@takram/three-clouds
Version:
A Three.js and R3F implementation of geospatial volumetric clouds
34 lines (33 loc) • 1.39 kB
TypeScript
import { Matrix4, RawShaderMaterial, Uniform, Vector2, Data3DTexture } from 'three';
import { AtmosphereUniforms, CloudLayerUniforms, CloudParameterUniforms } from './uniforms';
export interface ShadowMaterialParameters {
parameterUniforms: CloudParameterUniforms;
layerUniforms: CloudLayerUniforms;
atmosphereUniforms: AtmosphereUniforms;
}
export interface ShadowMaterialUniforms extends CloudParameterUniforms, CloudLayerUniforms, AtmosphereUniforms {
[key: string]: Uniform<unknown>;
inverseShadowMatrices: Uniform<Matrix4[]>;
reprojectionMatrices: Uniform<Matrix4[]>;
resolution: Uniform<Vector2>;
frame: Uniform<number>;
stbnTexture: Uniform<Data3DTexture | null>;
maxIterationCount: Uniform<number>;
minStepSize: Uniform<number>;
maxStepSize: Uniform<number>;
minDensity: Uniform<number>;
minExtinction: Uniform<number>;
minTransmittance: Uniform<number>;
opticalDepthTailScale: Uniform<number>;
}
export declare class ShadowMaterial extends RawShaderMaterial {
uniforms: ShadowMaterialUniforms;
constructor({ parameterUniforms, layerUniforms, atmosphereUniforms }: ShadowMaterialParameters);
setSize(width: number, height: number): void;
localWeatherChannels: string;
cascadeCount: number;
temporalPass: boolean;
temporalJitter: boolean;
shapeDetail: boolean;
turbulence: boolean;
}