I am fairly new to Blender, trying to do some simulations of a camera system using Cycles.

I have a simple scene with a plane, a camera and a point light. With a Python script, I vary the light intensity from 0 to a lot of Watts, I render a small image and I look at the numerical value of the central pixel.

When I save the output as EXR, I obtain a linear relationship between the lamp power and the pixel value (which, by the way, seems to be radiance in W/(m2*sr), see EXR output units). The result is illustrated in the following picture:

enter image description here

Notice how 0-intensity light produces a small non-zero value. The exact value is 0.0438.

Also, if I save the output as a PNG file, I manage to obtain an almost linear response, by setting the following Color Management properties:

  • 'Display device' to 'None'.
  • 'Look' to 'None'.
  • 'Gamma' to 1.
  • 'Sequencer' to 'Raw'.

(Note: with other values, in particular for 'display device' and 'sequencer', I get a nonlinear response, as if gamma compression was being applied).

The result is the following:

enter image description here

As expected, values saturate to 255 for high light power, but for 0W power we get a pixel value of 11, even though the EXR radiance value is 0:

enter image description here

So, the question is: what could be the cause of this and how to get a linear response, that is, constant slope and pixel value equal to 0 for 0 light power?

A possibility I thought of is that there is somehow another source of light, but I have only put one light in the scene.

  • 1
    $\begingroup$ By design, when you save as EXR in blender, you are bypassing the color management settings, so changing them will have no effect. Exr will store data correctly in scene referred values, in a linear scale. PNG (or any other display referred format) will use the color transforms (The sequencer applies only for information coming from the VSE, not from the elements on the 3d scene, so that setting is irrelevant for your investigation). $\endgroup$ – susu Oct 20 '20 at 16:21
  • $\begingroup$ Try downloading and installing the original filmic blender from github.com/sobotka/filmic-blender , you will shuld be able to get a proper "Linear Raw" view transform. $\endgroup$ – susu Oct 20 '20 at 16:21
  • $\begingroup$ Thanks susu, I tried the original filmic Blender but it didn't change. Also, I udpated the question to show that, in fact, the small offset is present also in the EXR output. $\endgroup$ – Milo Oct 21 '20 at 14:13
  • $\begingroup$ Probably a silly question, given your thoroughness.. The scene's World color is set to 0? $\endgroup$ – Robin Betts Oct 21 '20 at 18:21
  • $\begingroup$ @RobinBetts: Not silly at all, as that was indeed the cause. I dind't know that the world can emit light on its own :-). If you transform you comment in an answer I'll be glad to accept it. $\endgroup$ – Milo Oct 22 '20 at 7:55

It can be hard to spot, if you don't know, but Blender's factory settings give the World a default color of (0.051,0.051,0.051), with an emissive strength of 1.

So you're right: there is "Somehow, another source of light" in your scene.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.