我知道阴影贴图的工作原理,但我没有引起阴影粉刺的原因!谁能以简单的方式告诉我暗疮的原因,它与深度图分辨率有何关系?
我知道阴影贴图的工作原理,但我没有引起阴影粉刺的原因!谁能以简单的方式告诉我暗疮的原因,它与深度图分辨率有何关系?
Answers:
图片1:暗疮痤疮的坏情况。(综合有点夸张)
暗疮粉刺是由暗影贴图的离散特性引起的。阴影图由样本组成,表面是连续的。因此,在表面上可能会有一个斑点,其中离散表面比样品更远。即使您进行多次采样,问题仍然存在,但是您可以通过更智能的方式采样,几乎可以用大量成本消除这种情况。
图2:阴影函数及其离散样本的侧面剖视图。
解决此问题的规范方法是稍微偏移阴影贴图,以使对象不再自阴影自身。此偏移称为偏差。人们不仅可以使用固定值,还可以使用更多智能偏移,但是固定值可以很好地工作并且开销最小。
图3:阴影功能向前偏置(偏移)。
作为joojaa答案的补充:使用偏倚来抵消阴影功能确实可以解决阴影痤疮的问题,但它可能会引入其他问题:Peter Panning
如左图所示,阴影已从阴影投射墙断开。这给人的印象是几何图形悬停在地面上(就像Peter Pan可以悬停一样,因此命名为Peter Panning)。
要解决此问题,您必须使用具有一定体积的“厚”几何图形,然后使用背面渲染阴影贴图。如果偏移量小于几何图形的厚度,则不会出现Peter Panning。
这两幅图均来自本教程,您还可以在其中了解更多有关阴影贴图的工作原理,阴影痤疮的创建和解决方法以及Peter Panning的知识。