Page MenuHome

Indirect Lighting renders on all Render Layers
Closed, InvalidPublic


There is (still?) a bug with indirect lighting though in 2.77 abf6f08 (Win7 x64 Pro, 32gb, i5 6600).

The linked file has 2 cube and 2 render layers, one for each cube.
Layer 1 has a diffuse cube that's being illuminated by a sun lamp and bounces it's indirect light onto the ground.
Layer 2 has an emission cube that's bouncing it's light onto the ground.

In the compositor, which should be open after loading the blendfile, is a splitview for putting the render layers 1 and 2 side by side to show that both contain all indirect light eventhough the cubes are only rendered on their respective layers.

To be clear about the result I'm expecting and not getting: by having the diffuse cube on the 1st (left) layer am I expecting blender to only render this cube's indirect bounced light and not also the indirect emission light of the cube from layer 2 (right), and vice versa am I expecting blender to render only the emission cube's indirect light on layer 2 (right) and not also the indirect bounced light of the cube from layer 1 (left).

So I'd say that indirect lighting is indeed not respecting the visibility of the layers although a bit differently than the original reporter described.

Event Timeline

Bastien Montagne (mont29) lowered the priority of this task from 90 to 50.Apr 21 2016, 8:56 PM

As far as I can say, issue is that ambient/occlusion/indirect is generated for each mesh in pre-process pass (make_occ_tree(), called by RE_Database_Preprocess()), which afaict is totally render-layer-agnostic (i.e. is computed once and result are used by all layers during actual rendering). @Brecht Van Lommel (brecht) should know better, but think if this is the case we cannot do anything really, this is design issue (and since we want to replace BI with RT OpenGL engine in the end…).

Brecht Van Lommel (brecht) changed the task status from Unknown Status to Invalid.Apr 21 2016, 10:50 PM

This is by design, for the same reason as I explained in the other task:

A render layer will include shadows, ambient occlusion, reflections and indirect light from all scene layers. This is done so that all the layers can be composited back together to reproduce the same result as if everything had been rendered in one render layer. If indirect light from objects on other layers was not included, this would not be possible.