@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
64 lines (62 loc) • 3.75 kB
TypeScript
import type { ClonableMixin } from "../core/Clonable.js";
import type { JSONSupport } from "../core/JSONSupport.js";
export interface GlowProperties extends Partial<Pick<Glow, "intensity">> {}
/**
* [Glow](https://developers.arcgis.com/javascript/latest/references/core/webscene/Glow/) is a global stylized effect that enhances the appearance of light-emitting elements and applies
* to all emitters in the scene. If a scene contains no emissive elements, enabling glow has no visible effect.
*
* When [Glow](https://developers.arcgis.com/javascript/latest/references/core/webscene/Glow/) is set to null, emissive elements render naturally, simulating atmospheric light scattering
* with a bright but realistic appearance. The intensity controls the strength of the effect: a value of 0 produces a
* subtle glow, while 1 creates a pronounced, exaggerated glow for strong visual emphasis.
*
* Add light emitters to the scene by configuring [Symbol3DEmissive](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/Symbol3DEmissive/) property in [Symbol3DMaterial](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/Symbol3DMaterial/)
* on volumetric symbol layers, or by including 3D models with emission defined (for example, via emissive maps or
* materials with an emissive color or factor). See the [Visualization with light-emitting symbols](https://developers.arcgis.com/javascript/latest/sample-code/light-emitting-symbols/) sample to learn how
* to use emissive materials and glow to highlight features and build nighttime scenes.
*
* |<img src="https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/emissiveStrength1.png" style="width:250px;"/>|<img src="https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/glow0.png" style="width:250px;"/>|<img src="https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/glow1.png" style="width:250px;"/>|
* | ---------- | ----------- | ----------- |
* | `glow: null`|`glow: { intensity: 0 }`|`glow: { intensity: 1 }`|
* | Without glow, emissive elements display with a bright, natural appearance. | Glow enables a more stylized look of emissive elements across the scene. `intensity:0` adds a subtle glow only. | `intensity:1` adds an exaggerated glow, helpful for strong emphasis of emissive elements.
*
* > [!WARNING]
* >
* > **Known Limitations**
* > [Symbol3DEmissive](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/Symbol3DEmissive/) and [Glow](https://developers.arcgis.com/javascript/latest/references/core/webscene/Glow/) require support for the WebGL2 extension `EXT_float_blend`.
*
* Example:
* ```js
* let view = new SceneView({
* map: new Map({
* basemap: "satellite",
* ground: "world-elevation"
* }),
* environment: {
* lighting: {
* type: "sun",
* glow: { intensity: 0.2 },
* }
* }
* });
* ```
* The visualization updates as soon as the property changes:
* ```js
* view.environment.lighting.glow = new Glow({
* intensity: 0.8
* });
* ```
*
* @see [Sample - Visualization with light-emitting symbols](https://developers.arcgis.com/javascript/latest/sample-code/light-emitting-symbols/)
* @since 5.0
*/
export default class Glow extends GlowSuperclass {
constructor(properties?: GlowProperties);
/**
* Amount of stylized glow on emissive elements in the scene. The range spans from 0 to 1, going from subtle to strong
* stylized glow for emphasis.
*
* @default 0.5
*/
accessor intensity: number;
}
declare const GlowSuperclass: typeof JSONSupport & typeof ClonableMixin