UNPKG

@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
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