Class: LightComponent

pc.LightComponent

The Light Component enables the Entity to light the scene. There are three types of light: directional, point and spot. Directional lights are global in that they are considered to be infinitely far away and light the entire scene. Point and spot lights are local in that they have a position and a range. A spot light is a specialization of a point light where light is emitted in a cone rather than in all directions. Lights also have the ability to cast shadows to add realism to your scenes.

Constructor

new LightComponent(system, entity)

Creates a new Light Component.
Parameters:
Name Type Description
system pc.LightComponentSystem The ComponentSystem that created this Component.
entity pc.Entity The Entity that this Component is attached to.
Properties:
Name Type Description
type String The type of light. Can be:
  • "directional": A light that is infinitely far away and lights the entire scene from one direction.
  • "point": A light that illuminates in all directions from a point.
  • "spot": A light that illuminates in all directions from a point and is bounded by a cone.
Defaults to "directional".
color pc.Color The Color of the light. The alpha component of the color is ignored. Defaults to white (1, 1, 1).
intensity Number The brightness of the light. Defaults to 1.
castShadows Boolean If enabled the light will cast shadows. Defaults to false.
shadowDistance Number The distance from the viewpoint beyond which shadows are no longer rendered. Affects directional lights only. Defaults to 40.
shadowResolution Number The size of the texture used for the shadow map. Valid sizes are 64, 128, 256, 512, 1024, 2048. Defaults to 1024.
shadowBias Number The depth bias for tuning the appearance of the shadow mapping generated by this light. Defaults to 0.05.
normalOffsetBias Number Normal offset depth bias. Defaults to 0.
range Number The range of the light. Affects point and spot lights only. Defaults to 10.
innerConeAngle Number The angle at which the spotlight cone starts to fade off. The angle is specified in degrees. Affects spot lights only. Defaults to 40.
outerConeAngle Number The angle at which the spotlight cone has faded to nothing. The angle is specified in degrees. Affects spot lights only. Defaults to 45.
falloffMode Number Controls the rate at which a light attentuates from its position. Can be:
  • pc.LIGHTFALLOFF_LINEAR: Linear.
  • pc.LIGHTFALLOFF_INVERSESQUARED: Inverse squared.
Affects point and spot lights only. Defaults to pc.LIGHTFALLOFF_LINEAR.
mask Number Defines a mask to determine which pc.MeshInstances are lit by this light. Defaults to 1.
affectDynamic Boolean If enabled the light will affect non-lightmapped objects
affectLightmapped Boolean If enabled the light will affect lightmapped objects
bake Boolean If enabled the light will be rendered into lightmaps
bakeDir Boolean If enabled and bake=true, the light's direction will contribute to directional lightmaps. Be aware, that directional lightmap is an approximation and can only hold single direction per pixel. Intersecting multiple lights with bakeDir=true may lead to incorrect look of specular/bump-mapping in the area of intersection. The error is not always visible though, and highly scene-dependent.
shadowUpdateMode Number Tells the renderer how often shadows must be updated for this light. Options:
  • pc.SHADOWUPDATE_NONE: Don't render shadows.
  • pc.SHADOWUPDATE_THISFRAME: Render shadows only once (then automatically switches to pc.SHADOWUPDATE_NONE).
  • pc.SHADOWUPDATE_REALTIME: Render shadows every frame (default).
shadowType Number Type of shadows being rendered by this light. Options:
  • pc.SHADOW_PCF3: Render depth (color-packed on WebGL 1.0), can be used for PCF 3x3 sampling.
  • pc.SHADOW_VSM8: Render packed variance shadow map. All shadow receivers must also cast shadows for this mode to work correctly.
  • pc.SHADOW_VSM16: Render 16-bit exponential variance shadow map. Requires OES_texture_half_float extension. Falls back to pc.SHADOW_VSM8, if not supported.
  • pc.SHADOW_VSM32: Render 32-bit exponential variance shadow map. Requires OES_texture_float extension. Falls back to pc.SHADOW_VSM16, if not supported.
  • pc.SHADOW_PCF5: Render depth buffer only, can be used for hardware-accelerated PCF 5x5 sampling. Requires WebGL2. Falls back to pc.SHADOW_PCF3 on WebGL 1.0.
vsmBlurMode Number Blurring mode for variance shadow maps:
  • pc.BLUR_BOX: Box filter.
  • pc.BLUR_GAUSSIAN: Gaussian filter. May look smoother than box, but requires more samples.
vsmBlurSize Number Number of samples used for blurring a variance shadow map. Only uneven numbers work, even are incremented. Minimum value is 1, maximum is 25.
cookieAsset Number Asset that has texture that will be assigned to cookie internally once asset resource is available.
cookie pc.Texture Projection texture. Must be 2D for spot and cubemap for point (ignored if incorrect type is used).
cookieIntensity Number Projection texture intensity (default is 1).
cookieFalloff Boolean Toggle normal spotlight falloff when projection texture is used. When set to false, spotlight will work like a pure texture projector (only fading with distance). Default is false.
cookieChannel String Color channels of the projection texture to use. Can be "r", "g", "b", "a", "rgb" or any swizzled combination.
cookieAngle Number Angle for spotlight cookie rotation.
cookieScale pc.Vec2 Spotlight cookie scale.
cookieOffset pc.Vec2 Spotlight cookie position offset.
isStatic Boolean Mark light as non-movable (optimization)
layers Array An array of layer IDs (pc.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.
Source:
Examples
// Add a pc.LightComponent to an entity
var entity = new pc.Entity();
entity.addComponent('light', {
    type: "point",
    color: new pc.Color(1, 0, 0),
    range: 10
});
// Get the pc.LightComponent on an entity
var lightComponent = entity.light;
// Update a property on a light component
entity.light.range = 20;

Extends