RGBE is an image format invented by Greg Ward Larson.
It stores pixels as one byte RGB (red, green, and blue) values
with a one byte shared exponent.
Thus it store four bytes per pixel.
RGBE's biggest advantage is that it allows pixels to have
the extended range and precision of floating point values.
Often when we generate images from light simulations,
the range of pixels values is much greater than
will nicely fit into the standard 0 to 255 range
of standard 24bit image formats.
As a result we either truncate bright pixels to 255
or we end up losing all our precision in dimmer pixels.
By using a shared exponent, the rgbe format
gains some of the advantages floating point values
without the 12 bytes per pixel needed for single precision IEEE values.
It can handle very bright pixels without loss of precision for darker ones.
Greg Ward provides code to handle RGBE files in his
Radiance rendering system.
However the RGBE format is very useful even if you are not using Radiance
and deserves to become a standard format
throughout the rendering community and beyond.
To facilitate this,
Bruce Walter has implemented a minimal set of routines
to read and write RGBE files.
This code is provided without any guarantees whatsoever,
but please forward any bug reports to
Bruce Walter (firstname.lastname@example.org).
For more information, see "Real Pixels"
by Greg Ward Larson in Graphics Gems II.