如何实现阴影 实现阴影的基本思想是:太阳看不见阴影。如果在光源处放置一位观察者,其视线方向与光线一致,那么观察者也看不到阴影。 他看到的每一处都在光的照射下,而那些背后的,他没有看到的物体则处在阴影中。 这里,我们需要用到光源与物体之间的距离(实际上也就是物体在光源坐标系下的深度z值)来决定物体是否可见。
如图10.21 所示,
同一条光线上有两个点P1和P2,由于P2的z值大于PI,所以P2在阴影中。
我们需要使用两对着色器以实现阴影:
(1)
中计算出的距离绘制场景。使用一张纹理图像把(1)的结果传入(2)中,这张纹理图像就被称为阴影贴图(shadow map)
,
而通过阴影贴图实现阴影的方法就被称为阴影映射(shadow mapping)
。
阴影映射的过程包括以下两步: