一、我们是如何看到这个世界的
当我们描述一个物体的是红色的时候,实际上是因为这个物体会反射更多的红光波长,而吸收了其他波长。如果一个物体看起来是黑色的,实际上因为吸收了绝大部分的波长,这种物理现象就是下面要讨论的。
如果要模拟真实光照来生成一张图像,需要考虑3种物理现象。
(1)首先光从光源被发射出来。
(2)光线和场景中的一些物体相交,一些光线被物体吸收了,而另一些光线被散射到其他方向。
(3)最后摄像机吸收了一些光,产生了一张图像。
1.1光源
实时渲染中我们通常把光源当成一个没有体积的点,用l表示它的方向。那么如何测试一个光源发射出了多少光呢?也就是说如何量化光?在光学中使用辐照度去量化。对于平行光来说,它的辐照度可通过计算在垂直于l的单位面积上单位时间内穿过的能量来得到。在计算光照模型时,我们需要知道一个物体表面的辐照度,而物体表面往往是和l不垂直的,我们可以使用光源方向l和表面法线n之间的夹角的余弦值得到辐照度。
因为辐照度和照射到物体表面时光线之间的距离d/cosα成反比的,因此辐照度就和cosα成正比, cosα可以使用光源方向l和表面法线n的点积得到,这就是使用点积来计算辐照度的由来。
1.2吸收和散射
光线由光源发射出来后,就会与一些物体相交。通常相交的结果有两个:散射和吸收。
散射只改变光线的方向,但不改变光线的密度和颜色。而吸收只改变光线的密度和颜色,但不改变光线的方向。光线在物体表面经过散射后,有两种