Emissive cube faces that are not in view stop lighting the scene [UE5]

When I move the camera the shadows change, how do I get the lighting to stay correct even when that cube face is not in view?
I’m using Lumen, if that helps.


The only way I know of to achieve this is to use Hardware Lumen on a compatible GPU (Like Nvidia RTX)
Left: Software Lumen
Right: Hardware Lumen

Notice that Software Lumen uses screen tracing for emissive materials, so anything that isn’t visible on screen can’t cast light. However with hardware RT, you can see that the back side of the cube (which is also emissive) casts light against the wall, despite not being on screen space.

1 Like

This is incorrect, software lumen can work with offscreen emissive objects, they just need to be large enough and have distance fields enabled.

1 Like

There’s still the black halo artifacts, not sure if there’s a work around or fix for that, but software lumen can still work well if setup correctly. Always check the lumen scene if things are acting weird.

1 Like

You appear to be right, thanks for the correction - however the cube in my scene did have DF as verified in the scene view, and it still failed. It appears to likely be related to the same black halo that you demonstrate. In my case, it doesn’t light anything off screen space unless until like a meter or so away.

1 Like

Make sure you enable “Emissive Light Source” in your actor properties and it should prevent Lumen from culling it too quickly.

1 Like

Thank you, enabling Hardware Lumen seems to be the only way to solve it. I also tried software Lumen with detail tracing, but I don’t know how to remove the black halos. I had already enabled Emissive Light Source.
Thanks to everyone who replied!

I had exactly this problem on a similar scene, partially fixed the issue of faces pointing away from viewer not emitting by:
r.Lumen.ScreenProbeGather.ScreenTraces.HZBTraversal 0

Still, off-screen emissives will not emit, and “black halo” is still unsolved.

are you using local exposure compensation in your PostProcessVolume? it was causing this issue for me…