three.js基础学习之类人造光源

这是three.js学习的第18篇笔记,在three.js基础学习之环境光源AmbientLightthree.js基础学习之平行光源DirectionalLight中,我们已经学习了两种模拟自然界本来就存在的光源,今天我们学习模仿人造光源的光源。其中的点光源PointLight模仿的是灯泡发光,聚光灯SpotLight模仿的是聚光灯,平面光源RectAreaLight模仿的是从窗户漏出去的光。

three.js点光源PointLight

点光源类似于日常生活中的灯泡。

点光源在构建时,除了需要传入基本的colorintensity外,还有两个备选项可以使用,分别是distance表示从光照发出到光的强度为0的距离,默认情况下这个值为0,表示光照永远不会消失;另外一个是decay,表示光照衰退量,暂时可以不去管理这一项。

另外,还可以以属性的形式设置光照的功率power,计算公式为power = intensity * 4π

three.js聚光灯SpotLight

SpotLight模仿的是舞台上的聚光灯,除了基本的colorintensity外,还有distance从光源发出光的最大距离,其强度根据光源的距离线性衰减,angle计算光的散射角度,最大值是Math.PI/2;penumbra聚光锥的半影衰减百分比。在0和1之间的值。默认为0。decay计算光的衰减量。

three.js平面光光源RectAreaLight

平面光光源RectAreaLight模拟像明亮的窗户或者条状灯光光源,它需要在构建时额外传入的两个属性分别时widthheight

至此,光源在基础部分的学习就完结了。因为人造光源我没有想出比较形象的demo,因此没有写demo代码。同时在基础部分,极少会用到。