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
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.
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.
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
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:
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
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