通过光栅化,把mesh的每个三角形都投影到了屏幕上,然后为采样点填充颜色,现在得到了下面的左图片,但是似乎并不直观,这是因为我们没有考虑光照的反射等信息对物体表面的影响。

没有明暗对比,导致没有立体感

考虑了光照带来的明暗对比,有立体感
着色(shading)的定义:在不同物体上应用不同材质的过程。因为不同材质和光产生的相互作用就会不同,例如反射率,折射等。和光的不同作用就会显示出不同的结果,因为我们能看见物体都是因为光线进入了人眼。
着色点的属性:

假设光源都是点光源,那么光在每个方向上的传播都是均匀的。

由于能量守恒定理,离得越远,所围成的球面就越大,但是总的能量不会变,因此,球面上一个点的能量值就越小。
球体的表面积公式$S=4{\pi}r^2$,假设球体半径为1,规定此时单位面积上的能量值为$I$。当半径为r时,此时单位面积上的能量为$\frac{I}{r^2}$,即成半径平方的反比进行衰减。 高光模拟
假设着色点距离光源距离为r,则其接受到的能量为$L=\frac{I}{r^2}max(0,\vec{l}·\vec{n})$.乘上max(0,ln),这是因为,如果光源入射角$\theta$大于90°时候,就没有折射了,也就是能量值为0。

杯子左侧被阳光直射,为高光部分,但是我们发现杯子左侧并没有被光照到,但是也是亮的,只是相对高光没有那么亮,这是由于漫反射,把光反射到了各个方向。此时,我们把杯子左侧的L能量值简化为一个常量,这部分为环境光。
现在就可以把每个着色点的能量值L量化了,漫反射模型公式:
