Dynamic shadows artifacts

Shadow Bias 0.5

Shadow Bias 2

Notice how shadows from tessellation on the ground are significantly reduced. :frowning:

increasing the shadow bias like that also greatly reduces how much “contact” the shadows appear to have. this becomes very noticeable with characters where their feet seem to cast no shadows under them and therefore appear to hover.
increasing the shadow bias is also a known cause of light bleeding.

in short: neither of the proposed workarounds are an acceptable solution.
and once again (as showed in this and other threads) this issue is much less visible in other engines (UE3 included)

I’ve posted on AnwerHub: Blocky shadowing - AnswerHub - Unreal Engine Forums

Is it me, or the issue got considerably worse compared to earlier versions?

It didn’t. I just tested this in 4.10 for fun, and get the exact same result once the light is set to 4 cascades.

YVGFyRf.png

There is one trick one could use to slightly improve the situation.
[SPOILER]

http://image.prntscr.com/image/7888e1e5308d457b862eb6cb4568264c.png

[/SPOILER]
Introduce some sort of fake normal bias. For shadow rendering, offset vertices, that are facing perpendicular to the light direction, slightly inward. It will reduce the area with visible artifacts while not causing much peter panning.
Should be used only for problematic objects and can’t use it for meshes, that have smoothing splits. A pretty terrible way to do things, but might help you, if you have this shadow acne on core prop in the scene.
[SPOILER]

http://image.prntscr.com/image/0443eb33ba4e488c993ac500d8c8835a.png

[/SPOILER]

The largest issue is that the problem worsens with increasing shadow samples. Some sort of adaptive depth bias is needed.

So… any reason why unreal isn’t doing this yet? It seems like every other engine made in the last decade supports some sort of slope bias or normal offset.

Hard to guess really.
Maybe slope-scaled depthbias(correct me if I’m wrong, but UE4 does not use slope scaled depth bias for shadow depth rendering) brings in more issues, than it solves, or perhaps due to cross platform complications.
Or maybe it is simply considered that the issue is so insignificant in the final picture, that it does not deserve any attention.
Latter however is not true, because the problem is clearly noticeable on most curved surfaces in environments with a pronounced dominant light.
As to some advanced techniques, such as using DDX/DDY for more precise bias calculation, they might be not worth it performance wise.

Normal offset can be done on per-material basis.

In any case, I think that the problem deserves some attention.

The landscape surface just looks so bad. Normal maps only make the problem harder to see but in some cases i.e smooth sand, there’s no harsh normal map to hide the problem.

How are you doing normal offset in a material? I’m probably missing something here.

Using


#if SHADOW_DEPTH_SHADER

directive in a custom node you can offset vertices only for shadow rendering, when plugging in node networks in WPO material slot.

Still no reply since 10 days ago. Blocky shadowing - AnswerHub - Unreal Engine Forums

Bumping both thread and report. Still no answer on either one. Not sure if Epic is even aware of this.

I’ve been running into these same issues lately. I agree that something needs to be done to shadow maps and how they render. Roadmap shows percentage closer soft shadow filtering but imo something needs to be done to the non-soft shadow maps too.

Interesting. How to fix jagged shadows on terrain? - Rendering - Unreal Engine Forums

What’s interesting there? I only see one guy pretending he “fixed” it by increasing the shadow bias and reducing the number of cascades, which is obviously not a solution.

It’s interesting that thread is 2 years old and the issue is still carried until now.

I find it interesting that there isn’t a single reply to this issue nor the SSS issues on the forum. Either the community managers haven’t been doing their jobs properly or there are no replies on purpose. A simple acknowledgement would go a million miles.

That being said, is this issue really that prevalent on finalized assets / scenes?

I guess PCSS will will fix this once for all. Was it coming for 4.17?

Quite unlikely.

Hard to say. I guess fair answer would “not really”, but it is situational and project specific.