一、理论基础
Phong和Blinn-Phong是计算镜面反射光(也叫高光反射)的两种光照模型,两者仅仅有很小的不同之处。
Phong模型中计算反射光线的向量是一件相对比较耗时的任务,因此Blinn-Phong对这一点进行了改进。
Phong适合模拟塑料,比"反射"材质表现出的介质更光滑一些,适合模拟玻璃、水、冰等高反光特性的介质
BlinnPhong大多适用于金属材质。
光照模型图:
Phong.png
- Phong(r dot v),即光反射方向和视角方向越重合,反射越强;
- Blinn-Phong(n dot h),即法线方向和半角方向越重合,反射越强;
二、ShaderForge:Phong
PhongSF.png思路:
1、光方向乘以-1,得到真正的光方向。
2、用光方向与法线点积,得到光反射方向。
3、反射方向再和视角察方向点击,便得到了反射光的强度了。
简化写法:视角方向直接和光方向点积。
三、ShaderForge:Blinn-Phong
Blinn-Phong.png思路:
半角方向与法线做点积,然后去正数部分即可。
四、效果图
效果相差不大,但是总体上还是Phong会更加好看一点。
xg.png
网友评论