Shadow Map和Shadow Volume 可以说是最常见的阴影计算方法,二者各有千秋。个人认为,理解这两种阴影算法的重要前提是 理解 ZTest,ZWrite,Stencil Test的作用。
ShadowMap适用于静态的光源和静态的物体,好处是开销不算大,需要2个pass。而且对于静态的光源和物体,大多数情况下,生成的Depth Map可以进行复用(此时,为啥不选择光照贴图)。而当物体或光源运动时,则每帧需要重新渲染到纹理,生成新的Depth Map,此时开销较大。而且ShadowMap产生的阴影会有锯齿。
ShadowMap算法: