最近,在寻找解决传统阴影贴图的阴影痤疮问题的过程中,我实现了指数阴影贴图。它成功了(完全没有粉刺),但同时引入了其他不可接受的错误。
对于深度图模糊,我使用最小sigma = 1的高斯模糊。
测试阴影图:
float occluder = texture(shadowMap lightCoords.xy).r;
float c = 5000.0;
float receiver = lightCoords.z;
float shadow = exp(c*(occluder-receiver));
shadow = clamp(shadow, 0.0, 1.0);

c因子小c=100.0

c因子高的发光二极管不可接受出现“肿胀”。
无法找到最佳c-即使在c=5000.0处也会出现光渗漏,并且已经存在高频阴影误差。不模糊深度图会有所帮助,但会出现锯齿。
我的问题是-如何改善这项技术(ESM)还是应该寻找另一种技术?我认为绝对有可能获得具有良好性能的高质量阴影-正如在《巫师3》或《辐射4》等现代游戏中所见。

#1 楼

好吧,没关系。我进行了一些研究,实际上是:



使用PCF方式的Poisson采样对ESM进行采样(感谢Bart Wronski提供了出色的Poisson Sample Generator应用),并将其扩展到PCSS技术(可变半影)。渲染为纹理。
可选地,深度感知模糊会变软-编辑不是太快,此选项无法按预期工作,太糟糕了。相反,旋转PCF内核似乎可以正常工作。

太糟糕了,这里没有太多讨论。