Realtime GI passes through walls

So scoping out the real time GI stuff and it seems inconsistent when you want to make rooms actually dark. I set up this experiment with 2 rooms next to each other with no openings anywhere. If you put a light in the room on the left (shadows are turned on), it will light the inside of the room, but then the light also passes out of the room and into the room next to it. Here is the set up:

Inside the box on the left:

Inside the box on the right, with light leaking in(!):

So you can see the light both on the outside of the boxes as well as inside.

Here is what it looks like with baked light only, which turns out as one would expect:

How can we prevent this from happening? (Note the inside and outside of the boxes have no connected verts and the box on the right is even separate objects between the inside and out)

Look at your own first screenshot, read the warning text on the right.

1 Like

Well yup, that would explain it. Does this make it impossible to have a dark room next to a light room with the real time GI? The room on the right does indeed turn black when the bounce intensity is turned to zero. Also bounced light seems completely unaffected by culling settings.

Use emissive surfaces instead of lights.

Do you have an example of what you mean here

The Standard Shader Material has an Emissive entry in it. Create a Plane or Cube, apply a new Material to it and tweak the Emissive value as you wish. There you go: an emissive surface :slight_smile: You could probably use an Area Light, though…

Yeah, because I was also experimenting with making the walls themselves emissive.

Emmisive materials are having strange behavior. It seems to work in the editor Scene view in real time, but when going into play mode, editing the brightness or color does not change the real time GI.
http://gfycat.com/DazzlingSpanishFlounder

Light probes were also behaving strangely as well.

Okay never mind, it appears you have to use the DynamicGI.SetEmissive(renderer,Color.white); function like so. I don’t know why this is so unintuitive, but works! That said, is there a way to reduce the fade time on the GI to be more snappy

The ‘fade’ time I would assume is dependent on how long it takes the light to propagate through the precomputed links. Guessing it’s directly dependent on your GI complexity / resolution.

Also emissive shader thing works slightly better but I’m still experiencing a lot of bleeding into other rooms if the walls are close by:

I would imagine this is dependent on the realtime gi resolution? but not sure. Does anybody light scenes well only with emissive surfaces?

Okay it seems better at 30 resolution, but still not great…

Also I imagine baking at 30 resolution will be rather difficult for large scenes. This is just two boxes next to each other.

Seal your room from the outside and give your walls thickness.

Here the rooms are fully enclosed with thickness and separation and the light still bleeds through plenty

Also, for goodness sake I’m get light bleeding on a just statically baked lightmap with 1 light bounce and a point light and a 1 foot thick wall at 30 res

1 Like

Old thread, but I’ve been experiencing the same bleeding for all of my static geometry, even if they are within the same mesh. I’ll try out the ideas in this thread. (BTW I love intruder so much, thanks Mr. Storm!)

if you have GPU to spare, try out SEGI, no leak, no bake or enlighten funny business.

I try to avoid using a single cube for a room. Instead, import a model which has the walls, floor, ceiling all as separate meshes. There’s too many issues that happen when you try to treat all of these as a single cube: from GI issues to OC issues.
Also, if you add a lightmap static plane between the two cubes, it should block all GI flowing between the two cubes.

Hi, i’m having similar light leak issues (with directional), did anyone find any solution to this problem?

Merge roof and wall vertexes together to fix completely this issue.
Maya: Mesh Tools->Merge

Reference