DirectionalLight
平行光。在特定方向上发射光。这种光的表现就像无限远的,并且从它发射出来的光都是平行的。通常情况下是模拟日光。太阳的距离足够远,它的位置可以被认为是无限远的,并且来自它的所有光线都是平行的。
它可以产生阴影,参阅DirectionalLightShadow页了解详细。
关于位置、目标和旋转的注释:
对于平行光一个共通的容易混淆点是设置旋转步产生效果。这是因为Three.js里的平行光等同于其他应用里的称为“Target Direct Light”的东西。
这意味着它的方向被计算为从光的位置指向目标的位置(与仅具有旋转要素的“Free Direct Light”相反)。
这样做的原因是让光线投射阴影—阴影相机需要一个位置来计算阴影的起始。
详细参阅下面的target属性。
Example/例子
morphtargets / horse
controls / fly
lights / test
cubes
effects / parallaxbarrier
effects / stereo
geometry / extrude / splines
materials / bumpmap
materials / cubemap / balls / reflection
// 白色具有一半强度的平行光,从上面照射
var directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 );
scene.add( directionalLight );
Constructor/构造函数
DirectionalLight( color : Integer, intensity : Float )
color – 可选,十六进制的光照颜色,默认是0xffffff (white).
intensity – 可选,光照的强度数值。默认是1 。
创建一个新的平行光。
Properties/属性
参阅Light基类了解共通属性。
castShadow : Boolean,如果设为true,光照会自动产生阴影。注意:代价很高,需要调整已使得阴影看起来是正确的。默认是false。
isDirectionalLight : Boolean,用来检查该类及它的衍生类是否是平行光。默认是true。用于内部优化,不能变更它。
position : Vector3,这个设置等同于DefaultUp(0, 1, 0),这样光照就从上到下照射。
光源在场景中的位置。
shadow : DirectionalLightShadow,一个DirectionalLightShadow对象,用来计算这个光照的阴影。
target : Object3D,DirectionalLight从它的位置指向目标的位置。目标位置的默认位置是(0, 0, 0)。注意:目标的位置可以随意设置和默认不同的位置,它必须被加入到场景中。
scene.add( light.target ); //这样的话,目标的矩阵世界将会随每一帧自动更新。也可以设置目标为场景中的别的对象(具有position属性的任意对象),像:
var targetObject = new THREE.Object3D();
scene.add(targetObject);
light.target = targetObject;
平行光将会追踪目标对象。
Methods/方法
参阅Light基类了解共通方法。
copy ( source : DirectionalLight ) : DirectionalLight,拷贝source平行光的所有属性到这个平行光。