The standard workflow: equirectangular IBL
Blender lights a scene from an HDRI through the World shader. Blender uses the panorama directly, as a single equirectangular image (one 2:1 image that covers the full sphere), with no cubemap (a set of six cube faces) and no conversion step. Both Cycles and EEVEE read it the same way, and the one image supplies both the image-based lighting and the visible background.
- Open the World Properties tab in the Properties editor.
- Under Surface, click the dot to the left of the Color field and choose Environment Texture.
- Click Open and select your
.hdror.exrpanorama. - Render. The HDRI lights the scene, and the panorama shows behind it as the background.
If the HDRI lights the scene too brightly or too dimly, change the Strength value on the Background node instead of re-exporting the file. Strength is a plain brightness multiplier.
How to rotate an HDRI in Blender
The Environment Texture node has no rotation field of its own. Rotation comes from a Mapping node placed ahead of it in the World shader:
- Open the Shader Editor and switch its mode from Object to World.
- Add a Texture Coordinate node and a Mapping node (
Shift A, then search). - Wire Texture Coordinate > Generated into Mapping > Vector, and Mapping > Vector into the Vector input of the Environment Texture node.
- Drag the Mapping node's Rotation Z value. The environment spins around the vertical axis, and the sun moves along the horizon in real time in a rendered viewport.
Z is the only axis you normally change. Rotating X or Y tilts the horizon, so use those axes only when you want a tilted horizon.
If you rotate the HDRI to aim the sun for a game-engine export rather than a Blender render, the converter's SKY YAW slider applies the same rotation at export time. The six cube faces export already rotated, and you do not need to re-render.
HDRI lighting in EEVEE
The World setup is identical in EEVEE: the same Environment Texture node, no conversion, no separate EEVEE path. The difference is how much of the HDRI's light reaches the render. Cycles path-traces the panorama directly, so bounce light and reflections need no extra setup. EEVEE rasterizes. From Blender 4.2, its ray-tracing options recover most of that light. Older versions rely on two baked helpers: an Irradiance Volume for diffuse bounce and Reflection Cubemaps for glossy surfaces.
By default, Material Previewmode lights the scene with one of Blender's built-in studio HDRIs instead of your World. To use your World, open the shading dropdown in the viewport header and enable Scene World. If your HDRI has no visible effect in the viewport, that toggle is almost always the cause.
Blender's built-in HDRIs, and where they live
The environments you see in Material Preview (forest, studio, city, sunset, and the rest) ship with Blender as studio lights. On disk they are plain equirectangular .exr files under the installation directory:
<blender>/<version>/datafiles/studiolights/world/
You can load one into the World shader like any other HDRI by browsing to that folder from the Environment Texture node. They are small preview lights, around 1K. They are fine for look-dev and quick tests, but soft and low-detail as a visible background in a final render. For production lighting, a 4K or larger HDRI from a library like Poly Haven is the better input. The same file is the input you would give the converter for an engine skybox.
When you need six faces instead
Blender itself never needs a cubemap, because the World shader is equirectangular throughout. Six faces become necessary only when you take the environment out of Blender and into an engine that requires them, such as the Source engine, Roblox, Quake-derived engines, or custom OpenGL and DirectX work. For a full breakdown of which engines need six faces and which accept the panorama directly, see Cubemap or equirectangular?
Blender to equirectangular HDR to Source skybox
When the target is a six-face engine, you first need an equirectangular render. Blender produces one with a panoramic camera:
- Select the camera. In Object Data Properties, open the Lens section, set Type to Panoramic, then set Panorama Type to Equirectangular. This needs the Cycles render engine.
- Set the output to a 2:1 resolution (4096 by 2048 is a good default) and render the scene.
- Save the result as a
.hdror.exrfile so the file keeps the full dynamic range. - Open that file in the converter and export it as a Source Skybox bundle. The HDRI to Source engine skybox guide covers the export options and naming rules.
That same equirectangular HDR is the input for every six-face target, including Source. Render it once, and use the same file for a Roblox sky, an idTech skybox, or a custom cubemap.