3

I am new to Blender and HDR. I wonder if there are any physical meaning for the pixel value in a HDR image. For the image example below, it has pixel values ranging from 0.000 to 27904.000

Does it mean the radiance in the units of W/m2, or anything else?


Apologize for my unclear expression.

My main concern is: How is 32-bit HDRI pixel value interpreted in Blender (or Cycles)? Does it have a physical unit?

For example, I have two HDRIs, the original one and the -2EV one.

The pixel value of -2EV HDRI is 1/4 of the original HDRI. See below.

When I use them as the environment maps, the lighting result is also different. So I guess Blender takes the pixel values as input to calculate the illumination. Since Cycles is physically based, I wonder how the pixel value is considered in Blender.

HDRI Pixel Value

Blender Rendering Result

Martynas Žiemys
  • 24,274
  • 2
  • 34
  • 77
Yifan Lu
  • 33
  • 4
  • I'm sorry, this is no question about using Blender and considered off-topic here. I don't even know what program you are using there - maybe there is some documentation for this software telling you what these values are supposed to mean? – Gordon Brinkmann Jun 27 '23 at 06:30
  • @GordonBrinkmann i think it's unclear what they are talking about. Maybe it's about Blender, and the EXR is only viewed in other software. Yifan Lu, could you clarify? – Martynas Žiemys Jun 27 '23 at 06:34
  • 2
    @Gordon et al. I think it's fair to ask if there is, or is not, a strict physical interpretation of the float values in an HDR environment texture, as far as Cycles PBR is concerned? (To what extent the renderer is calibrated to a model of physical truth) – Robin Betts Jun 27 '23 at 07:13
  • @RobinBetts That sure is interesting to know, although I would suspect the technical details of how the Cycles engine is working and calculating light intensities exceeds the general knowledge of non-developers just using Blender (which is often pointed out when users ask technical questions here). The other thing is, you could also consider this as too localized. Most users have to adjust the settings depending on the specific HDRI they are using anyway, since the pixel values there are not directly comparable between images in regard to real world light intensities. – Gordon Brinkmann Jun 27 '23 at 07:54
  • 1
    EXR format does not define what the values should be and any such definition would not be possible to enforce. So the answer is that they do not have any physical meaning, unless that meaning is assigned to them by the user. – Martynas Žiemys Jun 27 '23 at 08:33
  • 1
    I think EXR opens by default in the linear space and should be opened in such a space, meaning the value in EXR is the same as the value in Blender. So the question simplifies to: what formula (if any) to apply on a value of color to get the irradiance expressed in $W\over{m^2}$ – Markus von Broady Jun 27 '23 at 09:35
  • @MartynasŽiemys et al. I suspected as much, since personally I've never seen any standards for tone-mapping. Thanks for filling us in :) – Robin Betts Jun 27 '23 at 09:44
  • "So the question simplifies to: what formula (if any) to apply on a value of color to get the irradiance expressed in Wm2" I would not just trust the values to be accurate if the purpose was let's say light calculation for interior light design. What about caustics(reflective)? what about multiple importnace sampling?.. Also irradiance values cannot be taken from render containing color passes. Should it be diffuse only?.. Should it be some special shader?.. Cycles is not designed to output irradiance. It would be fun to explore this idea more though. – Martynas Žiemys Jun 27 '23 at 11:49
  • @MartynasŽiemys as I understand, the question is about the source of light, the HDRI, so you assume some radius for a sphere (or instead of $W\over{m^2}$ use $W\over{°^2}$ meaning some angular cut from the HDRI, or just Watts per the entire sphere if it was filled with this color) – Markus von Broady Jun 27 '23 at 11:59
  • I did not assume it would be about HDRI image. It would be just radiance then. I think EXR contains linear values and then those numerical values will be assumed to be Watts per square meter per steradian in Blender if used for HDRI lighting. I think it is very unlikely many HDR images where those values would actually represent these units exist. I would not trust consumer cameras and common HDR merging techniques to be very accurate in this area... – Martynas Žiemys Jun 27 '23 at 12:06
  • @MartynasŽiemys sorry, the "You assume" was a figure of speech, "one could assume" is what I meant. – Markus von Broady Jun 27 '23 at 12:28

1 Answers1

5

The values do not have defined meaning unless you define it. It's just data and can be anything. It can be in different formats - 16-bit or 32-bit floating-point numbers.

In Blender you can adjust exposure and make any values of light in the scene work(for your image to look good). The ratios are generally most important.

The units of light are supposed to be Watts, Watts per square meter or Watts per square meter per steradian depending on the type of light you are using. This means that an image that you use for HDRI lighting is converted to linear color space if needed (like everything else in Blender) and then those linear values are considered to be Watts per square meter per steradian. EXR format should be linear already, so no conversion is need. So renders are based on light calculations using those physical units and what comes out of the rendering calculations can end up as pixel values in an EXR file. Rendering calculations are somewhat based on physics and various physical phenomenon. This does not mean those values are in any way physically accurate. You can set up render settings in a way there is not even a slightest chance for those values to resemble physical world phenomenon and you can try to make them as accurate as possible, but Cycles renderer isn't even attempting to be physically accurate and it's worth noting that render result will always be just a very rough estimate of physical reality at best. This is true for all other render engines as well, even those that are supposed to be more physically accurate. None of them are. But sure, the goal is to mimic reality and it makes sense to imagine that those values represent actual amount of light, that we hope might be physically plausible. That assignment of meaning is done by the user though. At least in Blender.

Markus von Broady pointed out in the comments:

...[this answer] could be overinterpreted as Cycles relying mostly on arbitrary, eye-balled constants rather than a physical model.

This interpretation would not be correct. Cycles is based on physics.

Martynas Žiemys
  • 24,274
  • 2
  • 34
  • 77
  • " Cycles renderer isn't even attempting to be physically accurate" - without going into semantics, I think it's a misleading statement. Cycles webpage says: "Cycles is a physically based production renderer". One example of how Cycles attempts to be physically accurate is how it's concerned with conservation of energy. Sure, some settings (changing default specularity of Principled BSDF) break it, but I think the development of Cycles is heavily inspired by thre actual optics – Markus von Broady Jun 27 '23 at 09:03
  • "heavily inspired" - Of course. "Physically based" is the correct term. No problems there. – Martynas Žiemys Jun 27 '23 at 09:32
  • 1
    As I said, I don't intend to have a zealous semantics dispute, just pointing out the statement could be overinterpreted as Cycles relying mostly on arbitrary, eye-balled constants rather than a physical model. One example where Cycles is not realistic is that it represents light as rays of color, disregarding polarization and flattening the color spectrum to a value described by 3 samples of this spectrum (RGB). Still, I think the question actually can be answered with a specific value. – Markus von Broady Jun 27 '23 at 09:40
  • 1
    OK. That is a good point. This is really not what I meant to say. I'll try to edit. – Martynas Žiemys Jun 27 '23 at 09:44