.hdr or .exr: which HDRI file format?

  • HDRI Hub skies from HDR 142 onwards are delivered as OpenEXR (.exr), 16-bit half float RGB with PIZ compression. Earlier skies and all sIBL set components are Radiance (.hdr).
  • Both formats store the full dynamic range. OpenEXR keeps about 10 bits of precision per channel per exposure stop; Radiance RGBE shares one 8-bit exponent across R, G and B.
  • Every current renderer reads both: V-Ray, Corona, Arnold, Cycles, Eevee, Redshift, Octane, Enscape, Twinmotion, Unreal, Unity, KeyShot.
  • Our previews (.jpg) are tonemapped and only for browsing. They cannot light a scene.

Two file formats carry almost every HDRI sold today. Radiance .hdr is the older one, from Greg Ward's Radiance renderer in the late 1980s. OpenEXR was released by Industrial Light & Magic in 2003 for film compositing. For lighting a scene the difference is small; for grading, compositing and very bright suns it is not.

How do the two formats store light?

Radiance .hdr uses RGBE: 8 bits each for red, green and blue plus one shared 8-bit exponent. The exponent gives the range (over 70 stops), but because it is shared, a pixel with a strong blue and a weak red keeps only a few significant bits for the red. Smooth gradients in a dark sky can show banding after a strong exposure change.

OpenEXR stores each channel as a 16-bit half float (or 32-bit float): a sign bit, 5 exponent bits and 10 mantissa bits. Every channel keeps its own exponent, so precision does not depend on the other channels. Half float covers about 30 stops, enough for any sky including an unclipped sun.

Which compression do we use?

Our OpenEXR files use PIZ, a lossless wavelet compression that OpenEXR recommends for photographic images with grain and cloud detail. The channels are 16-bit half float R, G, B. There is no alpha channel and no extra layers. An 8K sky (8192 x 4096) comes in at 105 to 145 MB; a 20K sky (20000 x 10000) at 665 to 804 MB. Uncompressed the 20K file would be 1.2 GB, so PIZ saves about a third.

Radiance files use run-length encoding. The 10240 x 5120 .hdr in an sIBL set is 178 MB, which is close to its uncompressed size of 210 MB.

When does .exr matter?

  • Grading the HDRI itself: pushing exposure or white balance by several stops in Photoshop, Nuke or Fusion keeps gradients clean in .exr, while RGBE can band.
  • Very high contrast: an unclipped sun is several thousand times brighter than the sky around it. Both formats hold the range, but the half-float sun keeps more colour precision.
  • Compositing: .exr is the native format of Nuke, Fusion and After Effects' 32-bit pipeline; .hdr often needs a conversion step.
  • Plain lighting: no visible difference. A render lit by the .hdr and by the .exr version of the same sky is identical to the eye.

Can I convert between them?

Yes, without losing the dynamic range. Photoshop, Affinity Photo, Blender, ImageMagick (magick in.hdr out.exr) and OpenImageIO's oiiotool all read and write both. Converting .exr to .hdr drops the extra precision; converting .hdr to .exr does not add it back.

What about the .jpg previews?

The JPEG previews on the product pages and in the sIBL sets are tonemapped to 8 bits for display. A JPEG has no values above white, so a sun in a JPEG is at best 255, not the tens of thousands of a real HDRI. Loading a preview as an environment gives flat lighting and no shadows.

.hdr or .exr: which HDRI file format? | HDRI Hub