Lumen GI is screen space?

I made a simple archviz scene, and whatever indirect light I have from my directional light goes away and GI goes dark when I look up and my direct lighting is out of screen. is this how it works?

It’s eye adaptation. From what I can tell eye adaptation does not take GI into account, only direct light. This means that you can’t have space that is only lit by GI, you need to have direct light. Consequently it means that the current Lumen solution is only viable outdoors unless this is addressed.

Does lumen require eye Adaptation? Turning it off made light stop flickering on and off when I get away from the direct light source and more into the GI spots. But lumen gives a lot less GI with it off.

Does it need Eye adaptation?

Watch today’s stream: Lumen | Inside Unreal - YouTube

They talk about that issue and how to fix it.

When? I didn’t catch any talk about eye adaptation.

I did not say it was because of eye adaptation. When certain “conditions” are not met on a surface, Lumen resorts to SSGI and essentially turns the bounce lighring off when light part of a surface is not in view.

You can view what surface will and will not bounce light even when off screen by turning on Visualization / Lumen Scene, then input the console command ‘r.Lumen.DirectLighting.ForceOffscreenShadowing 1’

He explained and demoed it during the stream right when the editor crashed on him. It’s also mentioned here at the very bottom of the page: “Mismatch Between Shadow Maps and Ray-Traced Shadows” Lumen Technical Details | Unreal Engine Documentation

Lumen solution is only viable outdoors unless this is addressed

Just turn off eye adaptation. You could even do it with a postprocessing volume that overrides the global volume, only for indoors.

In general, eye adaptation lets you get away with unnatural scene lighting levels/conditions, that may end up looking as artistically intended in normal conditions, but that responds poorly to any global or physical changes. I would look into setting up lighting based on “physical” parameters, without eye adaptation, and then controlling exposure using post process volumes, if I wanted control of lighting in a way that’s physically realistic.

Ok, so got some time at the PC. Here is en example of the issue:

First image with sun spot on plane. This is what we want consistently when moving the camera:

How it looks with Visualize | Lumen Scene:

Now with r.Lumen.DirectLighting.ForceOffscreenShadowing 1 :thinking:

Notice the floor is completley black here.

Result when looking up enough for sun spot on plane to go off screen:

Notice how room got darker and all bounce light from floor is gone.

Now fixing the issue, this is how the floor should look in Visualize | Lumen Scene with the console command active:

Now this is the result when looking up:

Now Lumen preserved the light bounces from the floor even when the Sun spot is off screen.

Video of me breaking and fixing the floor for Lumen:

Hope this helps.


While i’m here, what’s up with auto exposure, sometimes called eye adaption? Why does it make such a difference in light? I thought it simply made it so when viewing light from a previously dark area, it slowly shows up, not completely change how light looks?

Exposure doesn’t really change the lighting. Look at it this way: 0 is complete dark while 1 is full white, the engine can only see within a range of 0.2 (for example) of that 0 to 1 range. So if your scene is light at 0.7 brightest and 0.3 darkest of that 0-1 scale, exposure moves to compensate showing 0.6-0.8, but everything from 0.81-1 is overexposed and everything from 0-0.59 is underexposed.

What you can do to work with the exposure is light up your scene within the range; this means your shadows lets say at the 0.4 range and light parts at the 0.6 range (again numbers totally made up to illustrate a point), this will allow you to set exposure to cover the entire range of 0.4-0.6. This is the same as how lighting is worked in films, which is measured in stops of light.

For this specifically it would be a dream come true if unreal had a False Color filter to help with exposure.

1 Like

thanks for your examples and video. really appreciate the bit of knowledge shared there. That being said, I still cannot find a solution to this. I have not scaled any of the mesh geo, which your video demonstrates to keep your mesh scale at 1.

I have also tried your command line, but that just disables everything you see in Visualize - Lumen Scene…so I can see how that affects the lighting. But then when I go to Visualize - Lumen Global Illumination, I still get dips in my exposure - even after I have input the console command you mentioned which Forces Offscreen Shadowing. I also tried to set the command line to 0 r.Lumen.DirectLighting.ForceOffscreenShadowing 0 in hopes it would help rectify the problem, no luck.

Not sure how to fix it as I’ve been scouring the forum and internet all day trying to fix it! Totally doing my head in and this point. I see in your video you’re still getting GI bounces from the ground even tho it’s not visible anymore. Totally not working for me.

Setting this line to 1 does not disable lighting, what it does is remove what light is being emitted with screen space. So if in the debug view the SM seems to be"off", it means it’s actually not bouncing as it should and Lumen will resort to SS. It is not a dip in exposure.

Your goal should be have the floor or any SM bounce light with r.Lumen.DirectLighting.ForceOffscreenShadowing set to 1.

You can test this out by adding a regular cube in the sunlights path, the bounce light from the cube should be visible when you look away, and it would appear lit in the debug view.

To help you with this scene, I would need to see how big is your floor, if there is any other SM (possibly with flipped normals) in the way, if it was imported from a DCC without freezing transformations, etc.