Advice for dynamic lighting a level

I’m building out a level (for now, I’m testing on a small single house mesh) with no precomputed lighting (all lights must be able to turn on/off completely [including indirect], and the directional light moves). I’ve been experimenting with different lighting techniques for quite some time, but I’m not completely satisfied with anything I’ve come across. I know this is a broad topic, but advice is appreciated. I’ve tried the following:

  1. Simple stationary and movable lights. With Shadow Resolution increased until leaking is minimized and Shadow Bias at the minimum value that does not produce banding, I’m still getting significant light leakage. In the attached image, the vertical lines are walls (planes with opposite normals), and you can see the light leaking into the unlit room on the right. The wall is 10cm thick - I suppose I could thicken all walls to simply absorb the leakage, but they need to maintain fairly realistic proportions.
  2. Ray Traced Distance Field Shadows. I love how these look…in some cases. In others, they’re downright terrible (such as near any sort of shadow-casting geometry, such as a lamp). They still cause pretty huge leakage, for some reason normally where walls meet the ceiling.
  3. Combination (2 stacked lights, one DF and one normal). This typically produces very nice shadows with careful light placement, but the leaks created by both methods stack up to create the worst of both worlds.

What would be the best way to address the issue? Is there something I’m missing, or should I just thicken all the geometry to absorb leaks?


Hi Meowstopher, you could try using a skylight stationary to bake shadows inside of your level and use static GI for the inside of the house. You can tweak GI intensity from postprocess, in order to turn off your static lights.
Do you need a directional light coming from the outside?
The skylight bleeding can be avoided enveloping your level inside a cube or something similar.
To avoid directional light bleeding, if movable, try contact shadows.