传统光照经验模型

1.光 照 模 型

光照模型(illumination Model),也称为明暗模型,用于计算物体某点处的光强(颜色值)。
从算法理论基础而言,光照模型分为两类:一种是基于物理理论(PBR)的,另一种是基于经验模型的。
基于物理理论的光照模型:偏重于使用物理的度量和统计方法,效果非常真实,但是计算复杂,实现起来
也较为困难;
经验模型:是对光照的一种模拟,通过实践总结出简化的方法,简化了真实的光照计算,并且能达到很不错的效果。

2.为什么需要光照模型

现实世界的光照是极其复杂的,而且会受到诸多因素的影响,有限的计算能力无法完全模拟。
使用简化的光照模型对现实的情况进行近似,使得计算处理起来会更容易,并且令效果更符合需
求。这些光照模型就是基于我们对光的物理特性的理解。

3.光照模型的发展

img

4.经验模型-局部光照模型

局部光照模型只关心直接光照部分,即直接从光源发出并照射到物体表面并反射至摄像头的光线。

img

4.1 局部光照模型的组成

局部光照模型满足叠加原理,可以基本将光线分为四个部分

**·漫反射
·高光反射
·环境光
·自发光**

img

漫反射

img

Lambert余弦定律

img

漫反射只与光源和表面法线有关,与观察者无关

高光反射(镜面反射)

img

Gloss(光泽度)影响了物体表面发生高光反射的面积

环境光

img

自发光

img

5.光照模型-经典光照模型

Lambert模型 (就是上面局部光照模型中的漫反射计算模型)

img

Phong模型

image-20231112201522961

Blinn-Phong模型

img

Phong模型和Blinn-Phong模型的区别

img

Gourand模型

实质上就是将所有的光照计算都放在顶点着色器中运算,可以大幅度减少光照的计算量,但对于顶点跨度较大的地方,光照的效果会非常差。

image-20231112201545343

Flat模型

使用面法线而不是顶点法线来计算光照,这会导致一个三角面整体光照颜色都是一样的,适用于LowPoly风格。
在Unity中,制作这种风格需要在建模软件中将模型的顶点法线改为面法线(3DMAX中即关闭模型的自动平滑),也可在shader中,使用顶点的法线计算得到面法线。

img

光照模型展示

img

6.参考资料

【技术美术百人计划】图形 2.4 传统经验光照模型详解_哔哩哔哩_bilibili

最后修改:2023 年 11 月 12 日
如果觉得我的文章对你有用,请随意赞赏