shadow ance和peter panning是光线下产生阴影的常见问题,问题的产生可以参考 这里,非常详细。因为链接中的例子实在OpenGL上的,这里我记录一下自己在unity3D中两个问题的出现和对应的简单解决办法。 阴影的生成过程包括两个主要过程: 1)从光源方向对场景进行渲染,通过一个深度系统,渲染出一个shadow map,用于记录那些离光源较近的表面。 2)从正常的角度渲染场景,但是采样的时候必须测试每一个点是否处于阴影区中。 当shadow map的分辨率较低,而且与接收光线的平面有夹角时,就会产生shadow ance,原理可以参考上面的链接,非常详细。