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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值