• 图形学-着色(Blinn-Phong模型)


    1.什么是着色?

    计算机图形学中,着色指的是对于不同的物体应用不同的材质。我们知道,光的反射我们需要进行进行建模。一个简单的光学模型就是 Blinn-Phong 反射模型(Blinn-Phong Reflection Model)。基本的模型一般会有以下几个部分:漫反射,高光(镜面反射),环境光(在这里我们不考虑环境光反射,我们认为这是一个常量)。

    在这里插入图片描述
    对于任何的着色点,我们定义了:

    • 法线 n,是垂直于反射面的线;
    • 观察方向v,是着色点和观察点的连线;
    • 光照方向l,是着色点和光源的连线。

    以上的方向向量都是单位向量。同时我们还需要定义物体表面的参数,例如颜色,亮度。当我们着色时,我们不考虑其他的物体遮挡,因此着色中没有阴影。

    2.漫反射

    漫反射指的是一束光线会向各个方向均匀地反射。

    2.1 Lambert’s 余弦定律

    Lambert’s 余弦定律(Lambert’s Cosine Law)说明了漫反射光的能量和入射角度之间的关系。光线反射的能量和光照方向和发现的夹角 cos 值(向量点乘的结果)成正比关系。

    3. 点光源

    我们认为光源是一个点。在同一时刻光的能量集中在同一个球壳上。根据能量守恒定律我们可以得知,每一个球壳上光能量相同。随着球壳变大,单位面积上的光能量减小。我们定义距离为 1 的光能量为 𝐼。光能量和距离成平方反比关系,距离为 𝑟 的地方的光能量为 𝐼/𝑟2.

    4. 漫反射计算公式

    漫反射能量的计算公式如下
    在这里插入图片描述
    这里,𝑘𝑑 代表吸收率,如果用 RGB 定义一个向量作为吸收率就可以代表这个反射点的颜色。max(0, n⋅l) 可以把反射光线在反方向的光线过滤掉,这些光线没有贡献。同时,漫发射和观察的方向无关

    5.镜面反射

    我们认为光滑的平面可以满足基本的镜面反射的物理规律(入射角等于反射角)。当我们的观察方向和反射角方向一直的时候就可以看到高光。我们一般使用半程向量和法线的接近程度来“映射”观察方向和反射角的接近程度。半程向量指的是光源方向和观察方向角平分线上的方向向量。
    在这里插入图片描述

    一边来说高光的颜色 𝑘𝑠 为白色。我们会给 cos 项乘一个指数 𝑝。原因是余弦函数的容忍度很高,但是我们
    希望当角度偏离一点点的时候就看不到高光。因此会使用一个指数,一般来说 𝑝 ∈ [100, 200]。
    在这里插入图片描述

    6.环境光照

    我们粗略的认为环境中所有点的光照相同,是一个常数。环境光与光源方向,法线方向和观察方向无关。计算公式如下:
    在这里插入图片描述

    7.Blinn-Phong 反射模型

    综上所述,Blinn-Phong 反射模型可以表示为:
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    RBA责任商业联盟行为准则
    【OHOS】常用命令整理
    Fabric.js 上划线、中划线(删除线)、下划线
    CompletableFuture原理与实践-外卖商家端API的异步化
    普乐蛙VR航天航空巡展项目来到了第七站——绵阳科博会
    运行gazebo机器人模型没有cmd_vel话题
    ENVI图像镶嵌与匀色处理
    适配器模式和装饰器模式
    MySQL中多表查询、表连接(内连接和外连接)
    练习敲代码速度
  • 原文地址:https://blog.csdn.net/weixin_46773434/article/details/127612588