我很难理解为什么深度失败更好。我明白,相机的眼睛在阴影卷内存在问题。因此,您需要限制被近平面剪裁的前面面孔以进行深度通行证。但是,对于深度无法正常工作,您需要扣紧面孔。
是因为遥远平面的封盖比靠近平面的封盖要容易吗?如果是这样,为什么这是?
近平面剪辑问题无法通过封盖前面的面孔完全解决;当相机在阴影音量内时,在许多情况下,它仍然会失败。这使其不适合具有阴影的漫游3D环境。
深度失败即使在不盖住面孔的情况下也可以工作;它将简单地错过阴影,其中音量指向无穷大。这是一个比发生深度通行证的情况要少得多的,这是相机在阴影中的任何时候。此外,还有硬件支持可以促进Z夹紧:
OpenGL 3.2:GL_DEPTH_CLAMP
d3d10:rasterizerdesc.depthclipenable = false。
但是,对于强大的解决方案,通常需要对两者进行调整。两者都没有使用"原始"。深度通行证用于自上而下的视角,因为相机永远不会在阴影下(这是该领域的一种有效的技术),在该领域中,在FPS或其他相关游戏中使用了深度失败,而在阴影卷内是一个问题。
这是一篇论文中的Pro和Con的列表,该论文是该主题的原型:
depth-pass
- 优势
- 不需要阴影卷上限
- 更少的几何形状
- 这两种技术的更快
- 如果我们忽略近平面剪辑问题 ,更容易实现
- 不需要无限的透视投影
- 缺点
- 由于无法解决的靠近平面剪辑问题 不健壮
深度 - 效率
- 优势
- 强大的解决方案,因为可以解决远面的平面剪辑问题优雅
- 缺点
- 需要上限以形成封闭的阴影量
- 由于封盖而导致的更多几何形状
- 这两种技术的较慢
- 实施更难
- 需要无限的透视投影