Lighting Scenarios and World composition don't work together

If you have a huge world with World Composition and you want to switch lighting scenarios, you’re basically screwed because UE stores the light data in the lighting scnerio’s build data. Even if you make small levels of 250 or 500 meters only, try to build a light level for 30 or 40 of those levels and see the size of the one and only build data file on disk. Very soon it is unmanagable let alone try and transfer that to a player over the internet.
Why aren’t light maps stored per level? I thought that was the idea when build data files were introduced, but with light scenarios it all goes out of the window.
I’m trying to make a large world where it’s day when you’re in the wild and night whenever you enter a city but I haven’t found a way to do that with static lights and I have been on it for quite a while.
If’ you’re championing static light over dynamic light, you need to make it so that people can actually use it, Epic!

Baked lighting is not a good solution for large maps, if only due to the amount of disc space that would take up for the lightmaps

There’s a use case where the game itself isn’t “open world” but uses a seamless series of levels, like the Dark Souls and Metroid Prime games, glued together by loading doors/corridors. For a game where you only ever see small and somewhat enclosed areas, not being able to use static lighting is a bummer.

@Wallenstein @darthviper107 @Manoel.Neto

​​​​​​​I’ve just found that they kinda work together.

I have a large world with some buildings here and there. For the outside I used distance field based movable sun and sky (csm, df shadows, dfao). It looks great outside but not so great inside.

So, I pulled my building into separate sub-level inside main world composition level, opened it, created a lighting scenario sub-level in the same folder, put a stationary sun and sky in lighting scenario level and built the light. Then opened the world main level, created a “no load” layer in world composition, and assigned lighting scenario to it. Finally, created a trigger volume inside the building which will load the light scenario. I can make a video if it’s not clear.

There is the video showing it at work:

At the end of the video the trigger volume was a little bit short, so you can see light scenario unloading and loading again.

I don’t know if this is supposed to work like so or it’s some kind of unexpected behaviour and it will bite me somewhere later.

Edit:

More detailed video

​​​​​​​Combining dynamic light and built light scenario and world composition in UE4 (experiment) - YouTube

1 Like

What would happen if the buildings doors and windows were opened by the player ? Not that case in your project in the video but the baked light would become wrong with the outside dynamic light being the right one affecting the environment inside any room, it should need to mix and be adjusted realtime with any artificial light inside any room… Same goes if the buildings were being destroyed with physics like the upcoming Chaos APIs (or using right now the legacy PhysX ones)… the baked light would become all wrong.
Your solution can work with games that don’t let players have a lot of interaction with building objects and the buildings can’t be destroyed. Indeed few games nowadays make use of destructibles although with Chaos APIs that might soon change at least for the ones made with UE4. But opening doors and windows is not that uncommon.

The goal is not to have a dynamic GI, the goal is to make baked static light work with world composition, when you have a dynamic light outside buildings and baked light inside. Of course it won’t work if you open doors of windows.

And that is the reason why it works only if the game doesn’t allow players to open doors/windows and the buildings aren’t made of destructibles. In those cases you can’t escape having to rely on dynamic GI. If only Epic Games would improve dynamic GI anyway … they added various better dynamic GI algorithms that ended up either being just unstable or then removed in later versions and so unusable.