US3S1——Shader入门-光照效果

光照模型

光照模型指的是用于模拟光照效果的一组数学公式和算法,
用于确定在3D场景中的模型表面应该如何对光进行反射和散射,从而实现视觉上逼真的照明效果

也就是说,如果要通过光源让模型拥有光照效果,就需要通过光照模型计算模型各个位置的光照颜色

image

最左边的红球是不使用光照模型计算光照的显示效果,右边四个球是使用各种光照模型计算过光照的显示效果

之后我们将要学习的光照模型,就是前辈们探索总结出来的计算公式
通过这些光照计算公式的学习,我们可以让3D物体表现出受光照影响的效果

说人话:光照模型就是用来计算光照效果的数学公式,是业界前辈们探索出来的计算规则

在现实生活中,一个物体的颜色是由射进眼睛里的光线决定的,当光线照射到物体表面时,一部分被物体表面吸收,一部分被反射。
对于透明物体,还有一部分光会穿过透明体,产生透射光,只有反射光和透射光才能进入眼镜,从而产生视觉效果(物体呈现出的亮度和颜色)
因此,物体表面的光照颜色是由入射光、物体材质、以及材质和光的交互规律共同决定的

以下是将会学习的光照模型:

  1. 漫反射光照模型

    漫反射:指光线被粗糙表面无规则地向各个方向反射的现象,是一种在各个方向上平均反射光线的模型
    比如:墙壁、纸张、布料等等物体的表现效果

  2. 高光反射光照模型

    高光反射:考虑了视角和光源的方向,使物体表面出现高光点
    比如:金属、陶瓷、塑料等等物体的表现效果

  3. Unity内置光照函数

等等

本系列学习内容:

  • 逐顶点光照和逐片元光照

  • 兰伯特光照模型(漫反射光照模型,使模型的显示受到光照的影响,呈现明暗效果)

    • 逐顶点光照
    • 逐片元光照
  • 半兰伯特光照模型(模型背光面比兰伯特光照模型更亮)

    • 逐顶点光照
    • 逐片元光照
  • Phong式高光反射模型(高光反射光照模型,模拟出反射光线效果,让模型的部分受光面更亮,让物体更有光泽)

    • 逐顶点光照
    • 逐片元光照
  • Phong光照模型(将环境光、漫反射光、高光反射光结合到一起)

    • 逐顶点光照
    • 逐片元光照
  • Blinn-Phong式高光反射模型(高光光斑比Phong式高光反射模型更均匀也更大)

    • 逐顶点光照
    • 逐片元光照
  • Blinn-Phong光照模型(将环境光、漫反射光、高光反射光结合到一起,高光反射模型使用Blinn-Phong式)

    • 逐顶点光照
    • 逐片元光照
  • 逐片元比逐顶点更光滑的原因

  • Unity内置光照计算相关函数