US3S1——Shader入门-光照效果
US3S1——Shader入门-光照效果
光照模型
光照模型指的是用于模拟光照效果的一组数学公式和算法,
用于确定在3D场景中的模型表面应该如何对光进行反射和散射,从而实现视觉上逼真的照明效果
也就是说,如果要通过光源让模型拥有光照效果,就需要通过光照模型计算模型各个位置的光照颜色
最左边的红球是不使用光照模型计算光照的显示效果,右边四个球是使用各种光照模型计算过光照的显示效果
之后我们将要学习的光照模型,就是前辈们探索总结出来的计算公式
通过这些光照计算公式的学习,我们可以让3D物体表现出受光照影响的效果
说人话:光照模型就是用来计算光照效果的数学公式,是业界前辈们探索出来的计算规则
在现实生活中,一个物体的颜色是由射进眼睛里的光线决定的,当光线照射到物体表面时,一部分被物体表面吸收,一部分被反射。
对于透明物体,还有一部分光会穿过透明体,产生透射光,只有反射光和透射光才能进入眼镜,从而产生视觉效果(物体呈现出的亮度和颜色)
因此,物体表面的光照颜色是由入射光、物体材质、以及材质和光的交互规律共同决定的
以下是将会学习的光照模型:
-
漫反射光照模型
漫反射:指光线被粗糙表面无规则地向各个方向反射的现象,是一种在各个方向上平均反射光线的模型
比如:墙壁、纸张、布料等等物体的表现效果 -
高光反射光照模型
高光反射:考虑了视角和光源的方向,使物体表面出现高光点
比如:金属、陶瓷、塑料等等物体的表现效果 -
Unity内置光照函数
等等
本系列学习内容:
-
逐顶点光照和逐片元光照
-
兰伯特光照模型(漫反射光照模型,使模型的显示受到光照的影响,呈现明暗效果)
- 逐顶点光照
- 逐片元光照
-
半兰伯特光照模型(模型背光面比兰伯特光照模型更亮)
- 逐顶点光照
- 逐片元光照
-
Phong式高光反射模型(高光反射光照模型,模拟出反射光线效果,让模型的部分受光面更亮,让物体更有光泽)
- 逐顶点光照
- 逐片元光照
-
Phong光照模型(将环境光、漫反射光、高光反射光结合到一起)
- 逐顶点光照
- 逐片元光照
-
Blinn-Phong式高光反射模型(高光光斑比Phong式高光反射模型更均匀也更大)
- 逐顶点光照
- 逐片元光照
-
Blinn-Phong光照模型(将环境光、漫反射光、高光反射光结合到一起,高光反射模型使用Blinn-Phong式)
- 逐顶点光照
- 逐片元光照
-
逐片元比逐顶点更光滑的原因
-
Unity内置光照计算相关函数