import { Symbol3DEmissive } from "@arcgis/core/symbols/support/Symbol3DEmissive.js";const { Symbol3DEmissive } = await $arcgis.import("@arcgis/core/symbols/support/Symbol3DEmissive.js");- Inheritance:
- Symbol3DEmissive→
Accessor
- Since
- ArcGIS Maps SDK for JavaScript 5.0
Symbol3DEmissive defines a material as a light emitter for 3D symbols. Light emitters are materials that produce visible light in a scene, allowing objects to appear illuminated (for example, glowing windows, signage, or highlighted features), independent of external light sources.
It can be configured as part of a Symbol3DMaterial on volumetric Symbol3DLayer types. The amount and behavior of emitted light are controlled by the strength and its source.
An optional Glow effect can be enabled to enhance the appearance of all emissive elements in the scene by adding a stylized glow.
Known Limitations
Symbol3DEmissive and Glow require support for the WebGL2 extension
EXT_float_blend, not available on iOS.
Symbol3DEmissive is supported on ObjectSymbol3DLayer,
ExtrudeSymbol3DLayer, PathSymbol3DLayer, or FillSymbol3DLayer on
MeshSymbol3D.
Example:
let symbol = { type: "polygon-3d", // autocasts as new PolygonSymbol3D() symbolLayers: [{ type: "extrude", // autocasts as new ExtrudeSymbol3DLayer() size: 100000, material: { // autocasts as new Symbol3DMaterial() color: "red", emissive: { // autocasts as new Symbol3DEmissive() source: "color", strength: 0.5 } } }]};Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
declaredClass readonly inherited | ||
| | ||
| |
source
The source for the emissive effect. Determines whether the emissive values are derived from an underlying model or from the combined color information of the symbology.
| Value | Description |
|---|---|
| emissive | Applies emissive texture and/or emissive factor from underlying models. |
| color | Applies the combined symbol material color as emissive color. |
Setting source to "emissive" only has an effect on elements that contain an underlying model with PBR materials
with emissive information, such as ObjectSymbol3DLayer, SceneLayer with glTF resource
or a MeshSymbol3D with a FillSymbol3DLayer. If the underlying models do not contain
emissive information, setting source to "emissive" has no effect.
Setting source: "color" on these elements will ignore all underlying emissive infomation, and use the combined
base color as emissive color.
Symbol layers such as ExtrudeSymbol3DLayer, PathSymbol3DLayer or ObjectSymbol3DLayer
with primitive resource do not have an underlying model with materials that contain emissive information, hence
setting source to "emissive" has no effect. To make these elements emissive, set source to "color" to make them
emit light in their combined color.
![]() | ![]() |
|---|---|
source: "emissive" | source: "color" |
| Emissive color from glTF emissive texture. | Emissive color uses glTF color texture. All glTF emissive textures and factors are ignored. |
- Default value
- "emissive"
strength
- Type
- number
The strength property controls how much light a material emits and is defined as a scalar multiplier on the emission color. It is typically set between 0 and 1, where 0 means no light is emitted and 1 represents the full emission color. Values greater than 1 increase the amount of emitted light and may lead to overexposure, causing colors to shift toward white.
Increasing strength makes emissive elements appear more prominent and can amplify their visual impact when the optional Glow effect is enabled.
![]() | ![]() | ![]() |
|---|---|---|
strength: 0 | strength: 1 | strength: 2 |
| Turn off all emissive parts of theater sign. | Display theater sign with its emissive parts in original strength. | Higher strength increases the amount of emitted light. |
- Default value
- 1
Methods
fromJSON
- Signature
-
fromJSON (json: any): any
Creates a new instance of this class and initializes it with values from a JSON object
generated from an ArcGIS product. The object passed into the input json
parameter often comes from a response to a query operation in the REST API or a
toJSON()
method from another ArcGIS product. See the Using fromJSON()
topic in the Guide for details and examples of when and how to use this function.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| json | A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. | |
- Returns
- any
Returns a new instance of this class.
clone
- Signature
-
clone (): this
Creates a deep clone of this object. Any properties that store values by reference will be assigned copies of the referenced values on the cloned instance.
- Returns
- this
A deep clone of the class instance that invoked this method.
toJSON
- Signature
-
toJSON (): any
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
- Returns
- any
The ArcGIS portal JSON representation of an instance of this class.



