Page MenuHome

Eevee: Soft shadows causing flickering in animation and temporal AA in scenes
Confirmed, NormalPublicKNOWN ISSUE

Description

System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce RTX 2070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 435.80

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: rBf6cb5f54494e
Worked: (optional)

Short description of error
Eevee soft shadows in objects with thin reflections causes flickering in animation and temporal AA in still images. This type reflections common in interior Arch Viz.

Exact steps for others to reproduce the error
Scene 1 example of flickering of soft shadows in animation. I have remove all light probes and effects to focus only light and shadows. Open attach file "Scene1_AA_eevee.blend".
Render the animation with Soft Shadows ON. Then Render animation with Soft Shadows OFF.

Animation with Soft Shadows ON. Make sure to play video at full size. If not video will be alias by the video player.

Animation with Soft Shadows OFF. Make sure to play video at full size. If not video will be alias by the video player.

Animation in Cycles for comparison. Make sure to play video at full size. If not video will be alias by the video player.


Scene 2 example of temporal anti-aliasing cause by soft shadows. I have simplify the scene 2 to focus only light and shadows. Open attach file "Scene2_AA_eevee.blend".
Render Image with Soft Shadows ON. Then Render Image with Soft Shadows OFF.

Render image with Soft Shadows ON. Make sure to view at full size. Notice the temporal AA on the edges on horizontal counter, vertical counter, oven handle and oven racks.

Render image with Soft Shadows OFF. Make sure to view at full size. Notice the temporal AA is gone.

Render image with Cycles for comparison. Make sure to view at full size.

Event Timeline

Another test for "Scene1_AA_eevee". Render image frame 2 and frame 3 in different slots. Compare these two frames and notice how the highlight switches between edges. These is causing the flickering in animation. Render the image frames again with Soft Shadows OFF. Notice their is no highlight switches between edges.

Clément Foucault (fclem) lowered the priority of this task from 90 to 50.

Thanks for raising awareness. After investigating, it seems to be a correlation artifacts. The same random numbers are used for AA and soft shadows jitter.

Using sobol should fix this issue, but sufficient amount of samples would be required.

After trying Sobol, I settled on using a multiplicator to halton as the points are better distributed than Sobol (in my opinion).

@Eric Klein (eklein) feel free to reopen if it does not feels fixed to you.

Eric Klein (eklein) changed the task status from Resolved to Unknown Status.Sep 9 2019, 11:04 PM

Clement great improvement in the temporal AA with soft shadows. In Scene2_AA the temporal AA is complete fix along as their is enough samples.

In Scene1 the flickering has being noticeably reduce, but their is still some flickering left. In "Scene1_AA_eevee" Render Animation to 100 frames and play the image sequence in the blender video editor make sure the fractional zoom is set to 1:1. Notice some flickering of the highlights.

I did more testing on Scene1_AA flickering. To solve most flickering left I had to increase samples 1024 and the film increase "Filter Size" to 2.0 to soften the thin highlights.

It does look at this time the PCF shadows requires a lot of samples to solve the AA/flickering with thin highlights with some help by increasing the "Filter Size". This also increase rendering time considerably for animation.

I think it's more related to the de-correlation factor I applied on soft shadows sampling. The factor is ~1000 so maybe changing this factor may reduce convergence time. But it's a bit black magic at this point, it can work in some case and fail in others.

The difference with cycles is that cycles does the randomization per pixel so the perceived flickering is less intense. But EEVEE can't do that and you are left with bumping the sample count.

Clément Foucault (fclem) changed the subtype of this task from "Report" to "Known Issue".Jan 27 2020, 4:16 PM
Clément Foucault (fclem) edited projects, added Eevee; removed Tracker Curfew.

Unfortunately I don't have much of a solution here. So I'll left this open as known limitation.

Unfortunately I don't have much of a solution here. So I'll left this open as known limitation.

Hey Clément,
Here is a solution I found for this flickering using another softwere,
Maybe you get an idea from this addon on how to solve this in future. At least in rendering as an option to denoise.

Here is a video test I made with a grass rendered in Eevee, with before and after apply this plugin.
https://www.youtube.com/watch?v=5utbCECHewA&feature=youtu.be

DE:Noise for Premiere
https://revisionfx.com/products/denoise/

https://player.vimeo.com/video/116886900?portrait=0

is there a way to not use soft shadows, and apply a 2d filter to the shadow buffer?
like depth aware blur or something?