The Entity that this Component is attached to.
The ComponentSystem used to create this Component.
Gets whether the light will affect non-lightmapped objects.
Sets whether the light will affect non-lightmapped objects. Toggles the MASK_AFFECT_DYNAMIC bit on mask. Defaults to true.
Gets whether the light will affect lightmapped objects.
Gets whether material specularity will be affected by this light.
Gets whether the light will be rendered into lightmaps.
Sets whether the light will be rendered into lightmaps. Toggles the MASK_BAKE bit on mask. Mutually exclusive with affectLightmapped on the mask: enabling one clears the other's mask bit. Defaults to false.
Gets the angular size in degrees of the area used when baking soft shadow boundaries for the directional light into the lightmap.
Gets whether the light's direction will contribute to directional lightmaps.
Sets whether the light's direction will contribute to directional lightmaps. The light must be enabled and bake set to true. Be aware that the directional lightmap is an approximation and can only hold a single direction per pixel. Intersecting multiple lights with bakeDir set to true may lead to incorrect-looking specular/bump mapping in the area of intersection. The error is not always visible though, and is highly scene-dependent. Defaults to true.
Gets the number of samples used to bake this light into the lightmap.
Sets the number of samples used to bake this light into the lightmap. Defaults to 1. Maximum value is 255.
Gets the blend factor for cascaded shadow maps.
Sets the blend factor for cascaded shadow maps, defining the fraction of each cascade level used for blending between adjacent cascades. The value should be between 0 and 1. Defaults to 0, which disables blending between cascades.
Gets the distribution of subdivision of the camera frustum for individual shadow cascades.
Sets the distribution of subdivision of the camera frustum for individual shadow cascades. Only used if numCascades is larger than 1. Can be a value in range of 0 and 1. Value of 0 represents a linear distribution, value of 1 represents a logarithmic distribution. Defaults to 0.5. Larger value increases the resolution of the shadows in the near distance.
Gets whether the light will cast shadows.
Sets whether the light will cast shadows. Defaults to false.
Gets the texture to be used as the cookie for this light.
Sets the texture to be used as the cookie for this light. Only spot and omni lights can have cookies. Spot lights expect a 2D texture; omni lights expect a cubemap. Defaults to null.
Gets the angle for spotlight cookie rotation (in degrees).
Sets the angle for spotlight cookie rotation in degrees. Defaults to 0.
Gets the id of the texture asset used as the cookie for this light, or null if none is set.
Sets the id of the texture asset to be used as the cookie for this light. Only spot and omni lights can have cookies. Spot lights expect a 2D texture; omni lights expect a cubemap. Defaults to null.
Gets the color channels of the cookie texture to use.
Sets the color channels of the cookie texture to use. Can be "r", "g", "b", "a" or
"rgb". Defaults to "rgb".
Gets whether normal spotlight falloff is active when a cookie texture is set.
Sets whether normal spotlight falloff is active when a cookie texture is set. When set to false, a spotlight will work like a pure texture projector (only fading with distance). Defaults to true.
Gets the cookie texture intensity.
Sets the cookie texture intensity. Defaults to 1.
Gets the enabled state of the component.
Sets the enabled state of the component.
Gets the fall off mode for the light.
Sets the fall off mode for the light. This controls the rate at which a light attenuates from its position. Can be:
Affects omni and spot lights only. Defaults to LIGHTFALLOFF_LINEAR.
Gets the half-angle (measured in degrees from the light's direction axis to the cone edge) at which the spotlight cone starts to fade off.
Sets the half-angle (measured in degrees from the light's direction axis to the cone edge) at which the spotlight cone starts to fade off. The full inner beam angle is twice this value. Affects spot lights only. Defaults to 40 (i.e. an 80-degree full inner beam).
Gets the brightness of the light.
Sets the brightness of the light. Defaults to 1.
Gets whether the light ever moves.
Sets whether the light ever moves. This is an optimization hint. Defaults to false.
Gets the array of layer IDs (Layer#id) to which this light should belong.
Sets the array of layer IDs (Layer#id) to which this light should belong. Don't push/pop/splice or modify this array. If you want to change it, set a new one instead. Defaults to [LAYERID_WORLD].
Gets the physically-based luminance.
Sets the physically-based luminance. Only used if scene.physicalUnits is true. Defaults to 0.
Gets the mask to determine which MeshInstances are lit by this light.
Sets the bitmask that determines which MeshInstances are lit by this light. The
value is composed from MASK_AFFECT_DYNAMIC, MASK_AFFECT_LIGHTMAPPED and
MASK_BAKE. The affectDynamic, affectLightmapped and bake
helpers write to the same underlying mask but maintain their own state and are not
recomputed from mask, so writing mask directly will not update those helpers (and a
subsequent write to a helper may overwrite bits set via mask). Defaults to
MASK_AFFECT_DYNAMIC.
Gets the normal offset depth bias.
Sets the normal offset depth bias. Valid range is 0 to 1. Defaults to 0.
Gets the number of shadow cascades.
Sets the number of shadow cascades. Can be 1, 2, 3 or 4. Defaults to 1, representing no cascades.
Gets the half-angle (measured in degrees from the light's direction axis to the cone edge) at which the spotlight cone has faded to nothing.
Sets the half-angle (measured in degrees from the light's direction axis to the cone edge) at which the spotlight cone has faded to nothing. The full outer beam angle is twice this value. Affects spot lights only. Defaults to 45 (i.e. a 90-degree full outer beam).
Gets the falloff rate for shadow penumbra for contact hardening shadows.
Sets the falloff rate for shadow penumbra for contact hardening shadows. This is a value larger than or equal to 1. This parameter determines how quickly the shadow softens with distance. Higher values result in a faster softening of the shadow, while lower values produce a more gradual transition. Defaults to 1.
Gets the size of penumbra for contact hardening shadows.
Sets the size of penumbra for contact hardening shadows. For area lights, acts as a multiplier with the dimensions of the area light. For punctual and directional lights it's the area size of the light. Defaults to 1.
Gets the range of the light.
Sets the range of the light. Affects omni and spot lights only. Defaults to 10.
Get the depth bias for tuning the appearance of the shadow mapping generated by this light.
Set the depth bias for tuning the appearance of the shadow mapping generated by this light. Valid range is 0 to 1. Defaults to 0.05.
Gets the number of blocker samples used for contact hardening shadows.
Sets the number of blocker samples used for soft shadows when the shadow type is SHADOW_PCSS_32F. These samples are used to estimate the distance between the shadow caster and the shadow receiver, which is then used for the estimation of contact hardening in the shadow. This value should be a non-negative whole number. Higher values improve shadow quality by considering more occlusion points, but can decrease performance. When set to 0, contact hardening is disabled and the shadow has constant softness. Defaults to 16. Note that this value can be lower than shadowSamples to optimize performance, often without large impact on quality.
Gets the distance from the viewpoint beyond which shadows are no longer rendered.
Sets the distance from the viewpoint beyond which shadows are no longer rendered. Affects directional lights only. Defaults to 40.
Gets the intensity of the shadow darkening.
Sets the intensity of the shadow darkening. 0 having no effect and 1 meaning shadows are entirely black. Defaults to 1.
Gets the size of the texture used for the shadow map.
Sets the size of the texture used for the shadow map. Valid sizes are 64, 128, 256, 512, 1024, 2048. Defaults to 1024.
Gets the number of shadow samples used for soft shadows.
Sets the number of shadow samples used for soft shadows when the shadow type is SHADOW_PCSS_32F. This value should be a positive whole number starting at 1. Higher values result in smoother shadows but can significantly decrease performance. Defaults to 16.
Gets the type of shadows being rendered by this light.
Sets the type of shadows being rendered by this light. Can be:
Defaults to SHADOW_PCF3_32F.
Gets the shadow update mode.
Sets the shadow update mode. This tells the renderer how often shadows must be updated for this light. Can be:
Defaults to SHADOWUPDATE_REALTIME.
Gets an array of SHADOWUPDATE_ settings per shadow cascade.
Sets an array of SHADOWUPDATE_ settings per shadow cascade. Set to null if not used. Defaults to null.
Gets the light source shape.
Sets the light source shape. Can be:
Defaults to LIGHTSHAPE_PUNCTUAL.
Gets the type of the light.
Sets the type of the light. Can be:
"directional": A global light that emits light in the direction of the negative y-axis
of the owner entity."omni": A local light that emits light in all directions from the owner entity's
position."spot": A local light that emits light similarly to an omni light but is bounded by a
cone centered on the owner entity's negative y-axis.Defaults to "directional".
Gets the VSM bias value.
Sets the bias used to fight shadow acne when rendering variance shadow maps. Range is 0 to
Gets the blurring mode for variance shadow maps.
Sets the blurring mode for variance shadow maps. Can be:
Defaults to BLUR_GAUSSIAN.
Gets the number of samples used for blurring a variance shadow map.
Sets the number of samples used for blurring a variance shadow map. Only odd values are supported; even values are rounded up to the next odd value. Values should be between 1 and 25. Defaults to 11.
Fire an event, all additional arguments are passed on to the event listener.
Name of event to fire.
Optionalarg1: anyFirst argument that is passed to the event handler.
Optionalarg2: anySecond argument that is passed to the event handler.
Optionalarg3: anyThird argument that is passed to the event handler.
Optionalarg4: anyFourth argument that is passed to the event handler.
Optionalarg5: anyFifth argument that is passed to the event handler.
Optionalarg6: anySixth argument that is passed to the event handler.
Optionalarg7: anySeventh argument that is passed to the event handler.
Optionalarg8: anyEighth argument that is passed to the event handler.
Self for chaining.
Test if there are any handlers bound to an event name.
The name of the event to test.
True if the object has handlers bound to the specified event name.
Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.
Optionalname: stringName of the event to unbind.
Optionalcallback: HandleEventCallbackFunction to be unbound.
Optionalscope: anyScope that was used as the this when the event is fired.
Self for chaining.
const handler = () => {};
obj.on('test', handler);
obj.off(); // Removes all events
obj.off('test'); // Removes all events called 'test'
obj.off('test', handler); // Removes all handler functions, called 'test'
obj.off('test', handler, this); // Removes all handler functions, called 'test' with scope this
Attach an event handler to an event.
Name of the event to bind the callback to.
Function that is called when event is fired. Note the callback is limited to 8 arguments.
Optionalscope: any = ...Object to use as 'this' when the event is fired, defaults to current this.
Can be used for removing event in the future.
Attach an event handler to an event. This handler will be removed after being fired once.
Name of the event to bind the callback to.
Function that is called when event is fired. Note the callback is limited to 8 arguments.
Optionalscope: any = ...Object to use as 'this' when the event is fired, defaults to current this.
Can be used for removing event in the future.
The LightComponent enables an Entity to light the scene. There are three types of light:
directional: A global light that emits light in the direction of the negative y-axis of the owner entity. Emulates light sources that appear to be infinitely far away such as the sun. The owner entity's position is effectively ignored.omni: A local light that emits light in all directions from the owner entity's position. Emulates candles, lamps, bulbs, etc.spot: A local light that emits light similarly to an omni light but is bounded by a cone centered on the owner entity's negative y-axis. Emulates flashlights, spotlights, etc.You should never need to use the LightComponent constructor directly. To add a LightComponent to an Entity, use Entity#addComponent:
Once the LightComponent is added to the entity, you can access it via the Entity#light property:
Relevant Engine API examples: