我正在构建自己的图形引擎。

我的深度纹理远小于屏幕的深度纹理。

低分辨率深度图会导致像这样的刚性阴影...



我相信这是一个常见问题。

我想学习“继续”技术来解决此问题。 br />

评论

最简单的选择是在您关心的区域获得更高的阴影贴图分辨率。

百分比更紧密过滤

PCF真的不是那么好。实际上,PCF是用于阴影贴图过滤的幼稚蛮力解决方案。绝对不应该将其称为“解决方案”。即使最简单的指数阴影图也可以线性过滤,而不会影响性能。

游戏引擎的现实解决方案更像是使用级联阴影贴图分区与可线性过滤的深度表示相结合,您可以将其预先过滤到所需的平滑度。

#1 楼

我知道的最基本的方法是在某些模糊程度(即纹理空间中的最小滤镜大小)下进行百分比更接近的滤镜。例如,请参阅GPU Gems。我的经验是它也非常强大。

#2 楼

啊,阴影。在经过许多人花了很多年的时间来改进它们之后,它们仍然感到困扰。
无论您的引擎是推迟还是前进,影子传递都应该是相同的,并且遭受相同的问题。
您是正确的,这是一个著名的问题。在某些情况下,某些方法可以改善这些伪影,请参阅已经提到的方法,例如“光透视级联”,“方差阴影贴图”,“阴影图集”(在给定可用内存的情况下,计算每种光的阴影的最佳分辨率,并相应地将它们安排在较大的缓冲区中),“瞬间阴影贴图”。
如果光线和物体不移动,其他一些变通办法是“烘焙”阴影贴图。
我很想念,但不要回想起当分辨率/过滤通过次数/样本数量受到限制时,能很好工作的解决方案...

#3 楼

一种技术是自适应阴影贴图,其中对远离相机渲染的阴影使用低分辨率贴图,对于中等范围的物体使用中分辨率的贴图,对较近的物体使用高分辨率的贴图。 >