HDRISKYBOX

HDRI in Unreal Engine

Unreal reads one equirectangular HDR through three entry points: the HDRI Backdrop actor, a Sky Light cubemap, or a skydome material. You do not need to convert it to six cube faces. The engine builds the cube texture at import.

The short answer

Unreal takes one equirectangular HDR, a 2:1 latitude-longitude panorama. It does not need six cube faces. Import a 2:1 .hdr and the importer builds a TextureCube asset from it. The cubemap projection happens inside the importer, so you do not project the faces yourself. The same asset feeds three entry points, listed here from least to most control: the HDRI Backdrop actor for a lit backdrop, a Sky Light with a specified cubemap for pure image-based lighting, or your own skydome material when you want to art-direct the sky.

The TextureCube path is built around Radiance .hdr files. An .exr panorama imports as a flat 2D texture. That texture works in a skydome material but not as a Sky Light cubemap. The converter exports Radiance HDR, so its output takes the TextureCube path.

Method 1: HDRI Backdrop

This is the fastest method: one actor provides the visible sky, the lighting, the reflections, and a ground projection.

  1. Enable the plugin once per project: Edit > Plugins, search for HDRI Backdrop, check it, restart the editor.
  2. Import your 2:1 .hdr panorama. It arrives as a TextureCube.
  3. Drag an HDRI Backdrop actor into the level from the Place Actors panel.
  4. On the actor, set Cubemap to your texture. Tune Intensity for brightness and Size so the ground projection sits under your scene.

The actor's Projection Center and ground projection keep objects visually anchored to the backdrop. That anchoring is the reason to choose it over a bare Sky Light for product shots and look-dev scenes.

Method 2: Sky Light with a specified cubemap

Use this method when you want the HDRI's light without its picture, because the sky will be replaced or hidden but the ambient light should still come from it:

  1. Add a Sky Light actor to the level.
  2. Set Source Type to SLS Specified Cubemap and assign the imported TextureCube.
  3. Leave Real Time Captureoff; that mode captures the scene's sky instead of the specified cubemap.

This is pure image-based lighting: diffuse skylight plus reflections, no visible backdrop. Pair it with a Directional Light rotated to match the HDRI's sun so shadows agree with the brightest spot in the panorama.

Method 3: a skydome material

This method gives full control: a large inverted sphere with an Unlit emissive material samples the panorama. This is the one method where the flat 2D import (your .exr) is the right input. The material maps view direction to latitude-longitude UVs, so it needs no TextureCube. Disable shadow casting on the dome and push its bounds past the level. Add a Sky Light with Real Time Capture so it captures the dome; the lighting then follows whatever the material does: tints, sun discs, animated clouds.

Use it when the HDRI is a starting point rather than the final sky. For unedited panoramas, the backdrop or Sky Light methods show the same pixels with less to maintain.

Import settings that matter

  • Compression Settings: keep the TextureCube on HDR Compressed (BC6H). It preserves float range at a fraction of uncompressed memory; switch to uncompressed HDR only if you see blocking in smooth gradients.
  • Keep sRGB off for HDR data; float pixels are already linear, and the flag darkens them a second time.
  • Maximum Texture Sizecaps the cube faces; if a 4K panorama looks soft on the backdrop, the importer's cap is the usual cause.
  • Auto-exposure will compensate for a bright HDRI. Clamp Min/Max EV100in a Post Process Volume (or set the backdrop's Intensity) so the sky holds a stable brightness.

When you'd ever need six faces

Inside Unreal, you almost never need them. The importer builds the cubemap, the renderer projects it, and no workflow hands you six files. The faces matter when the same environment leaves Unreal for an engine that requires them: Source, Roblox, a Quake-derived engine, or raw graphics-API work. The converter exists for that hand-off, and Cubemap or equirectangular? covers the full engine list. If your panorama is rendered rather than captured, the Blender guide shows how to produce the equirectangular HDR that every method here starts from.

Open the converter