基础光照模型其实前期我们都不需要去理解他的公式或者算法,更加不用去理解他的物理意义。
这里我们只需要总结一下他的使用环境,还有了解代码的基础写法。
兰伯特:基础的光照模型,就是根据光源方向和模型顶点的法线方向,计算出该顶点亮度。很好理解吧。
半兰伯特:在兰伯特基础上进行了简单的加法运算,把0-1的亮度提升到0.5-1。也是非常好理解。
Phong:其实就是模型的顶点法线方向,跟光照和视角的夹角方向之间越小,则该顶点越亮。想象一下,光和视角的夹角获得到以后再去跟顶点法线方向比较,这俩越相近越亮就行。
image.png
Blinn-Phong:这个光照模型的提出,主要是数学算法上的改进,也能有高光的效果。因为早年硬件设备差,人们想尽办法得优化(现在又何尝不是一直在优化呢)。因此从数学的角度说,就是用加法取代Phong的乘法,减少了计算量,然后发现效果跟Phong差不多,如果调节参数能够得到接近的结果。然后就广为流传了,对现在的硬件而言这些计算量已经可以忽略不计了,但是因为两者的效果还略微有差异,而在效率上确实更高(心里安慰),因此现在也还一直在用。
基础光照其实只需要理解到这种程度就行了(我也是个菜鸟,如果说错了欢迎大佬拍砖)。后面我们就以这些基础光照模型为基础开发。
网友评论