UNPKG

@takram/three-atmosphere

Version:
70 lines (69 loc) 3.15 kB
import { Matrix4, RawShaderMaterial, Uniform, Vector3, BufferGeometry, Camera, Data3DTexture, DataTexture, Group, Object3D, Scene, ShaderMaterialParameters, WebGLProgramParametersWithUniforms, WebGLRenderer } from 'three'; import { Ellipsoid } from '@takram/three-geospatial'; import { AtmosphereParameters } from './AtmosphereParameters'; export interface AtmosphereMaterialProps { irradianceTexture?: DataTexture | null; scatteringTexture?: Data3DTexture | null; transmittanceTexture?: DataTexture | null; ellipsoid?: Ellipsoid; correctAltitude?: boolean; photometric?: boolean; sunDirection?: Vector3; sunAngularRadius?: number; renderTargetCount?: number; } export interface AtmosphereMaterialBaseParameters extends Partial<ShaderMaterialParameters>, AtmosphereMaterialProps { } export declare const atmosphereMaterialParametersBaseDefaults: { ellipsoid: Ellipsoid; correctAltitude: true; photometric: true; renderTargetCount: number; }; export interface AtmosphereMaterialBaseUniforms { [key: string]: Uniform<unknown>; cameraPosition: Uniform<Vector3>; ellipsoidCenter: Uniform<Vector3>; inverseEllipsoidMatrix: Uniform<Matrix4>; altitudeCorrection: Uniform<Vector3>; sunDirection: Uniform<Vector3>; u_solar_irradiance: Uniform<Vector3>; u_sun_angular_radius: Uniform<number>; u_bottom_radius: Uniform<number>; u_top_radius: Uniform<number>; u_rayleigh_scattering: Uniform<Vector3>; u_mie_scattering: Uniform<Vector3>; u_mie_phase_function_g: Uniform<number>; u_mu_s_min: Uniform<number>; u_irradiance_texture: Uniform<DataTexture | null>; u_scattering_texture: Uniform<Data3DTexture | null>; u_single_mie_scattering_texture: Uniform<Data3DTexture | null>; u_transmittance_texture: Uniform<DataTexture | null>; } export declare abstract class AtmosphereMaterialBase extends RawShaderMaterial { protected readonly atmosphere: AtmosphereParameters; uniforms: AtmosphereMaterialBaseUniforms; ellipsoid: Ellipsoid; readonly ellipsoidMatrix: Matrix4; correctAltitude: boolean; private _renderTargetCount; constructor(params?: AtmosphereMaterialBaseParameters, atmosphere?: AtmosphereParameters); copyCameraSettings(camera: Camera): void; onBeforeCompile(parameters: WebGLProgramParametersWithUniforms, renderer: WebGLRenderer): void; onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void; get irradianceTexture(): DataTexture | null; set irradianceTexture(value: DataTexture | null); get scatteringTexture(): Data3DTexture | null; set scatteringTexture(value: Data3DTexture | null); get transmittanceTexture(): DataTexture | null; set transmittanceTexture(value: DataTexture | null); get ellipsoidCenter(): Vector3; photometric: boolean; get sunDirection(): Vector3; get sunAngularRadius(): number; set sunAngularRadius(value: number); /** @package */ get renderTargetCount(): number; /** @package */ set renderTargetCount(value: number); }