I’ve been trying to wrap my head around Blender’s lighting model. Specifically how it relates to real world units. The large piece I’m seeming to miss is how to validate a test scene to ensure that in-engine units correspond to real-world units.
For starters, the only currently-supported unit type in EVEE is watts. That’s fine and all, but it does make validation difficult, as I really need to convert that into an actual luminance unit like lumens or candelas, and the math to go between them involves multiplying the watts by luminous efficacy. If I assume a typical incandescent light bulb has an efficacy of between 2% and 5%, I can do something like:
watts * 683 (maximum possible luminous efficacy) * actual efficacy (varies by light type)
watts * 683 * 0.02
That gets me lumens. Great, now I can go between lumens, candelas (lumens/4Pi) and watts. The problem is that if I want to specifically assign a luminous power, I can’t, because I’m assuming what the efficacy is - I can’t directly assign it, by, say, telling Blender what kind of light it is. It’s total guesswork. There’s no point in using watts if I can’t tell Blender how efficiently those watts are turning into luminous power.
Second problem. The camera doesn’t use EV for exposure. So not only can I not tell what the luminous power of my light sources are, I also can’t expose by eye because I have no real-world exposure to mess with. There is basically no way to light photometrically that I can see with EVEE at the moment. And that’s a problem for scenes that need to balance high dynamic ranges - outdoor lighting combined with artificial lights, for example.
More random problems:
- The sun has no “lux” unit so I can’t set it to real world values
- The skylight has no luminance (cd/m^2) exposure - again, can’t use real world sky luminance
- No in-engine lux/nit validation tool to see what values are actually happening on the render buffer. The best I can do is do a render and look at pixel values and guess at what they correlate to, hoping they weren’t transformed in some way.
A benchmark I’d like to do is placing a single, one candela point light, one meter above a diffuse white surface, and see if I get one lux of illuminance on the surface, but I can’t get anywhere near a validation scene like that with the above problems.