传统光照经验模型
1.光 照 模 型
光照模型(illumination Model),也称为明暗模型,用于计算物体某点处的光强(颜色值)。
从算法理论基础而言,光照模型分为两类:一种是基于物理理论(PBR)的,另一种是基于经验模型的。
基于物理理论的光照模型:偏重于使用物理的度量和统计方法,效果非常真实,但是计算复杂,实现起来
也较为困难;
经验模型:是对光照的一种模拟,通过实践总结出简化的方法,简化了真实的光照计算,并且能达到很不错的效果。
2.为什么需要光照模型
现实世界的光照是极其复杂的,而且会受到诸多因素的影响,有限的计算能力无法完全模拟。
使用简化的光照模型对现实的情况进行近似,使得计算处理起来会更容易,并且令效果更符合需
求。这些光照模型就是基于我们对光的物理特性的理解。
3.光照模型的发展
4.经验模型-局部光照模型
局部光照模型只关心直接光照部分,即直接从光源发出并照射到物体表面并反射至摄像头的光线。
4.1 局部光照模型的组成
局部光照模型满足叠加原理,可以基本将光线分为四个部分
**·漫反射
·高光反射
·环境光
·自发光**
漫反射
Lambert余弦定律
漫反射只与光源和表面法线有关,与观察者无关
高光反射(镜面反射)
Gloss(光泽度)影响了物体表面发生高光反射的面积
环境光
自发光
5.光照模型-经典光照模型
Lambert模型 (就是上面局部光照模型中的漫反射计算模型)
Phong模型
Blinn-Phong模型
Phong模型和Blinn-Phong模型的区别
Gourand模型
实质上就是将所有的光照计算都放在顶点着色器中运算,可以大幅度减少光照的计算量,但对于顶点跨度较大的地方,光照的效果会非常差。
Flat模型
使用面法线而不是顶点法线来计算光照,这会导致一个三角面整体光照颜色都是一样的,适用于LowPoly风格。
在Unity中,制作这种风格需要在建模软件中将模型的顶点法线改为面法线(3DMAX中即关闭模型的自动平滑),也可在shader中,使用顶点的法线计算得到面法线。