@giro3d/giro3d
Version:
A JS/WebGL framework for 3D geospatial data visualization
55 lines • 1.97 kB
TypeScript
/**
* Adapted from original code by https://github.com/zz85
*
* Based on "A Practical Analytic Model for Daylight"
* aka The Preetham Model, the de facto standard analytic skydome model
* http://www.cs.utah.edu/~shirley/papers/sunsky/sunsky.pdf
*
* First implemented by Simon Wallner
* http://www.simonwallner.at/projects/atmospheric-scattering
*
* Improved by Martin Upitis
* http://blenderartists.org/forum/showthread.php?245954-preethams-sky-impementation-HDR
*
* THREE.js integration by zz85 http://twitter.com/blurspline
*/
import type { Camera, IUniform, Scene, WebGLRenderer } from 'three';
import { Mesh, ShaderMaterial, SphereGeometry, Vector3 } from 'three';
interface Uniforms extends Record<string, IUniform<unknown>> {
skyDomeLuminance: IUniform<number>;
turbidity: IUniform<number>;
rayleighCoefficient: IUniform<number>;
mieCoefficient: IUniform<number>;
mieDirectionalG: IUniform<number>;
sunPosition: IUniform<Vector3>;
up: IUniform<Vector3>;
sunAngularDiameterCos: IUniform<number>;
}
declare class SkyDome extends Mesh<SphereGeometry, ShaderMaterial> {
readonly isSkyDome: true;
readonly type: "SkyDome";
readonly uniforms: Uniforms;
private set;
private get;
/**
* The cosine of the solar disc's apparent diameter, in degrees.
*/
get sunAngularDiameterCos(): number;
set sunAngularDiameterCos(v: number);
get luminance(): number;
set luminance(v: number);
get turbidity(): number;
set turbidity(v: number);
get rayleighCoefficient(): number;
set rayleighCoefficient(v: number);
get mieCoefficient(): number;
set mieCoefficient(v: number);
get mieDirectionalG(): number;
set mieDirectionalG(v: number);
constructor(params?: {
atmosphereThickness?: number;
});
onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera): void;
}
export default SkyDome;
//# sourceMappingURL=SkyDome.d.ts.map