Skip to content
import { Symbol3DEmissive } from "@arcgis/core/symbols/support/Symbol3DEmissive.js";
Inheritance:
Symbol3DEmissiveAccessor
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
}
}
}]
};
See also

Constructors

Constructor

Constructor
Parameters
ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor
Since
ArcGIS Maps SDK for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

source

Property
Type
Symbol3DEmissiveSource

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.

ValueDescription
emissiveApplies emissive texture and/or emissive factor from underlying models.
colorApplies 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.

glow1glow1
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

Property
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.

glowNullglow0glow1
strength: 0strength: 1strength: 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

MethodSignatureClass
fromJSON
inherited static
fromJSON(json: any): any
clone
inherited
clone(): this
toJSON
inherited
toJSON(): any

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

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
ParameterTypeDescriptionRequired
json
any

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

inherited Method
Signature
clone (): this
Inherited from: ClonableMixin

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

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

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.