Lumen GI and reflection produces weird visual artifacts

I have a very simple scene.
– A flat ground that uses dynamic material instance (for trying parameters in runtime) from a standard Material. The material base Color is set to the white color. The roughness and metallic are used.
– A “T” shape on the ground with default Material
– Two spotlights and one point light.
– Everything is in a closed room.

The image here is an overview of the scene

The problem happens when I decrease the roughness of the ground plane from 1.0 to 0.0.
When the roughness is high—such as 1.0, 0.5—there is no visual problem.
r=1.0

r=0.5

However, When the roughness becomes smaller, the artifacts start to appear. Some kind of white light below the horizontal bar of the “T” shape.
r=0.25

The problem becomes more severe when the roughness is lower.
r=0.0

Nonetheless, these artifacts disappeared when I changed my camera angle so that the background is the wall—not the ground anymore.

These problems only appear when Lumen GI is enabled. I’m not sure whether it should behave in this way or not (I think it should not). I feel that the Lumen GI is running a screen-space reflection algorithm, but it should not be. My question is how I can eliminate these white lights.

Thanks!

Just screenspace tracing going wrong. It’d be nice if they added dual pass sst as an option, which can mostly avoid this sort of error at the cost of a bit of extra render time. Maybe someone at Epic will see this and add it to whatever infinite backlog of work they have; thus it might get done some day.

Thank you for the reply. However, from what I understand from the doc in this link (Lumen Global Illumination and Reflections | Unreal Engine Documentation). It looks like Lumen is not doing screen-space (SS) tracing and states that doing SS tracing is suboptimal. Can you please let me know where the documentation shows that Lumen is using SS tracing algorithm?

Where does it say that?

It’s the section titled “screen tracing”

To debug this try disabling screen traces from Lumen reflections: r.Lumen.Reflections.ScreenTraces 0

Thanks for the link, I will look into it and test the mentioned option.

In my mentioned link, it says

Lumen Global Illumination replaces [Screen Space Global Illumination (SSGI)]. Lumen Reflections replace Unreal Engine 4’s [Screen Space Reflections].

and also says

In Unreal Engine 4, features such as [Screen Space Global Illumination] were not reliable and [Ray Tracing Global Illumination (RTGI)] was not performant for games with a high enough quality, and didn’t integrate with other important systems.

So if I understand correctly, it means Lumen does not use SS algorithms? (I’m not confident now).

Lumen uses screen traces and falls back to tracing the Lumen Scene if the screen trace fails to find a hit.

SSR/SSGI are different systems, and they have no way of falling back to more reliable tracing methods.

Got it. Thanks.

Also, I have tested the r.Lumen.Reflections.ScreenTraces 0, and it removes the white color under the horizontal bar, as shown below

I wish there would be an option in the future that fixes the artifacts without disabling the screen tracing.

You should consider posting this to the Lumen feedback thread or reporting it as a bug, seems like something Epic would want to know about if they haven’t encountered it already.

I have posted it in that thread.

1 Like