Lumen GI causes ghosting in viewport and in render

The GI leaves an afterimage of the animated object, which fades slowly.

It looks as if Lumen was taking time to settle after each sample. The effect is showing in both the viewport and in render, regardless of the rendering pipeline (MRQ/MRG)

It’s visible regardless of using only spatial samples, only temporal samples, both, or no AA override at all.

The only method that reduces the effect is to drop the in-camera motion blur value down to 0 and use as few temporal samples as possible with no spatial samples.

The more objects in the shot or the heavier the objects are (for example - the skeletal meshes, groom, etc.) the stronger the lag, the longer it takes to fade out the afterimage.

Seems like it wasn’t present in the previous Unreal versions, at least I haven’t noticed it in 5.6 and before

[Attachment Removed]

Steps to Reproduce
Create a level and block directional light to clearly see what’s happening in shadow

Animate an object in front of the camera. Notice the shape of the object leaving an afterimage on objects behind it (like the floor) slowly fading away.

[Attachment Removed]

Hello,

Thank you for reaching out.

I’ve been assigned this issue, and we will be looking into this ghosting for you.

[Attachment Removed]

Hello,

Can you please try increasing the value of “r.Lumen.ScreenProbeGather.Temporal.MaxFastUpdateModeAmount”?

Since this CVar’s maximum is 1.0, and it’s default value is 0.9, you can simply add more “9” digits to the end of the value to approach 1. Keep in mind that if you increase this value too high, it can start introducing noise, as the temporal smoothing effect is disabled.

In our tests, a value of 0.999 removed all the visible ghosting.

Using the console command “vis Lumen.ScreenProbeGather.DiffuseIndirect” can help visualize the ghosting in the Lumen diffuse indirect light, to differentiate it from other potential sources of ghosting.

Please let us know if this helps.

[Attachment Removed]

Hi Marty,

There are a few things you can try. You can try and crank the Lumen Scene and Final Gather update speed in the post process volume. Or if you want to hit it with a hammer you can set r.Lumen.ScreenProbeGather.Temporal.ClearHistoryEveryFrame 0

[Attachment Removed]

Hi Shaun and Stephen

Thanks for looking into it. We didn’t see much signficant difference when trying to increase “r.Lumen.ScreenProbeGather.Temporal.MaxFastUpdateModeAmount”, but disabling the temporal aspect of screen probe gather is indeed necessary.

This of course produces an unusably noisy image, which we try mitigate by changing:

`r.Lumen.ScreenProbeGather.DownsampleFactor 4` (from 16)

`r.Lumen.ScreenProbeGather.ShortRangeAO.DownsampleFactor 1` (from 2)

`r.Lumen.ScreenProbeGather.SpatialFilterNumPasses 10` (from 3)

We’ll see how this goes in wider range of scenes. Let us know if there is any other advice you can think of. I recorded a video just to demo the change if you’re interested

[Attachment Removed]

We used the cleanhistory cvar on the Tarantino thing we did for Fortnite and it solved the issue. It should not be noisy out of MRQ.

[Attachment Removed]

Are you seeing a lot of noise when you remove history? When we saw a little and 2-4 samples would clean it out completely.

[Attachment Removed]

Thanks Shaun. So you remove the noise caused by cleanhistory by using lots of temporal/spatial AA samples in MRQ? We can do that for final renders, but for anim playblasts that makes the renders too slow so we’re gonna give these cvars a whirl and see how it goes

[Attachment Removed]