这是three.js学习的第18篇笔记,在three.js基础学习之环境光源AmbientLight和three.js基础学习之平行光源DirectionalLight中,我们已经学习了两种模拟自然界本来就存在的光源,今天我们学习模仿人造光源的光源。其中的点光源PointLight
模仿的是灯泡发光,聚光灯SpotLight
模仿的是聚光灯,平面光源RectAreaLight
模仿的是从窗户漏出去的光。
three.js点光源PointLight
点光源类似于日常生活中的灯泡。
点光源在构建时,除了需要传入基本的color
,intensity
外,还有两个备选项可以使用,分别是distance
表示从光照发出到光的强度为0的距离,默认情况下这个值为0,表示光照永远不会消失;另外一个是decay,表示光照衰退量,暂时可以不去管理这一项。
另外,还可以以属性的形式设置光照的功率power
,计算公式为power = intensity * 4π
。
three.js聚光灯SpotLight
SpotLight
模仿的是舞台上的聚光灯,除了基本的color
,intensity
外,还有distance
从光源发出光的最大距离,其强度根据光源的距离线性衰减,angle
计算光的散射角度,最大值是Math.PI/2;penumbra
聚光锥的半影衰减百分比。在0和1之间的值。默认为0。decay
计算光的衰减量。
three.js平面光光源RectAreaLight
平面光光源RectAreaLight
模拟像明亮的窗户或者条状灯光光源,它需要在构建时额外传入的两个属性分别时width
和height
。
至此,光源在基础部分的学习就完结了。因为人造光源我没有想出比较形象的demo,因此没有写demo代码。同时在基础部分,极少会用到。