The short answer
Godot 4 takes the equirectangular HDR directly. The sky lives in a Sky resource whose material is a PanoramaSkyMaterial, and that material's one meaningful property is your .hdr or .exr panorama. No face splitting, no conversion step; the engine projects the panorama and, with two more dropdowns, lights the scene from it. Six-face cubemaps exist in Godot, but they are the special case, covered at the end.
Step by step: WorldEnvironment
- Drop the
.hdror.exrfile into the FileSystem dock so Godot imports it. - Add a WorldEnvironment node to the scene and give its Environment property a New Environment.
- In the Environment, set Background > Mode to Sky.
- Under Sky, create a New Sky, then set its Sky Material to New PanoramaSkyMaterial.
- Click the material open and drag the imported panorama into its Panorama slot.
The viewport shows the sky immediately. Everything else on this page is tuning.
Lighting from the sky
In the same Environment resource, Ambient Light > Source set to Sky pulls the diffuse ambient from the panorama, and Reflected Light > Source set to Sky feeds reflections the same way. Both follow the sky by default on the Background source settings, so often this already works. Energy multipliers on the sky and ambient blocks trim brightness without touching the file.
An HDRI gives soft, directionless light. For crisp shadows, add a DirectionalLight3D and rotate it until its shadows agree with the sun position in the panorama. That is the standard pairing in every engine, Godot included. Local ReflectionProbe nodes sharpen indoor reflections where the sky alone is wrong.
Rotating the sky
No node graph needed: the Environment's Sky block has a Rotation property. Spin the Y component to walk the sun around the horizon; X and Z tilt the horizon itself and are best left at zero. Lighting and reflections follow the rotation automatically.
If the sky is bound for an export rather than a Godot scene, the converter's SKY YAW slider bakes the same spin into the output at export time.
Cubemaps in Godot: when and how
Godot's six-face path is the Cubemap resource, consumed by custom sky shaders (samplerCube in a ShaderMaterial sky) and by shader work generally; there is no built-in six-image sky material the way Unity ships one. The importer also expects the six faces packed into a single image in a 1×6, 6×1, 2×3, or 3×2layout, set under the texture's import type, rather than six loose files.
So for an ordinary Godot skybox, stay equirectangular: the panorama path is shorter and loses nothing. Reach for faces when a custom sky shader wants the hardware cube sampler, or when the same environment also targets a six-face engine. The Cubemap or equirectangular? guide sorts those targets engine by engine.
Import settings and pitfalls
- Keep the source HDR. An 8-bit panorama bands visibly once the Environment's tonemap (Filmic, ACES) stretches it;
.hdrand.exrsources do not. - On the texture's Import dock, HDR as sRGB stays off for true HDR files, and Mipmaps > Generate on keeps the sky clean at glancing angles.
- VRAM Compressed trades sky gradient quality for memory. For a hero sky, try Lossless first and only compress if the budget complains.
- If the sky looks washed out, the Environment's tonemap and exposure are acting on it; tune Tonemap > Exposure rather than brightening the source file.
Rendering your own panorama instead of downloading one? The Blender guide covers producing the equirectangular HDR this setup starts from.