Eevee animation flickering and temporal AA in scenes

I have being working in realistic interiors in Eevee for some time. See Realistic interiors.

In doing walk through animations objects with thin reflections or specular highlights can cause constant flickering. One caused is Eevee soft shadows is creating temporal AA artifacts. See my bug report at T68594. First example below is flickering of the reflections highlights. I have remove all light probes and effects to focus only light and shadows.

The Eevee sample scene at Scene1_AA_eevee.

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

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

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

A quick 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.

Scene 2 example of temporal anti-aliasing cause by soft shadows. I have simplify the scene 2 to focus only light and shadows. Example file at Scene2_AA_eevee.blend (1.1 MB) .

Render image with Soft Shadows ON. Make sure to view at actual size. If not image will be alias by the image viewer. 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 actual size. If not image will be alias by the image viewer. Notice the temporal AA is gone.


Render image with Cycles for comparison. Make sure to view at actual size. If not image will be alias by the image viewer.

A potential fix for the soft shadow temporal aliasing is the plan shadow system refactor. See T68471.

Current workaround or improvements in flickering temporal AA in Eevee:

  1. Render at 2x or greater output resolution (Supersampling).
  2. Increase the roughness in the material.
  3. Increase the size of edges in the objects with temporal aliasing.
  4. Change the “Area Light” shape from rectangular to circle.
  5. Increase the “Filter Size”. It does reduce the sharpness of the image.

Changes in Eevee code that I have done that help.

  1. Add “Soft Shadow” factor per light. This way the “Soft Shadow” temporal AA can be control per light.
  2. Add a “Guassian” pixel filter to Eevee like in Cycles. Currently is hard code to "Blackman Harris.
  3. In the Eevee draw code render the lights after shadows.
2 Likes

Thanks Eric for doing this. Poor temporal AA has been a problem in EEVEE for some time. It would be great if we could get a developer assigned to this.

This same problem was one of the reasons people preferred Unreal to Unity for architectural animations in the early days. Unity finally figured it out.

Didn’t know about the circular area lights. Will need to check that out.

Also of interest is the fact that motion blur cannot work for objects (only cameras) that are moving, which is pretty well known. But did you know motion blur also does not work for cameras attached to a path?

In order for motion blur to work for cameras attached to a path, they must first be baked into keyframes-- as motion blur only works with camera keyframes.

Hopefully Clement or Brecht would add Eevee animation flickering and temporal AA problems as a task. In a number of cases for architectural scenes the flickering and temporal AA issues make difficult to produce professional quality animations.

At least I made a bug report for developers with test cases and this threads adds potential solutions.

Good news Clement fixed temporal AA and animation flickering due to soft shadows.

The “Scene2_AA_eevee” has no temporal AA with render sampling of 256.

The “Scene1_AA_eevee” flickering from thin reflection or specular highlights was solve by increasing render sampling to 1024 and slightly increasing the “Film->Filter Size” to 2.0.

This is a converted scene from the Chocofur “Interior Visualization” course that I did in Eevee that had constant flickering. I fix the flickering by doing as I described above.

This is the Eevee walkthrough. Download to play video at the highest quality. Make sure to play video at full size. If not video will be alias by the video player.

For more tips for flicker free walkthrough animations. See my post on animation tips.

5 Likes

we need ATAA

Is there a solution for flickering shadows? Upping the sample and cube size to 2048 didn’t improve the shadows from flickering in some corners. What’s the setting that has the best effect for improving shadows in Eevee?

poly2ply2,

Their different causes for the flickering shadows. This post was related mainly about flickering cause by temporal Anti-Aliasing. The samples of up to 1024 is all that would be need to solve this type of flickering issue.

Another common cause for flickering is screen space reflection. As the camera moves objects that become in or out of view will cause flickering artifacts. In my previous post their is a link to “animation tips” which I describe and solve this issue by using a “Reflection Plane”.

Their could be other causes is best to share a basic scene with the flickering problem.

Thanks for the reply. Your interiors in Eevee are amazing!
I attached a simplified scene.test.zip (321.9 KB)

Shadow flicker can be clearly seen in animation.

Your issue is related to the camera clipping start/end values. Clip start is too low, change it to 1m and it will be fixed:
image

Poly2poly2,

Filibis is correct about having the to small of camera start clipping value. I had done this correction previously on your test file to a range from 0.1 to 100.

Two other issues give better and cleaner animation results are:

  1. The sock geometry is quiet poor and the Eevee shadow map won’t be as clean. I quad remesh the sock geometry on the test file to have good geometry topology to give the best possible shadows.
  2. Having good default Eevee shadow setting is important to avoid artifacts see some of my previous posts on this subject. I updated the test file with good default shadow settings.

See attach sock test file with this fixes. test_sock_fix.

Thanks guys. The clipping fixed it. It seems like a wierd error.
There’s some foreground objects there so I set the clipping low. But 0.5m is enough to fix it.