The short answer
Most real-time engines and 3D applications accept an equirectangular HDRI directly and project it onto a cube for you, so you never handle six faces yourself. The exceptions are engines whose skybox format is six faces by design. This table sorts the common targets, and the sections below explain each one.
| Engine / tool | Accepts equirectangular? | Needs six faces? |
|---|---|---|
| Unity | Yes, Skybox/Panoramic shader | Legacy only |
| Unreal Engine | Yes, HDRI Backdrop or Sky Light | No |
| Blender | Yes, World shader | No |
| Maya (Arnold) | Yes, aiSkyDomeLight | No |
| Godot | Yes, PanoramaSkyMaterial | No |
| Source engine | No | Required |
| Roblox | No | Required |
| idTech / GoldSrc | No | Required |
| Raw OpenGL / DirectX | Rarely | Usually |
Unity
Unity reads an equirectangular HDR directly. Set the imported texture's Shape to Cube and Unity reprojects it for you, or assign the lat-long map to a material using the built-in Skybox/Panoramic shader, which samples it at render time. A Reflection Probe then captures ambient light from the result. Importing six separate faces still works but is considered legacy. Reach for an explicit cubemap only when you need per-face compression, a different resolution per side, or a shader that samples one face on its own.
Unreal Engine
Unreal consumes a single long-lat HDR in several places: the HDRI Backdrop actor for an instant lit backdrop, a Sky Light for image-based ambient lighting, and reflection captures for local reflections. You can also build a TextureCube asset from a lat-long HDR and let Unreal handle the projection at import. Hand-authored, pre-filtered six-face cubemaps are an edge case, reached for when you are building a specialized cubemap asset rather than lighting a level from an HDRI.
Blender
Blender lights a scene from an HDRI through the World shader: an Environment Texture node feeds an .hdr or .exr straight into the world surface, used for both image-based lighting and the visible background. No cubemap conversion happens at any stage. Six faces only enter the picture when you are exporting out of Blender to a game engine that demands them. The Blender guide walks the World setup and that hand-off in detail.
Maya (Arnold)
In Maya with Arnold, an aiSkyDomeLight takes the equirectangular HDR directly. It provides image-based lighting and doubles as the visible background. Other renderers expose the same idea under a different name: a dome light or environment light fed a lat-long map. None of them want a six-face cubemap. The dome-light workflow stays equirectangular from start to finish, and cube faces matter only if you are exporting the environment onward to an engine that requires them.
Godot
Godot's Sky resource takes a PanoramaSkyMaterial, which accepts an equirectangular HDR directly. Assign the file and the environment lights the scene. Godot also supports cubemap-based skies through other sky materials and can convert between the two, but the panorama path is the default and the least friction. Unless you have a specific reason to hand Godot pre-split faces, the equirectangular HDR is the input to use.
Source engine
The Source engine has no equirectangular path. A Source skybox is six VTF face textures with matching VMT materials, named to a fixed convention and placed in materials/skybox/. The engine samples those six faces around the level. There is no lat-long option at all. This is exactly the case the converter is built for: load an equirectangular HDRI, export the bundle, and drop it in. The dedicated Source guide covers the export options and the naming rules.
Roblox
Roblox skyboxes are six separate face images assigned to a Sky object: an up face, a down face, and the four sides. There is no equirectangular input, and the six faces are mandatory. Export a cubemap, upload the six images, and reference them on the Sky object. Roblox skybox faces are standard 8-bit images, so HDR range is not carried through.
idTech / GoldSrc
Quake-derived engines, including idTech branches and GoldSrc (which powered the original Half-Life), use six skybox textures with directional suffixes. This is the same lineage the Source engine later inherited. The exact file format and naming differ by game, but the shape is constant: six faces, no lat-long path. Export a cubemap and rename or convert the faces to match the target game convention.
Raw OpenGL / DirectX
Working directly against the graphics API, a cubemap is six 2D images bound to one cube-map sampler: GL_TEXTURE_CUBE_MAP in OpenGL, or a cube texture view in Direct3D. Nothing projects an equirectangular map for you. Either sample the lat-long texture with your own direction-to-UV math in the shader, or upload six faces and let the hardware cube sampler do the work. Six faces is the usual choice because the hardware path is built around it.
When six faces are the right choice
- The engine requires it. This covers Source, Roblox, idTech and GoldSrc, and most work written directly against OpenGL or DirectX.
- Per-face control, when you want different compression or a different resolution on individual faces, such as a lower-detail floor.
- Memory budgeting on mobile, where six faces can be streamed or dropped to a smaller mip independently of one another.
- Custom shaders that sample one specific face rather than a direction vector.
If none of those apply, hand your engine the equirectangular HDRI and skip the conversion. One file does the work of six.