I'm working with an in-development system that uses .hdr
environments (equirectangular projection) to provide image-based lighting (IBL) to a 3D rendering. I'm trying to understand what range of values can be stored in an .hdr
image, and how to edit them in Photoshop.
In Photoshop, I can open (or create) .hdr
images with 32-bits per channel. In this mode, 'normal' colors have RGB values in the range 0.0
- 1.0
. However, I can pick colors that go as high as 20.0
in each channel. I thus assumed that a value of 20.0
was the maximum that could be stored in a .hdr
file.
However, if I fill a region with brightest white (20.0
,20.0
,20.0
), and then fill again with (4.0
,4.0
,4.0
) on Multiply mode, I end up with colors that have a value of ~80 (as reported by the Info palette in 32-bit mode). Do it again and I get ~320. I can keep repeating the multiplication and the values shown in the Info palette get successively larger, until the Info palette display maxes out at -231 (-2,147,483,648
).
Some of the free .hdr
panoramas that I have found online max out with the sun at around 20
brightness. Some of them, however, max out at 16000
or so. The result is that there are massive tone mapping differences needed between different environments that should be equivalent, e.g. both are a sunny day outdoors. I want to normalize the maps we use and generate, but I first need to figure out what "good" values are for the sun, sky, and ground.
- What is the largest channel value represented in a
.hdr
image? - What is the significance of Photoshop's
20.0
maximum for a color?
Edit: Manually entering RGB channel values of 1
, 4
, 10
, and 20
and painting one pixel using them shows the following results. The fifth square was painted with RGB of (20,20,20)
on Normal
mode, and then painted again with RGB of (4,4,4)
using Multiply
mode. The color of this pixel is shown at the top of the Info palette. (The first RGB entry is set to Actual Color
, while the second is set to RGB
; both readouts are set to 32-bit, as shown.)
Note that these colors are obtained by typing values in the RGB channels of the Color Picker (section "D" in the picture below from Adobe's help), NOT by using the "Intensity: [______] stops" entry. Typing in RGB values of 20.0
sets the Intensity to 4.73
stops. Entering larger intensity values—up to a maximum of 20.0—still results in the RGB values showing 20.0
each in the color picker, but the resulting paint showing larger RGB values of up to 786432 in the Info palette.
As described above, however, even this "largest" value can be made even larger by multiplying the color.