Light leak at edges inside room and irradiance volume issues

Thank you sooo very much for sharing this valuable data. I feel I stroke gold here. Thank you. Was driving me nuts, this issue. Now I can go back to my original project. Life saver!

Hey thank you this is very helpful!

I tried the worklfow given by @eklein and I see now that you are talking about issues with shadows (shadow-maps).
Just want to show that there is also an issue with screenspace:
Screenspace

It shows a floor (with thickness) and a wall around it. You should see at the red arrow top-right the wall reflected on the floor, but because that part is at the edge of the screen (top, right) the screenspace doesn’t pick that up. In this particular example you don’t see it in the render, but it renders show such effect as well under certain circumstances (angles). Also you see the white edge on the right, also caused by the screenspace not picking up the wall in the reflection on the floor.

The workflow that I posted is about light leaks caused by incorrect shadow maps. If you turn off “Screen Space Reflection” and “Free Lighting Cache”. Do you still see the white line artifacts? Is better if you post the problem scene.

For dealing with the limitation and artifacts of screen space reflection since it can only use reflection of what is visible in 2d space. Is probably better to start another thread about solving these problems. To have screen space reflection work correctly for floors and walls you may need to add reflection probes. See my solution in this thread Eevee Reflection Clipping.

3 Likes

Hello, I came across something which could be considered as a bug, but I wanted to share in this thread.
I opened rather old archviz showcase scene from blender.org. I wanted to test irradiance volume probe on a simple scene as this one, but I have noticed lack of color bleed. Even after replacing the irradiance volume objects (which seem to have have some visibility bugs) with the new one of the same size and density (from the current daily build) problem persisted. After the indirect light bake, there was just different intensity of the red floor, which I put on purpose, in order to make red light bleed more prominent. So from perspective of irradiance voulme probes, problem of light bleed was not cause of new/old volume probe objects. I tried appending all geometry objects into a new scene, but problem persisted. Than I came to the conclusion that the problem is caused by some (hidden data?) stored in the mesh or object. Soon as I joined the floor object to the newly created plane object, the light bleed worked fine! The scale of the floor was at 1.1.1. Other mesh and object properties seemed normal, but still inheriting object data from new object fixed the problem! The question is, what is the hidden attribute I am missing? If this problem remains than any imported objects from other scenes (2.79 or 2.80) could carry some bug which could not be even apparent to us but would affect the proper color bleed.

This gif shows difference of default indirect light bake with the light bake with floor joined to the new plane object: (notice the correct bleed on the gray chair on the far left, in the second case)
light_bleed

Now, this is more emphasized version of the same case, just with the more prominent floor color (second case with the floor joined to the new object has the light bleed):more_obvious_light_bleed

And if someone was wandering if the problem was in the probes itself, this is the same floor color with the newly created irradiance volume probe (color bleed, and color of the floor itself is interpreted differently, but other than that, problem of the original floor object lack of color bleed, seems to be same):
more_obvious_light_bleed_newIrradianceProbe
If I had to render this scene “correctly” in EEVEE in this fashion, I would probably have to write a script which would join all existing objects to some null objects. I hope that the cause of this strange behavior will be demystified for the sake of all possible sources of importing and appending models to the new version of Blender and making sure that they would work as expected in all cases.

I think, that with point lamp You don’t get any bounce light when baking. I tried to change color of world sky, but the sun from point lamp didn’t get on any wall…

Sooo… Are these light bleeds and weird artifacts considered a bug and will be fixed, or is it just a limitation of the engine that we’ll just have to live with?

Ever played a video game ? That’s the limitation of such engines

It is a bug. I think that on devtalk forum is concentrated on crush reports for the time being? Here I imported the floor to a fresh scene, made a copy of the floor object and joined that copy to an empty new object. I put one irradiance volume over two objects and put the spheres to make the irradiance effect more clear. One sun lamp lights the scene, so coincidence angle and intensity of the light is same across the whole scene. The material is same on both objects

1 Like

See the new attached image. All settings were the same in the example I have given… so there was no difference in the lighting in both cases. No question it is a bug

I could not reproduce it. Do mind sharing your scene.

Laudor,

I could not reproduce it. It could be an issue with your settings for irradiance volume, reflection, material or other. Maybe can pm your scene. Here my test.

Interior with red floor.

Interior with red floor join with white square.

Thanks for the test. It helped me to look broader. I re-downloaded the scene and realized that most of the objects are set as non-renderable! Now it is so obvious that it is embarrassing :smiley:

1 Like

Excellent guidelines, ty.
I would add the following note about emitter shaders:
I discovered that Emitter Shaders (with high intensity values) cause light leaks, even though they don’t contribute to apparent lighting in Eevee!
I had transferred some of the spot lights models, including emitter shaders, from work with Cycles. When transferring to Eevee I substituted the emitters with spot lights (or area lights, depending) but left the emitter shaders intact in the model. That was the cause of light leaks and weird over-exposures (despite not actually producing shadows and other proper lighting effects)

View the whole scene
Only after the corrections above, was I able to get renderings with the default exposure=1 and gamma=1, whereas up to that point I had been adjusting to get the perceived light/dark balance.
(Emitters were doing serious damage)

Emitter shaders do contribute to the Eevee lighting it only affects indirect lighting when baking of irradiance volume probe. I will use them in combination with spot lights. See example on my Classroom scene tutorial in the ceiling lights fixtures see classroom tutorial.

Emitter shaders and all type of lights can cause light leaks even when not directly visible like behind wall when use with high values.

This is an update on the light leaks settings for Blender 2.81. The ESM and VSM shadows methods are now replace internally by PCF method which is more accurate and has less settings. This method performs better than VSM method for light leaks.

Individual light objects do not have “Softness” settings anymore. Soft shadows are only enable by the render property “Soft Shadows”. The amount of render samples controls the softness of the shadow.

The PCF shadow method also requires more rendering samples of at least 256 to get fully soft shadows.

Lights leaks are still possible. I still recommended:

  1. Make sure that interior walls have thickness.
  2. Enable Render->Shadow setting “High Bitdepth”.
  3. Change the Light object “Bias” setting to 0.001.
  4. If light leaks still occur add contact shadows.
6 Likes

Thanks Eric, very helpful!