3
$\begingroup$

The Context

I wish to estimate approximate amount of lighting received by surfaces in an interior scene in lux units providing I use similar to real world values in my lighting in lumen units. This would be very convenient for interior design since I already model the scene and make an effort to have somewhat realistic materials in the environment hopefully somewhat helping with taking secondary light bounces into account.

The Scene

The typical scene for this would consist of an interior lit by Blender's Spot lights for directional light fixtures, Point lights for light fixtures that have a light bulb and Area lights for LED strips. The lights would have some temperature defined by Black Body node in their shaders. Natural light from the outside would be ignored for this purpose(turned off). Cycles render engine is used. Light clamping and denoising are disabled and way more than enough of light bounces are set for everything(32). Reflected caustics are turned on without expectation of any accuracy.

My thinking

I assume light intensities in lumens are measured(by light source manufacturers) for wavelength of around 555nm. I assume this is close enough to sRGB green that is supposed to be around 549nm. I also assume these inaccuracies are not significant for my purpose.

Based on this source I know that the unit of Blender's point and spot lights is Watt per square meter per steradian.

My thinking is similar as described in this video and this answer: I want to enter light source strength values in lumens, so for Point lights I divide the values I have in lumens by 683.

It gets a bit tricky with spot lights and area lights since the output is limited by the solid angle limited by Spot light Spot Size and Blend properties and by the direction in Area lights and [beam] Spread property. I would assume manufacturers of light sources provide full light output in lumens in all directions the source emits light so I think I need to take that into account. I assume I can just multiply my values by 2 for Area lights with 180° spread since if they were shining in all directions that would be twice as much light as when they are shining only in half of the directions and for spot lights I need to multiply my values by the ratio of full 360 divided by the Spot Size.

Blend property seems to be the trickiest. I have tested it by shining a spotlight onto a fully white matt diffuse plane and measured the render output before color management. I rendered a strip from one end to the other of the area lit by the Spot light and blurred that completely in compositing to get average value of all the lit area.

enter image description here

I adjusted the light so I get 1.000 value with Blend at 0 and tested Blend values increasing by 0.1 up to 1.0.

enter image description here

The results are a bit confusing: 1, 0.98359, 0.95629, 0.92789, 0.89847, 0.86789, 0.83595, 0.80239, 0.76678, 0.72842, 0.68574. They don't seem to be completely linear:

enter image description here

I am not sure if the testing setup is any good. Maybe I misunderstand the relationship between the strength of the light and reflected values by Diffuse shader, but I think it makes sense that this property would be coded in an arbitrary way since there are probably no standards in blending edges of spotlights.

In any case, I assume this is not going to be very accurate so I just approximate the effect on light strength and use this to input lumens into Spot lights:

(lumens / 683) * (360 / Spot Size) * (1 / 0.69 * Blend)

Lumens for LED strips are usually provided per meter so that is also taken into account when dealing with them simply by calculating brightness for the whole length of the strip.

So now I have the scene lit. I would assume if I had exposure set to 1 and had a completely diffuse 100% white plane(only camera rays enabled so it doesn't interact with environment) in my scene that if I now render it, the plane would reflect all light it receives and if I sample it in the render result before color management I would get Watts per square meter. Lux is lumens per square meter, so do I just need to multiply the value of the green channel by 683 to get lux value at that surface? radiance of that 100% reflective diffuse surface and to get irradiance of it I would need to multiply it by pi and then multiply that by 683 to get illuminance in lux. Is that correct?

Problems I know about

  • I understand that Blender and Cycles are not designed for this purpose and some phenomenon including light bounces in the scene may not be calculated accurately especially caustics.

  • I am ignoring uneven spatial distribution of emitted light. At the moment I am not considering using IES data. I take it that these inaccuracies are not too relevant for the purpose. The goal is very approximate estimation that would be better than simply guessing.

  • There is always a problem of accuracy of data provided by light source manufacturers. That's out of the scope of this question.

  • There is a problem of dealing with light of different temperatures. I am not sure how to correctly deal with that at the moment. Since the goal is usually to have same temperature light in an interior, hopefully that is not a huge problem.

  • Secondary bounces depend on the materials in my scenes and the calculations of them in Cycles. The render engine as well as shaders are not designed for this. There is also nothing scientific or accurate about the image or procedural textures, colors and shaders I use. I know that accuracy is not to be expected here. I am hoping it might be better than simply "Hey, I am not sure if these lights are going to be strong enough, maybe we need a few more" or close to the calculations done by some employee of light fixture distributor who simply does not care and uses random grey walls and approximate model of the space done in rush even if in more accurate software like Dialux to do the calculations.

The question

I do not have solid understanding of the physics involved here. Are any of my assumptions wrong? What are the problems with this approach?

$\endgroup$
5
  • 2
    $\begingroup$ I will of course award it a maximum bounty if I get a meaningful answer, since this is obviously a bit harder than a typical question on BSE. Hopefully you guys still see it as being related to Blender enough not to close as off topic, even though I realize huge part of it is more related to physics and lighting in general. The problem is still very specifically inside Blender the way I see it since I need this specifically in Blender Cycles. Hopefully this might be useful to others as well. $\endgroup$ Commented Mar 14 at 13:27
  • $\begingroup$ OK, so compared to Dialux if I use the same IES file and similar setup, my workflow doesn't work. Curiously the result is around 13 times less and 1 candela = 12.57 lumens. This might have something to do with that or it's just a coincidence. I don't understand the physics, so I'll just do more tests. $\endgroup$ Commented Mar 14 at 15:47
  • $\begingroup$ My assumption that a white diffuse shader reflects all the light it receives was definitely wrong. If I place an area light with 0 spread over a plane with white diffuse shader with 0 roughness, it reflect light strength divided by pi. Multiple importance sampling for the light changes the value as well as roughness in the diffuse shader. $\endgroup$ Commented Mar 14 at 17:34
  • $\begingroup$ Still no response about that? I think this could be about the curve you're showing: what is the purpose of it? How it is done exactly? $\endgroup$
    – lemon
    Commented Mar 21 at 20:17
  • 1
    $\begingroup$ It was just to determine how much light Blend property of Point lights take away. I suspect it isn't the way I thought and Blend at 1 just makes a point light exactly half as bright as 0. I'll test more eventually. At the moment I think this should work, and I think I get somewhat reasonable results based on my experience with actual interiors. But I know not to trust myself on this. I would like to test it compared to other software specifically designed for this and with real world if I get a chance. I'll eventually answer with my findings if no one else does. It's long term problem for me. $\endgroup$ Commented Mar 21 at 21:03

0

You must log in to answer this question.

Browse other questions tagged .