I also pretty much have light leaks on every interior project i work with, but its very random, sometimes it magically works and sometimes not, seems to be depending on a looot of factors.
any progress on this issue?
Iam testing 2.8 w/Eevee and have similar issues-both with irradiance and point light /see l.fixture over entrance/,
linear light neither seems to work as expected-only in the center of the wall:
Model was actually imported from SKP but I checked normals and doubles and not quite sure whats still wrong…
for now all I can say is that 90º acute angles are not working, light leaks.
Try making a bevel with 2 or 3 subdivisions on each corner/edges where you see light leak.
Another thing it seems to be affecting is light clamping.
That in addition.
I´ll be enterning to model a room in some more hours, I´ll report back how it id using these things as of current DD (daily dev version).
To me it seems that the screen space reflections are not working (properly) under certain angles no matter what settings you use and how big/small you the lightprobe scale (Reflection Cubemap).
There is not a really solution to it as only trick around. Maybe take the shot from another angle. (AO might hide a bit, but then such an ugly AO is not what you want either and doesn’t really solve it). When using a lot of roughness (0.7+) in the materials the flaw in screen space reflections is not that obvious.
Bevel objects (At lightleaks, edges) like you are saying doesn’t seem to affect anything so far what I’ve tried.
So what I think is that there will be a solution later by devs (improving Reflection Cubemap). Meanwhile I consider only using EEVEE for scenes/shot that are suitable for it, otherwise cycles.
So far I would say;
- Use more roughness in materials, or use cycles.
- Take shot from other Angle
- Is more AO an option?
Settings in Screen Space Reflections: (Does it help?)
- Edge Fading < 0.075
- Max Roughness > 0.5
- Thickness > 2m+
The light leaks are caused by incorrect shadow maps as has being discuss previously. Biggest issue is that Blender has poor default shadow values for interior scenes. See house scene leak fix below. Blender file HouseLightLeakFix.blend (2.5 MB)
This process should fix light leaks:
- Make sure that all walls have some thickness.
- To concentrate on fixing shadows and their problems. Disable “Screen Space Reflection” and “Free Lighting Cache”.
- To render nice smooth soft shadows under Sampling increase “Render Samples” to 256 or even 512.
- Under Shadow settings change:
“Method” to VSM.
Enable “High Bitdepth” and “Soft Shadows”.
Cube Size of 512px should be okay. Unless their is small size geometry or thin walls might need to increase to 1K or 2K.
- Select the Light object the light type Point is working the best. Change the Shadow settings:
“Clip Start” change to 0.1.
“Softness” change to 0.
“Bias” change to 0.001.
“Exponent” can leave the default of 2.5.
“Bleed Bias” to 0.1.
- Enable “Contact Shadows”. Change this settings:
“Softness” change 5.0 except for sun light leave at 0.2.
All other setting can be left at the default values.
Sun light are more difficult than the other types of lights to control light leaks.
Here are additional settings when using a sun light:
- Make sure the sun it’s pointing towards your interior.
- Use Cascade Size of 1024 if needed increase it to 2048.
- Now change the Sun properties.
a. Sun radius size should be kept small a value 0.2m or the default setting of 0.1m is even better.
b. If their is still light leaks increase the “Bleed Bias” in steps 0.1 until the leaks are gone.
Another important note is while learning how to setup all the Eevve settings do a Cycles render to use as a comparision.
Below is the original interior scene with it Cycles and Eevee including irradiance and reflection probe.
Eevee with this Blender file:LightLeakFix_eevee_c.blend (1.8 MB)
Below is a good shadow testing scene with Cycles and Eevee including irradiance and reflection probe.
Eevee with this Blender file:ShadowTest_eevee_c.blend (3.8 MB)
The Cycles scene was render to 2048 samples it was taking over 5 and half minutes. The Eevee scence was render in less than 3 sec without noise and all the render settings in high quality.
Edited: 1/2/2019 added sun light notes.
Edited: 3/20/2019 added change to contact shadows.
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:
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.
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)
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):
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):
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
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.
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
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)