Interior ambient lighting using invisible emissive planes with Lumen

Hello,

In our UE 5.7.3 project, we have a wide variety of maps with different lighting conditions.

We heavily embrace the UE5 philosophy : Lumen + Nanite + VSM + TSR.

For some interior-only maps, we don’t rely on SkylightComponent for ambient lighting. We also like to keep the number of shadow-casting and performance intensive local lights as low as possible.

We’ve seen this Unreal Fest 2025 talk about using invisible emissives meshes in Avowed : youtu.be/BKaAzhMHJZ0?t=834.

We’d like to explore this solution, even if it means modifying the engine in order to exclude these objects from Lumen Reflections but not from GI.

However, we’ve also seen this EPS post, discouraging such method : [Content removed]

If we were to go down the rabbit hole of using invisible emissive planes, how could we make them affect the Lumen GI but not visible in reflections. For HW RT, it seems easy enough using the “RayTracingQualitySwitch” node.

We also saw some EPS threads recommending to disable Lumen screen traces (r.Lumen.Reflections.ScreenTraces 0 and r.Lumen.ScreenProbeGather.ScreenTraces 0), but we’re not very fond of this solution. On top of that, lumen software traces need to be supported (for lower end platforms), and the surface cache is unified for both GI and Reflections. What would be the engine modifications required for achieving this feature ?

If that’s not the preferred way, what would you recommend instead to add more ambient lighting to our interior levels without sacrificing performance ?

I’m looking forward to get your input and best practices on that topic !

Tim

[Attachment Removed]

Hi,

I’m not really sure how you are able to use RayTracingQualitySwitch node to exclude hidden emissives from reflections. This node works the same for GI and reflection rays.

Hiding things from reflections was such a common request that I added bVisibleInReflections to the engine in CL 50566346. This will be available in 5.8. This works only when using HWRT, as we are slowly moving away from SWRT given that nowadays most of the projects use HWRT (internally we only use HWRT).

So there’s now only one issue left, which is that GI screen traces can skip over that hidden emissive and you may get some view dependent lighting. We don’t have a solution for this. If you are open to make engine modifications, then maybe you could make a hidden-emissive-only TLAS and retrace that. You could also disable screen traces for GI and only rely on HWRT (this isn’t a scalability thing, as you can’t have Lumen with only screen traces). Disabling screen traces can make lighting less view dependent and stable, but it will also miss a bunch of detail as now Lumen GI can only pickup what’s in the pretty approximate Lumen Scene. Or maybe you can just ignore this view dependent issue, which seems like what everyone else is doing in their titles.

Another way to inject some light into interiors is to use a bit of sky leaking in PPV. It basically add a specified amount of skylight everywhere disregarding skylight occlusion. Though you need to be careful with it, as it can flatten indirect lighting or add wrong hue (e.g. blue in warm interiors) if you add too much of it. Possibly your issues aren’t related to lack of light, but due to lack of local tonemapping, which is crucial to get a good image with GI. Check out examples of using both in this blog post: https://www.unrealengine.com/en-US/tech-blog/lumen-brings-real-time-global-illumination-to-fortnite-battle-royale-chapter-4

For the best quality we have now MegaLights, which allows to add a bunch of shadowed lights at a pretty good quality, but that’s a large topic with various tradeoffs.

[Attachment Removed]