• 图形学-着色(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 反射模型可以表示为:
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    【Airtest】实现UI自动化测试(一)
    高可用架构实现流量治理的策略
    Windows安装Linux子系统
    accent-color的使用
    【图形学】 06 四元数(一)
    (附源码)计算机毕业设计SSM建筑工地环保监控系统研究
    如何进行任务优先级的确定
    Java Math.asin()方法具有什么功能呢?
    数据之道读书笔记-01数据驱动的企业数字化转型
    Openlayers 使用天地图Web服务
  • 原文地址:https://blog.csdn.net/weixin_46773434/article/details/127612588