【Shading】Shading 着色

课程来源:games101图形学入门Lecture07-08
Lingqi Yan
UC Santa Barbara
PC端的读者可使用右侧文章目录进行导航

Shading

Definition 定义

  • In Merriam-Webster Dictionary 在字典里
    shad·ing, [ˈʃeɪdɪŋ], noun
    The darkening or coloring of an illustration or diagram with parallel lines or a block of color.
  • In this course 在图形学里
    The process of applying a material to an object.将材质应用于物体的过程。

A Simple Shading Model

在这里插入图片描述
高光:一个表面特别光滑,往这个表面上打光,就会出现高光。
漫反射:光打在粗糙的位置上的反射。(例如:墙面)
那么,杯子的背面呢?如果它不能被右侧光源照到,按照物理,它应该是黑的,为何它也有颜色呢?
因为它会接收到来自于环境的反射光,例如从墙面上反射的光。所以我们也称之为:环境光。环境光也是一个十分复杂的光源。

Shading is Local

Shading是局部的

我们对于一个点(shading point)考虑光的反射。

Inputs:

  • v ⃗ \vec{v} v :View Direction 观察方向
  • l ⃗ \vec{l} l :Light Direction 光源方向
  • n ⃗ \vec{n} n :Surface Direction 法线
  • color(颜色),shininess(它的表面有多亮,和亮度无关,和材质有关)…

因为我们只考虑方向,所以这几个向量都是单位向量。

在这里插入图片描述
No shadows will be generated! (shading ≠ shadow)
我们不考虑阴影,只考虑着色,就是说只考虑它自己,阴影如何生成不在这里介绍。
在这里插入图片描述

1.Diffuse Reflection 漫反射

Light is scattered uniformly in all directions
光在各个方向上均匀地散射
Surface color is the same for all viewing directions
对于所有观看方向的表面颜色都是相同的
在这里插入图片描述
But how much light (energy) is received?
但是接收了多少光(能量)呢?

  • Lambert’s cosine law
  • 朗伯余弦定律:一个面元的辐亮度或光亮度在其表面上半球的所有方向相等时,则有 I(θ)=Incosθ。式中,I(θ)和In分别表示面元在 θ 角(与表面法线夹角)方向及其法线方向的辐射强度或光强度。

在这里插入图片描述

Light Falloff 光衰减

在这里需要引入一个光衰减的概念,以便理解后面的公式。
根据能量守恒定律,我们只考虑它离光源的远近,不就知道当前位置的光的能量了么。
意思就是求图中的半径就可以了。
在这里插入图片描述
因此,漫反射光可以如下计算。
这个时候可能会问,如果 n ⋅ l n·l nl是负数时怎么办?既然是负数,那么这个shading point是接收不到这个点光源的光的,或者说这个光必须穿过其他物体才能被这个shading point接收到,那么我们就不考虑这种情况。
在这里插入图片描述
扩散系数不一样,表现也不一样。如下图所示:
在这里插入图片描述

2.Specular Term (Blinn-Phong) 镜面反射

Intensity depends on view direction.
Bright near mirror reflection direction.
当我们观察点接近镜面反射的方向,我们就能看见高光。
在这里插入图片描述
V close to mirror direction – half vector near normal
当h向量(半程向量)接近n向量时,说明我们的视线接近镜面反射的方向。
Measure “near” by dot product of unit vectors 用单位向量的点积测量“近”
在这里插入图片描述
通过 h ⃗ \vec{h} h n ⃗ \vec{n} n 来判断是否接近,就是Blinn-Phone模型

对于夹角余弦,给它加上一个指数,就能控制看到高光的夹角角度范围。
一般,在Blinn-Phone模型里,这个指数在100~200之间。
在这里插入图片描述
如下图所示,理解高光向。
在这里插入图片描述

3.Ambient Term 环境光照

Shading that does not depend on anything. 不依赖于任何东西的Shading。
Add constant color to account for disregarded illumination and fill in black shadows.
This is approximate / fake!

环境光照是一种间接光照,它可能从很多其他物体上反射过来,从四面八方打到Shading point上。因此,对于本文最上方的杯子的逆光处一样,它可以接收到环境光,进而在我们的眼里(摄像机里)不是黑色的。

可想而知,环境光照是一个很复杂的东西。

所以我们做一个大胆的假设——来自环境的光就是一个固定强度的光 I a I_a Ia,我们就可以近似的得到一个环境光,一个常数。这个常数的作用,就是保证没有地方是黑的,每个地方都是有颜色的。

在这里插入图片描述

总结

那么,我们将这几种光结合到一起。

Blinn-Phong Reflection Model
在这里插入图片描述
L = L a + L d + L s = k a I a + k d ( I / r 2 ) m a x ( 0 , n ⃗ ⋅ l ⃗ ) + k s ( I / r 2 ) m a x ( 0 , n ⃗ ⋅ h ⃗ ) p L = L_a + L_d + L_s \\= k_a I_a + k_d (I/r^2) max(0, \vec{n} · \vec{l}) + k_s (I/r^2) max(0, \vec{n} · \vec{h})^p L=La+Ld+Ls=kaIa+kd(I/r2)max(0,n l )+ks(I/r2)max(0,n h )p

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值