SpotLight
聚光灯光源。这种光从一个点向一个方向发出,沿着一个圆锥,光照越远它的尺寸就越大。这种光照可以产生阴影。参阅SpotLightSadow页了解详细。
Example/例子
interactive / cubes / gpu
interactive / draggablecubes
materials / bumpmap / skin
materials / cubemap / dynamic
loader / md2
shading / physical
materials / bumpmap
shading / physical
shadowmap
shadowmap / performance
shadowmap / viewer
Code Example/代码例子
// 来自侧面的白色聚光灯,产生阴影。
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 );
Constructor/构造函数
SpotLight( color : Integer, intensity : Float, distance : Float, angle : Radians, penumbra : Float, decay : Float )
color -可选,十六进制的光照颜色,默认是0xffffff (white).
intensity -可选,光照强度的数值,默认是1 。
distance – Maximum distance from origin where light will shine whose intensity is attenuated linearly based on distance from origin.
angle – Maximum angle of light dispersion from its direction whose upper bound is Math.PI/2.
penumbra – Percent of the spotlight cone that is attenuated due to penumbra. Takes values between zero and 1. Default is zero.
decay – The amount the light dims along the distance of the light.
创建一个聚光灯光源。
Properties/属性
参阅Light基类了解更多地属性。
angle : Float,聚光灯光源在它方向上的最大范围,按弧度计。应该不超过PI/2,默认是Math.PI/3.
castShadow : Boolean,如果设置为true,光照将会产生动态的阴影。注意:为了使阴影看起来准确,需要耗费很多资源去调整。详情参阅SpotLightShadow类。默认是false。
decay : Float,光照随着距离的衰退量。在符合物理条件的模式下,设置为2,符合物理现实。默认是
distance : Float,如果是非0,光将在光源的位置到此距离,光的强度从最大线性衰减到默认是0.
isSpotLight : Boolean,检查是否是聚光灯光源,默认是true。用于内部优化,不能被更改。
penumbra : Float,聚光锥的半影衰减百分比。在0和1之间的值。默认是0 。
position : Vector3,这个设置等同于DefaultUp(0, 1, 0),这样光照就能从上到下照射。
power : Float,光照的强度。在物理正确模式下,用“流明”为单位表示光功率。默认是PI。这个跟光照的强度直接相关。Power=intensity(强度)*4 π,所以改变它将会改变光照强度。
shadow : SpotLightShadow,一个SpotLightShadow实例,用于计算灯光的阴影。
target : Object3D,一个聚光灯光源从它的位置指向目标的位置。默认的目标位置是(0, 0, 0)。注意:要想更改默认目标的位置,必须加入到场景中。add( light.target ); 这样目标的坐标世界将会随着每一帧最懂更新。也可以把目标设置为场景中的任意其他对象(只要有position属性),像:
var targetObject = new THREE.Object3D();
scene.add(targetObject);
light.target = targetObject;
这样聚光灯光源将会跟踪目标对象。
Methods/方法
参阅Light基类了解共通方法。
copy ( source : SpotLight ) : SpotLight,拷贝source聚光灯灯源的全部属性到改聚光灯灯源。