镜面反射与漫反射的区别在于,镜面反射的高光位置与形状、强度都会随着观察者位置的变化而变化。高光的存在简直就是画面的点睛之笔!之前在 玉石效果 的文章中用兰伯特模拟过高光,但是因为它是固定的,所以还是缺少灵魂。
冯和布林冯都比较简单,只要知道的是哪两个向量点乘得到的结果即可,并且也很好理解。
1. 冯模型非常显而易见,当视角方向和光的反射方向越重叠,那么反射出来的能让眼睛看到的光就越强。
2. 布林冯稍微绕个弯子,当 半角方向(入射光与视角方向的一半)和物体表面法线方向越重叠,那么反射出来的能让眼睛看到的光就越强。
通过我绘制的示意图可以看出来,即使是同一种光照和视角情况,冯和布林冯的夹角大小不同(因为布林冯有一个除二的操作,夹角自然就少一半),这样就会导致用两种模型最终绘制的效果不一样,自然冯是更精确效果更好的,但是布林冯的存在意义在于以前性能不太好的时候用布林冯更便宜(虽然现在也没差啦!)
以下是用冯和半兰伯特做的巧克力效果: