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.