1-3.Three.js_Lights-DirectionalLight 平行光源

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平行光的所有属性到这个平行光。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容