GAMES101-07:Shading - Blinn-Phong Model


Shading含义

  • Merriam-Webster Dictionary The darkening or coloring of an illustration or diagram with parallel lines or a block of color
  • 本课定义 The process of applying a material to an object.

Blinn-Phong Reflectance Model

Perceptual Observations

  • Specular highlights 高光
  • Diffuse reflection: 漫反射
  • Ambient lighting:环境光照,未被光源照亮的地方应该是黑暗的,但是一些间接光照会使得该地方接收到部分光,在该模型中视为常量;

Blinn-Phong Model中的三种元素

概念定义

Shading point

Compute light reflected toward camera at a specific shading point.

Inputs:

  • Viewer direction, $v$
  • Surface normal, $n$
  • Light direction, $l$ (for each of many lights)
  • Surface parameters (color, shininess, …):待着色物体的一些性质;

所有的向量都是单位向量,因为只考虑方向,不考虑大小。

Shading point

Shading is Local

着色是局部,怎么理解?即着色是针对shading point来说的,不考虑其他因素,例如:遮挡、背影等,即不同的点的着色过程是彼此独立的,之间没有关系。不会因为一些物体遮挡另一些物体导致无法着色。

Shading不考虑阴影

Diffuse Reflection

假设

Light is scattered uniformly in all directions

  • Surface color is the same for all viewing directions

Diffuse Reflection

Lambertian Shading

Lambert’s cosine law

在光的传播中,有多少光被shading point接收了?取决于shading point的法线角度和光的传输方向。

Lambert’s cosine law

光的能量传递

假设:光在真空中传递,没有能量损失,因此光的能量在不同的时间点,在不同的范围内是守恒的。

设定距离光源长度为1的球面上,单位面积接收的光的能量为 $I$。在距离光源长度为 $r^2$ 的球面上单位面积上的光的能量是 $\frac{I}{r^2}$ 。

假设光的能量传递没有损失

漫发射的光

考虑的因素:

  • shading point距离光源的距离;
  • 光源入射的角度:也就是光线方向与shading point法线的夹角,这里只考虑反射,不考虑折射;
  • shading point自身的特性:其可能吸收部分光,并不会将所有的光全部反射出去;
  • Shading independent of view direction:即观察者从任何方向看都会得到一致的结果;

Diffuse Term

注意:

  • 该推导是一个经验公式,并不代表它在数学上是正确的(所有模型都是错的,但有一些有用);
  • 其中,$k_d$ 作为漫反射系数决定了亮度和颜色; 漫反射系数的影响
  • $max(…)$ 决定了不考虑光从shading point底部射入的情况,即折射的情况;

Specular Term

何时出现高光

“高光”表示shading point所在的平面相对较光滑,因此可以近似为镜面反射。当观察方向与镜面反射的方向趋近时,可以看到高光,即:

  • Intensity depends on view direction
  • Bright near mirror reflection direction

Specular highlights

如何对高光建模

想法转换:对于将观察方向与镜面反射的方向趋近,表示为入射和观察方向的半程向量与shading point的法线方向趋近。(因为之前的)

Specular Term

注意:

  • 衡量向量接近:使用dot product;
  • 这里没有考虑有多少光被吸收,类似于漫反射中需要对 $l,n$ 进行dot product,做了简化;
  • $k_s$ 是surface的镜面反射系数,与漫反射中的 $k_d$ 含义相同; 镜面反射系数和p的影响
  • 指数 $p$ 的作用:increasing p narrows the reflection lobe 限制高光的范围,即高光只在特定的范围内出现,超过这个范围则看不到,该指数使得能够快速衰减高光的值。一般取100,200等。 指数p能衰减高光

Ambient Term

Shading that does not depend on anything:

  • Add constant color to account for disregarded
    illumination and fill in black shadows
  • This is approximate / fake!

Ambient Term

注意,这里的环境光:

  • 与光的入射方向无关;
  • 与观察方向也无关;
  • 其根本作用是保证未被光照到的地方不会黑暗;

总结:Blinn-Phong Reflection Model

$$
\begin{aligned}L &=L_{a}+L_{d}+L_{s} \\ &=
k_{a} I_{a}+k_{d}\left( \frac{I}{r^{2}} \right) \max (0, \mathbf{n} \cdot \mathbf{l})+k_{s}\left(\frac{I}{r^2} \right) \max (0, \mathbf{n} \cdot \mathbf{h})^{p}\end{aligned}
$$

Blinn-Phong Reflection Model中不同项对应的效果


文章作者: alex Li
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 alex Li !
  目录