1.光照模型概述

1.光照模型-光照模型概述


1.1 知识点

知识回顾和展望

我们之前已经完成了 Unity Shader 相关必备基础知识的学习,其中重要的知识有:

  • 渲染管线相关(应用阶段——>几何阶段——>光栅化阶段)
  • 数学基础相关(点、向量、矩阵、坐标系变换)
  • 语法基础相关(ShaderLab语法、CG语法)

通过这些知识的学习,我们基本上能够大致了解如何进行Shader开发。

简而言之:

  • 我们可以通过CG等语言结合ShaderLab语法规则来编写Shader文件。
  • 在顶点、片元着色器的回调函数中具体实现着色器逻辑。
  • 在顶点着色器回调函数中利用语义获取到模型中的数据,将数据处理完毕后传递给片元着色器回调函数中进行处理。
  • 可以结合ShaderLab属性进行更多的可变处理,从而呈现出不同的表现效果。

接下来我们要学习的Shader入门相关知识,主要就是学习Shader的一些基本表现效果,它们分别是:

  • 光照效果
  • 纹理效果
  • 透明效果

学习这些知识后,我们才能实现最基础的渲染效果。

什么是光照模型

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

换句话说:

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

我们将要学习哪些内容

在现实生活中,一个物体的颜色由射进眼睛里的光线决定。当光线照射到物体表面时,一部分光被物体表面吸收,一部分光被反射。对于透明物体,还有一部分光会穿过透明体,产生透射光。

只有反射光和透射光才能进入眼睛,从而产生视觉效果(物体呈现出的亮度和颜色)。因此,物体表面的光照颜色由入射光、物体材质,以及材质和光的交互规律共同决定。

漫反射光照模型

漫反射指光线被粗糙表面无规则地向各个方向反射的现象。这是一种在各个方向上平均反射光线的模型。

例如:

  • 墙壁
  • 纸张
  • 布料等物体的表现效果

高光反射光照模型

高光反射考虑了视角和光源的方向,使物体表面出现高光点。

例如:

  • 金属
  • 陶瓷
  • 塑料等物体的表现效果

综合光照模型

  • 结合 漫反射光照模型 和 高光反射光照模型 的光照模型

Unity内置光照函数

Unity提供了一些内置的光照函数来帮助开发者实现常见的光照效果。

总结

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

我们之后学习的大部分Shader相关知识,本质上都是一些计算公式和计算规则(算法)。Shader的本质就是利用各种数学计算,呈现出不同的表现效果。


1.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson01_光照模型_光照模型概述 : MonoBehaviour
{
    void Start()
    {
        #region 知识回顾和展望

        //我们之前已经完成了 Unity Shader 相关必备基础知识的学习
        //其中重要的知识有
        //1.渲染管线相关(应用阶段——>几何阶段——>光栅化阶段)
        //2.数学基础相关(点、向量、矩阵、坐标系变换)
        //3.语法基础相关(ShaderLab语法、CG语法)
        //通过这些知识的学习
        //我们基本上能够大致了解了应该如何进行Shader开发

        //简而言之:
        //我们可以通过CG等语言结合ShaderLab语法规则来编写Shader文件
        //我们需要在顶点、片元着色器的回调函数中具体实现着色器逻辑
        //在顶点着色器回调函数中我们利用语义获取到模型中的数据
        //将数据处理完毕后又传递给片元着色器回调函数中进行处理
        //还可以结合ShaderLab属性来进行更多的可变处理
        //从而呈现出不同的表现效果

        //那么接下来我们要学习的Shader入门相关知识
        //主要就是学习Shader的一些基本表现效果
        //他们分别是
        //1.光照效果
        //2.纹理效果
        //3.透明效果
        //学习了这些知识,我们才能实现最基础的渲染效果

        #endregion

        #region 知识点一 什么是光照模型

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

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

        #endregion

        #region 知识点二 我们将要学习哪些内容

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

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

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

        //3.Unity内置光照函数
        //等等

        #endregion

        #region 总结

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

        //我们之后学习的大部分Shader相关的知识
        //其实本质上都是一些计算公式、计算规则(算法)
        //Shader的本质其实就是利用各种数学计算
        //呈现出不同的表现效果

        #endregion
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏