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:环境光照,未被光源照亮的地方应该是黑暗的,但是一些间接光照会使得该地方接收到部分光,在该模型中视为常量;
概念定义
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 is Local
着色是局部,怎么理解?即着色是针对shading point来说的,不考虑其他因素,例如:遮挡、背影等,即不同的点的着色过程是彼此独立的,之间没有关系。不会因为一些物体遮挡另一些物体导致无法着色。
Diffuse Reflection
假设
Light is scattered uniformly in all directions
- Surface color is the same for all viewing directions
Lambertian Shading
Lambert’s cosine law
在光的传播中,有多少光被shading point接收了?取决于shading point的法线角度和光的传输方向。
光的能量传递
假设:光在真空中传递,没有能量损失,因此光的能量在不同的时间点,在不同的范围内是守恒的。
设定距离光源长度为1的球面上,单位面积接收的光的能量为 $I$。在距离光源长度为 $r^2$ 的球面上单位面积上的光的能量是 $\frac{I}{r^2}$ 。
漫发射的光
考虑的因素:
- shading point距离光源的距离;
- 光源入射的角度:也就是光线方向与shading point法线的夹角,这里只考虑反射,不考虑折射;
- shading point自身的特性:其可能吸收部分光,并不会将所有的光全部反射出去;
- Shading independent of view direction:即观察者从任何方向看都会得到一致的结果;
注意:
- 该推导是一个经验公式,并不代表它在数学上是正确的(所有模型都是错的,但有一些有用);
- 其中,$k_d$ 作为漫反射系数决定了亮度和颜色;
- $max(…)$ 决定了不考虑光从shading point底部射入的情况,即折射的情况;
Specular Term
何时出现高光
“高光”表示shading point所在的平面相对较光滑,因此可以近似为镜面反射。当观察方向与镜面反射的方向趋近时,可以看到高光,即:
- Intensity depends on view direction
- Bright near mirror reflection direction
如何对高光建模
想法转换:对于将观察方向与镜面反射的方向趋近,表示为入射和观察方向的半程向量与shading point的法线方向趋近。(因为之前的)
注意:
- 衡量向量接近:使用dot product;
- 这里没有考虑有多少光被吸收,类似于漫反射中需要对 $l,n$ 进行dot product,做了简化;
- $k_s$ 是surface的镜面反射系数,与漫反射中的 $k_d$ 含义相同;
- 指数 $p$ 的作用:increasing p narrows the reflection lobe 限制高光的范围,即高光只在特定的范围内出现,超过这个范围则看不到,该指数使得能够快速衰减高光的值。一般取100,200等。
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!
注意,这里的环境光:
- 与光的入射方向无关;
- 与观察方向也无关;
- 其根本作用是保证未被光照到的地方不会黑暗;
总结: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}
$$