I have run into a problem during my rendering and created a very simple scene to illustrate it.
All is done using Blender 2.79 / Cycles / Filmic.
I have a tiny light with very high intensity (a bulb filament, colored yellow) and on the other side geometrically big light with very small intensity (dark window, colored blue). The lights are icospheres with emission nodes in their materials.
Problem: The rendering depends very much on the scale of the lights.
If the lights are the same size, the intensities are 10 000:1, the result is as expected:
However, when the right dim light is scaled this happens. Everything else, including the render settings is identical:
This happens, when render samples are increased 100 times (!):
What I think is happening:
Cycles is sampling light paths randomly, but gives precedence to the bigger light sources, even though their intensity is small. At first I thought that Cycles has no other option, as it doesn’t know the intensity in advance and has to calculate it using the Nodes AFTER it has found it and hit it with some light ray.
However, there is a difference if the big light has set an intensity of 0.000001 and 0. The first case results in the problematic scenario on image #2 (though the big light is now invisible and has no effect on the scene). But the second case is results in flawless scenario #1. This means, that Cycles knows IN ADVANCE that some light is not useful and can optimize it out.
So the question is:
Currently Cycles uses [Light geometric size] in its ratio calculations. It might be better to use [Light geometric size * intensity]. Is it possible to turn this on somewhere? Or file this as a half-bug? Or use some other render setting I don’t know?
Here is the .BLEND file I am using.