Add existing to tracked
This commit is contained in:
+149
@@ -0,0 +1,149 @@
|
||||
import Cartesian3 from "../Core/Cartesian3.js";
|
||||
import CesiumMath from "../Core/Math.js";
|
||||
import DynamicAtmosphereLightingType from "./DynamicAtmosphereLightingType.js";
|
||||
|
||||
/**
|
||||
* Common atmosphere settings used by 3D Tiles and models for rendering sky atmosphere, ground atmosphere, and fog.
|
||||
*
|
||||
* <p>
|
||||
* This class is not to be confused with {@link SkyAtmosphere}, which is responsible for rendering the sky.
|
||||
* </p>
|
||||
* <p>
|
||||
* While the atmosphere settings affect the color of fog, see {@link Fog} to control how fog is rendered.
|
||||
* </p>
|
||||
*
|
||||
* @alias Atmosphere
|
||||
* @constructor
|
||||
*
|
||||
* @example
|
||||
* // Turn on dynamic atmosphere lighting using the sun direction
|
||||
* scene.atmosphere.dynamicLighting = Cesium.DynamicAtmosphereLightingType.SUNLIGHT;
|
||||
*
|
||||
* @example
|
||||
* // Turn on dynamic lighting using whatever light source is in the scene
|
||||
* scene.light = new Cesium.DirectionalLight({
|
||||
* direction: new Cesium.Cartesian3(1, 0, 0)
|
||||
* });
|
||||
* scene.atmosphere.dynamicLighting = Cesium.DynamicAtmosphereLightingType.SCENE_LIGHT;
|
||||
*
|
||||
* @example
|
||||
* // Adjust the color of the atmosphere effects.
|
||||
* scene.atmosphere.hueShift = 0.4; // Cycle 40% around the color wheel
|
||||
* scene.atmosphere.brightnessShift = 0.25; // Increase the brightness
|
||||
* scene.atmosphere.saturationShift = -0.1; // Desaturate the colors
|
||||
*
|
||||
* @see SkyAtmosphere
|
||||
* @see Globe
|
||||
* @see Fog
|
||||
*/
|
||||
function Atmosphere() {
|
||||
/**
|
||||
* The intensity of the light that is used for computing the ground atmosphere color.
|
||||
*
|
||||
* @type {number}
|
||||
* @default 10.0
|
||||
*/
|
||||
this.lightIntensity = 10.0;
|
||||
|
||||
/**
|
||||
* The Rayleigh scattering coefficient used in the atmospheric scattering equations for the ground atmosphere.
|
||||
*
|
||||
* @type {Cartesian3}
|
||||
* @default Cartesian3(5.5e-6, 13.0e-6, 28.4e-6)
|
||||
*/
|
||||
this.rayleighCoefficient = new Cartesian3(5.5e-6, 13.0e-6, 28.4e-6);
|
||||
|
||||
/**
|
||||
* The Mie scattering coefficient used in the atmospheric scattering equations for the ground atmosphere.
|
||||
*
|
||||
* @type {Cartesian3}
|
||||
* @default Cartesian3(21e-6, 21e-6, 21e-6)
|
||||
*/
|
||||
this.mieCoefficient = new Cartesian3(21e-6, 21e-6, 21e-6);
|
||||
|
||||
/**
|
||||
* The Rayleigh scale height used in the atmospheric scattering equations for the ground atmosphere, in meters.
|
||||
*
|
||||
* @type {number}
|
||||
* @default 10000.0
|
||||
*/
|
||||
this.rayleighScaleHeight = 10000.0;
|
||||
|
||||
/**
|
||||
* The Mie scale height used in the atmospheric scattering equations for the ground atmosphere, in meters.
|
||||
*
|
||||
* @type {number}
|
||||
* @default 3200.0
|
||||
*/
|
||||
this.mieScaleHeight = 3200.0;
|
||||
|
||||
/**
|
||||
* The anisotropy of the medium to consider for Mie scattering.
|
||||
* <p>
|
||||
* Valid values are between -1.0 and 1.0.
|
||||
* </p>
|
||||
*
|
||||
* @type {number}
|
||||
* @default 0.9
|
||||
*/
|
||||
this.mieAnisotropy = 0.9;
|
||||
|
||||
/**
|
||||
* The hue shift to apply to the atmosphere. Defaults to 0.0 (no shift).
|
||||
* A hue shift of 1.0 indicates a complete rotation of the hues available.
|
||||
*
|
||||
* @type {number}
|
||||
* @default 0.0
|
||||
*/
|
||||
this.hueShift = 0.0;
|
||||
|
||||
/**
|
||||
* The saturation shift to apply to the atmosphere. Defaults to 0.0 (no shift).
|
||||
* A saturation shift of -1.0 is monochrome.
|
||||
*
|
||||
* @type {number}
|
||||
* @default 0.0
|
||||
*/
|
||||
this.saturationShift = 0.0;
|
||||
|
||||
/**
|
||||
* The brightness shift to apply to the atmosphere. Defaults to 0.0 (no shift).
|
||||
* A brightness shift of -1.0 is complete darkness, which will let space show through.
|
||||
*
|
||||
* @type {number}
|
||||
* @default 0.0
|
||||
*/
|
||||
this.brightnessShift = 0.0;
|
||||
|
||||
/**
|
||||
* When not DynamicAtmosphereLightingType.NONE, the selected light source will
|
||||
* be used for dynamically lighting all atmosphere-related rendering effects.
|
||||
*
|
||||
* @type {DynamicAtmosphereLightingType}
|
||||
* @default DynamicAtmosphereLightingType.NONE
|
||||
*/
|
||||
this.dynamicLighting = DynamicAtmosphereLightingType.NONE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns <code>true</code> if the atmosphere shader requires a color correct step.
|
||||
* @param {Atmosphere} atmosphere The atmosphere instance to check
|
||||
* @returns {boolean} true if the atmosphere shader requires a color correct step
|
||||
*/
|
||||
Atmosphere.requiresColorCorrect = function (atmosphere) {
|
||||
return !(
|
||||
CesiumMath.equalsEpsilon(atmosphere.hueShift, 0.0, CesiumMath.EPSILON7) &&
|
||||
CesiumMath.equalsEpsilon(
|
||||
atmosphere.saturationShift,
|
||||
0.0,
|
||||
CesiumMath.EPSILON7,
|
||||
) &&
|
||||
CesiumMath.equalsEpsilon(
|
||||
atmosphere.brightnessShift,
|
||||
0.0,
|
||||
CesiumMath.EPSILON7,
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
export default Atmosphere;
|
||||
Reference in New Issue
Block a user