[REQUEST] Fallback option for Stationary Lights to fully static shadows (ArchViz)

Hey guys,

I am lately working on some ArchViz stuff and stumbled upon something that could be a huge problem for more professional architecturel guys as well as people who want to go a bit more crazy with lots of lights.

I started with experimenting how I can nicely do Lights that dont need a lot of individual emissive tweaking for the corresponding meshes. What I came up with uses basically a subsurface material on the light bulb or on some panels (or other shapes…think of bubble lights etc) but still has one sided geo. So when I put a stationary light inside, the shape gets illuminated and the light nicely casts through it and lights the surrounding scene.

The problem now is, I really need the sss material illuminated and soft baked shadows, however, if you have more complex shapes that need lights like this closer together and more in number, you will definitely run into the stationary light overlap limitation.
Switching to movable gets rid of the issue, but doesnt provide soft shadows that blend well with the high quality environment and costs too much performance (imagine 20 lights like this in a room).

Switching to static would help, but since the static light has no dynamic component, it doesnt trigger any reaction on the sss material.

So, I know that stationary lights switch to a dynamic override as soon as the overlap limit has been exceeded…but the question is, wouldnt it be possible to have a special flag to enable that the light instead casts static shadows while maintaining the ability to react with the sss material?

Or might there be a totally different way of doing this in general?^^

Here are some example screens of the issue (and these are only two…if you look at some nice vray interiors there would be way more)

Wall Unit with the Lights using fully static lights:
591e0e00f4dfbdcdb5ce8ce62c946c034a7c992f.jpeg
As you can see…this arrangement needs 5 lights. The wall unit itself can not really be split up more and you also have the wall behind it.

Here you can see how the sss part doesnt react to the static light:
e310eb9aa28ef3eafc3cb3176bfcae411f1941d5.jpeg

This is a version with a dynamic light. Stationary looks the same but with soft shadows. Here the sss material reacts to the light:
3dd5fd04aff6209538c762f51e480ce3e8a96182.jpeg

It would be really cool to have an option for static lights to affect sss. Here are some other examples for a nice use for this:


Would be cool if you have some ideas on this :slight_smile: The proposed feature was just what came to my mind first, but its probably way more complicated :smiley:

Cheers! :slight_smile:

Right now SSS stuff doesn’t work with static lighting at all, we might be able to improve that in the future.

If you ever put an area light source inside some shadow casting geometry, there are going to be some problems. The Lightmass algorithms are setup to handle area lighting between the light and the receiver, but not inside the light source. Probably what we are going to have to do in the future to solve this is to couple the light source mesh together with the light source, that way we know what part should be ignored during the shadowing.

It would be possible to switch to static lighting for overflow lights but I don’t think it would be very useful. One of the defining properties of Stationary lights is that you can change their brightness and color at runtime, if you can’t do that then it shouldn’t be called a Stationary light IMO. Note that right now, you can make them switch to fully lightmapped yourself by changing the overflow lights to Static.

Thanks for the reply !

“It would be possible to switch to static lighting for overflow lights but I don’t think it would be very useful. One of the defining properties of Stationary lights is that you can change their brightness and color at runtime”
This is not needed for static archviz. I just need soft shadows that are baked but a light that still triggers the sss. I wouldnt mind having a special advanced flag for that, so basically normally, it switches to dynamic, BUT when you activate that special archviz box, it bakes shadows while having the direct light component still dynamic.

“Note that right now, you can make them switch to fully lightmapped yourself by changing the overflow lights to Static.”
But then its like using static lights right from the beginning and I wont have a reaction on the sss material :wink:

Sorry, I know this seems to be a super special weirdo case :smiley: But I could imagine that it would indeed be very beneficial for archviz, since reality doesnt care about stationary light overlap :stuck_out_tongue:

This would be similar to the Toggleable lights from UDK. The shadows and indirect lighting would be baked, but the direct light would still be dynamic. This was great in UDK since you could have real nice baked area shadows from lightmass, but still have a dynamic light source that rendered out correct specular and normal information on meshes instead of baking that stuff down into the directional lightmaps.

The draw back of this was shadows cast from toggleable lights wouldn’t affect dynamic objects which created a bit of discrepancy. However in your arch viz case where the majority of the scene is static anyways that would be fine.

Actually, baked shadows from toggleable lights can affect dynamic objects. Toggleable lights cast so-called ‘pre-shadows’ on dynamic objects when you unlock the ‘Allow Pre-Shadow’ checkbox in light properties. It can be seen only after modifying the .uc file, though. *(And honestly, I don’t remember the name of it).

Even if that sounds neat, I actually dont care that much about moving actors since it will be mainly archviz stuff where you just have a camera moving through the scene or an invisible player character. So I really dont need support for that. That was also the idea behind my question, because in this case, its just not needed :wink:

It would also be very beneficial if the stationary directional light would allow for a variable shadow penumbra, but sadly thats also not supported :frowning: