How to stop DirectionalLight + SkyAtmosphere + SkyLight from leaking light in closed rooms

After adding DirectionalLight, ExponentialHeightFog, SkyAtmosphere, SkyLight and PostProcessVolume, the world looks really nice (…after changing some values :sweat_smile:), BUT now you have a problem, the light coming from the sun passes though objects, and instead of being pitch black you get this:

Even tho you are in a sealed room:

One way to fix this problem is to not have SkyLight, as without it inside the room is pitch black, but this also has an ugly side, instead of having the more realistic effect as in the image above with the outside box, you get this:

So now the question is, how can you still keep SkyLight and have that more natural light effect when “outside”, but completely block the sun when inside a closed room?

1 Like

Have you tried turning auto exposure off?

make sure your lights is set to cast shadow. I feel like your skylight has “cast shadows” unchecked.

If your lights are set correctly make sure your mesh is set to receive shadows.

Are you using Lumen? Are the lights completely dynamic?
I ask because if you have lumen disabled, this is expected behavior from a fully moveable skylight.
If you’re using lumen, then check the lumen scene in the debug view to see if the walls are being drawn.
If they aren’t, then they’re probably missing distance fields or something of the sort. Make sure that setting is enabled in the static mesh

If you mean Metering Mode, I have that set to Manual and changed the value for Exposure Compensation.
What I noticed is that even if I disable Post Processing Volume I still have that leak, and only if I completely disable SkyLight I don’t have any light inside that makeshift cube for testing.

No, it has it enabled, also those “cubes” have it also enabled.

I only have DirectionalLight as light source in that situation.

And it is casting shadows

No, it is way too expensive for a “general” game.

Like I mentioned above for that quote in this reply, I have only DirectionalLight as light source.

As for all replies, thanks for them, some parts of the engine I don’t really know how to use, and I get in these kinds of situations where I’m asking for help. :sweat_smile:

If you have any other ideas just let me know and I’ll try them!

1 Like

Uhm to be honest it feels and you should have some kind of global illumination in your scene. So I don’t think maybe you don’t have one source since you mentioned before you have skylight. Skylight is a light too.

Can you just check if your sky light has cast shadows enabled.


You can tell if it’s auto exposure, as it will be totally black when you first put the camera in, but then adjust over a few seconds.

I point this out again, because Epic have made AE almost impossible to turn off, what with the PP not being the same on the camera as in the level etc.

It’s not auto exposure, guys. It’s 100% because they’re not using lumen. It’s because a dynamic skylight (without lumen) illuminates everything evenly. It’s the same as UE4. It doesn’t do any traces or anything so it can’t tell which areas shouldn’t be lit by the sky and which areas should. It’s a fundamental limitation of the dynamic skylight (without lumen).
If you want dynamic lighting without lumen, you’re going to have to suffer in quality. If you don’t need dynamic lighting, then bake lightmaps. Quality - Performance - Iteration time. Pick two