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.
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.
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.
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.
Lumion loads Radiance .hdr only, and Enscape 4.18 LTS and earlier do too, so convert an .exr once before using it there. The table lists what each tool's official documentation confirms. Twinmotion and Corona are left out because the documentation we checked does not state it.
| Tool | .hdr | .exr | Note |
|---|---|---|---|
| V-Ray | Yes | Yes | VRayBitmap lists HDR and EXR as supported formats. |
| Blender (Cycles, EEVEE) | Yes | Yes | Both are supported image formats; load either in the Environment Texture node. |
| Arnold | Yes | Yes | Connect an Image shader to the Skydome Light colour. |
| D5 Render | Yes | Yes | "+Customize HDR" accepts both. |
| Enscape | Yes | 4.19+ only | 4.18 LTS and earlier read .hdr only; convert .exr once there. |
| Lumion | Yes | No | The Real Skies custom HDR loader takes .hdr files. |
| Unreal Engine | Cubemap | 2D texture | .hdr imports as a Texture Cube, .exr as a flat Texture2D. |
| Unity | Cubemap | Cubemap | Set Texture Shape to Cube with lat-long mapping. |
To choose the sky itself before worrying about the file, see how to choose an HDRI.
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.