这部分内容跟着Games101已经详细推过了,主要看后半部分吧
光照模型的分类
- 基于物理理论的光照模型:偏重于使用物理的度量和统计方法,效果真实,计算复杂,实现较为复杂;
- 经验模型:对光照的模拟,通过简化和总结归纳,以达到可接受的效果;
本章节重点考虑经验模型的方法
漫反射
不受观察角度影响,Lambert光照模型仅仅针对漫反射:
镜面反射
受到观察角度影响,有Phong模型和Blinn-Phong模型两种这两种模型包含了漫反射、镜面反射、环境光三个部分,是最初得比较完整的模型。后者在前者基础上引入了半程向量从而降低了计算复杂度。
Phong模型:
Blinn-Phong模型:
区别就在于绿色框框中利用到了半程向量,半程向量的计算实现如下:
环境光
一般上对这部分光照进行简化,直接利用环境光颜色乘以漫反射材质。
着色方法
后面的内容应该对应的是Games101的着色方法章节,范别是逐平面、逐顶点和逐像素的着色,利用到的则是面差值、顶点插值和法线插值对上述部分进行实现。
对应英文名称分别是:
- Flat shading
- Gouraud shading
- Phong Shading
注意区分此处的Phong shading与之前的Phong模型,Phong shading注重着色的频率问题,而Phong模型则是在描述如何模拟真实的光照现象。
顶点法线
顶点法线之前一直不明白如何计算,看过Games101之后明白了是利用相邻面的法线和或者是加权和(权值为相邻面的面积)求得的。
总结
跟着入门精要第六章过了一遍,大致明白了各种经验光照模型的实现方法。
作业里要求的能量守恒的实现我愣住了,后面学完PBR再回来补吧。能量守恒的应用则是在于:光打到物体表面之后形成的漫反射,镜面反射以及被吸收的能量总和是一定的,无论如何变化整体强度不变。
感觉不带点基础来看百人有点不好理解,先速通一下《入门精要》吧,10天之内弄完。