This light gets emitted from a single point in one direction, along a cone that increases in size
the further from the light it gets.
This light can cast shadows - see the [page:SpotLightShadow] page for details.
[example:webgl_lights_spotlight View in Examples ]
[example:webgl_interactive_cubes_gpu interactive / cubes / gpu ]
[example:webgl_interactive_draggablecubes interactive / draggablecubes ]
[example:webgl_materials_bumpmap_skin materials / bumpmap / skin ]
[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]
[example:webgl_loader_md2 loader / md2 ]
[example:webgl_shading_physical shading / physical ]
[example:webgl_materials_bumpmap materials / bumpmap]
[example:webgl_shading_physical shading / physical]
[example:webgl_shadowmap_performance shadowmap / performance]
[example:webgl_shadowmap_viewer shadowmap / viewer]
// white spotlight shining from the side, casting a shadow var spotLight = new THREE.SpotLight( 0xffffff ); spotLight.position.set( 100, 1000, 100 ); spotLight.castShadow = true; spotLight.shadow.mapSize.width = 1024; spotLight.shadow.mapSize.height = 1024; spotLight.shadow.camera.near = 500; spotLight.shadow.camera.far = 4000; spotLight.shadow.camera.fov = 30; scene.add( spotLight );
[page:Integer color] - (optional) hexadecimal color of the light. Default is 0xffffff (white).
[page:Float intensity] - (optional) numeric value of the light's strength/intensity. Default is 1.
[page:Float distance] - Maximum range of the light. Default is 0 (no limit).
[page:Radians angle] - Maximum angle of light dispersion from its direction whose upper bound is Math.PI/2.
[page:Float penumbra] - Percent of the spotlight cone that is attenuated due to penumbra. Takes values between zero and 1. Default is zero.
[page:Float decay] - The amount the light dims along the distance of the light.
Creates a new [name].
Maximum extent of the spotlight, in radians, from its direction. Should be no more than *Math.PI/2*. The default is *Math.PI/3*.
If set to *true* light will cast dynamic shadows. *Warning*: This is expensive and requires tweaking to get shadows looking right. See the [page:SpotLightShadow] for details. The default is *false*.
The amount the light dims along the distance of the light.
In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode, decay = 2 leads to physically realistic light falloff. The default is *1*.
Default mode — When distance is zero, light does not attenuate. When distance is non-zero, light will attenuate linearly from maximum intensity at the light's position down to zero at this distance from the light.
[page:WebGLRenderer.physicallyCorrectLights Physically correct] mode — When distance is zero, light will attenuate according to inverse-square law to infinite distance. When distance is non-zero, light will attenuate according to inverse-square law until near the distance cutoff, where it will then attenuate quickly and smoothly to 0. Inherently, cutoffs are not physically correct.
Default is *0.0*.
Used to check whether this or derived classes are spot lights. Default is *true*.
You should not change this, as it used internally for optimisation.
Percent of the spotlight cone that is attenuated due to penumbra. Takes values between zero and 1. The default is *0.0*.
This is set equal to [page:Object3D.DefaultUp] (0, 1, 0), so that the light shines from the top down.
The light's power.
In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode, the luminous power of the light measured in lumens. Default is *4Math.PI*.
This is directly related to the [page:.intensity intensity] in the ratio
power = intensity * π
and changing this will also change the intensity.
A [page:SpotLightShadow] used to calculate shadows for this light.
The Spotlight points from its [page:.position position] to target.position. The default
position of the target is *(0, 0, 0)*.
*Note*: For the target's position to be changed to anything other than the default, it must be added to the [page:Scene scene] using
scene.add( light.target );
This is so that the target's [page:Object3D.matrixWorld matrixWorld] gets automatically
updated each frame.
It is also possible to set the target to be another object in the scene (anything with a [page:Object3D.position position] property), like so:
var targetObject = new THREE.Object3D();
light.target = targetObject;
The spotlight will now track the target object.
Copies value of all the properties from the [page:SpotLight source] to this SpotLight.