引言
在前面几个系列中,我们陆续讲解了很多不同种类光的模型,但是前面的模型只是对于平行光来说的光照模型。真实世界中,不是只有平行光的存在。可以想象,我们在房间中的灯,它所营造出来的光就不是平行的光源。诸如点灯,蜡烛,和火焰等等,这样的光源我们称为点光源。在下面,我们将来讨论点光源的光照模型公式。
点光源
点光源,顾名思义,是从一个点发出的光线。一个点发射出来的光线,应该朝着四面八方都发射出去,也就是说,在立体空间中,是呈一个球体的形式发射出去的。由于,点光源可以明确的定义在空间场景中的一点,所以,距离这个点光源距离较远的物体,受到的光照应该较弱,而离这个点光源很近的物体,应该被照射的十分的亮才是。也就是说,点光源的强度和被照射点到这个点光源之间的距离有一个函数关系,一般使用平方关系来表示。
点光源方程
下面的公式是上几个博客中,讲解的平行光模型公式:
点光源公式,依然会存在漫射光,反射光,和环境光的属性,只是,我们需要加上一个点光源的特殊属性:随着被照射的点与点光源之间的距离增大,光照强度,逐渐变弱。为了模拟这样的感觉,我们使用如下的一个公式来进行:
在上面的公式中,d是点到光源之间的距离,而这里,我们提供了三个不同的系数a0,a1,a2,程序员和艺术家们,可以通过这三个参数来更加精确的控制点光源的衰变过程,从而达到自己想要的效果。
实例解析
好了,