I am using Cycles to render a scene and saving the output in linear format to an EXR file. If lamp units are Watts (or W/m2 for the sun), what are the units of the value of a given pixel?


To clarify after the discussion in the comments, this questions is not about the principles of ray tracing or how Cycles handles emission, reflection, scattering, etc, At the end, when using EXR linear output, the value computed for a given pixel should (?) be something proportional to the number of photos reaching the "image sensor" in a certain amount of time.

This question is: do we know what are the physical units of this for the Cycles engine?


Short answer

Watts per square meter per steradian. See: https://devtalk.blender.org/t/cycles-unit-of-light-energy-attn-brecht/12456

Edit Below is the previous version of the answer because it is informative, even if it doesn't directly answer the question:

There are many factors that determine the values of the pixels. The units are simply luminance for each of the different channels that make an image (RGB), and occlusion (alpha channel).

The value of the pixels will depend on many different factors. In its simplest form, the scene referred data (before any data is processed through a display transform), it is a the measure of the light emitted or reflected, scattered, refracted, or absorbed by the elements on the scene.

Some will be the values of the emitting surfaces, in the case of lights or emissive shaders when seeing directly, or they can also be modulated by some fallof rules set in the emitter or the environment.

Some pixel values will be the result of the Albedo or light reflected by an object, modulated by the kind of shader used. Many different kinds of rays will result in different values depending if the light is scattered, transmitted, reflected, refracted or absorbed.

The final value, as an image is displayed or saved, will also depend on the color transforms. The values of a rendered scene are scene referred (in a linear, infinite scale that will be much larger than what can be represented on a screen). When that information converted to have a viewable image, the scene referred values will go through color transforms determined in the color management section. The values will depend on the color space chosen in those settings.

Images saved as EXR will use the values of the scene, while any of the other formats (tiff, png, jpg, for example, and all video encoded images) will be display referred, on a scale from 0 to 1, where 0,0,0 is black and 1,1,1 is white. Using that scale, the actual values of the pixels are determined by the bit depth chosen. 8 bit images will use a scale from 0 to 255, for example.

To get deeper into why a pixel has a certain value I recommend to spend some time reading through @troy_s' amazing "Hitchhiker's Guide to Digital Color"

| improve this answer | |
  • $\begingroup$ Thanks for the complete answer. I think however that it was mostly not what I need to know. I edited the question to reflect this fact. $\endgroup$ – Milo Oct 19 at 8:51
  • $\begingroup$ In the very first paragraph you mention that "The units are simply luminance for each of the different channels that make an image (RGB)". Does this mean that units are candela per square meter? $\endgroup$ – Milo Oct 19 at 8:54
  • 2
    $\begingroup$ Watts per square meter per steradian. devtalk.blender.org/t/cycles-unit-of-light-energy-attn-brecht/… $\endgroup$ – susu Oct 19 at 13:43
  • $\begingroup$ That seems to be indeed the answer I was looking for. May I suggest you modify your answer so that I can accept it ? (maybe a 'short answer' paragraph, then the rest of the previous explanation?) $\endgroup$ – Milo Oct 19 at 14:49
  • $\begingroup$ Feel free to edit the answer... $\endgroup$ – susu Oct 19 at 17:43

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.