我知道阴影贴图是如何工作的,但是我没有找到阴影粉刺的原因!
有人可以简单地告诉我阴影粉刺的原因吗,它与深度图分辨率有什么关系?

#1 楼



图像1:暗疮痤疮的坏情况。 (综合有点夸张)

阴影痤疮是由阴影贴图的离散性质引起的。阴影图由样本组成,表面是连续的。因此,在表面上可能会有一个斑点,其中离散表面比样品更远。即使您进行多次采样,问题仍然存在,但是您可以以几乎可​​以节省大量成本的方式进行更智能的采样。



图像2:阴影函数及其离散样本。

解决此问题的规范方法是稍微偏移阴影贴图,以使对象不再自阴影化自身。此偏移称为偏差。人们可以使用比固定值更多的智能偏移量,但是固定值效果很好,并且开销最小。



图像3:阴影函数向前偏移(偏移) 。

评论


$ \ begingroup $
深度图的这种离散特性是由于浮点精度而创建的。对?
$ \ endgroup $
– Ankit singh kushwah
16-3-16在20:12



$ \ begingroup $
没有创建它,因为图像是离散的,因为对于变化的区域只有一个值。
$ \ endgroup $
– joojaa
16 Mar 16 '21:00



$ \ begingroup $
相机和光线空间中的图像不同吗?
$ \ endgroup $
– Ankit singh kushwah
16年3月16日在21:04

$ \ begingroup $
那曲折线代表深度图吗?
$ \ endgroup $
– Ankit singh kushwah
16 Mar 17 '16 at 14:14

$ \ begingroup $
它代表深度图的功能,虚线代表深度图的像素样本。
$ \ endgroup $
– joojaa
16 Mar 17 '16 at 14:16

#2 楼

除了joojaa的答案之外,
使用偏倚来抵消阴影功能确实可以解决阴影痤疮的问题,但它可能会引入另一个问题:Peter Panning



如左图所示,阴影已从阴影投射墙断开。这给人的印象是几何体悬停在地面上(就像Peter Pan可以悬停一样,因此命名为Peter Panning)。

要解决此问题,您必须使用具有体积的“厚”几何体然后使用背面渲染阴影贴图。如果偏移量小于几何图形的厚度,则不会出现Peter Panning。



这两个图像均来自本教程,您还可以了解更多有关如何阴影贴图有效,如何创建和解决阴影粉刺以及什么是Peter Panning。

评论


$ \ begingroup $
还可以更聪明地绘制中距离地图。
$ \ endgroup $
– joojaa
16 Mar 17 '16 at 14:18

$ \ begingroup $
我会以为它叫彼得潘宁(Peter Panning),因为有些电影将彼得潘的影子描述成有自己的思想并与彼得脱节。
$ \ endgroup $
–马丁·恩德(Martin Ender)
16 Mar 17 '16 at 14:27

$ \ begingroup $
@MartinBüttner好吧,是的。这似乎是一个明智的选择。我参考的教程使用了我给出的解释。
$ \ endgroup $
–龙船
16 Mar 17 '16 at 16:12