PLAYTEX Blog

Create a Game Skybox: Cube Faces, HDRIs, Seams, and Lighting

Choose between six-face skyboxes and equirectangular HDR environments, then control seams, orientation, exposure, reflections, and engine import.

skyboxHDRIenvironment artgame lighting
A six-face skybox cube beside an equirectangular HDR environment and a lit game scene

Key Takeaways

  • A six-face skybox and an equirectangular HDR environment encode directions differently and need the matching import path.
  • Cube-face borders must match position and color when folded into a cube.
  • A visible background and image-based lighting may use the same source but need separate exposure and quality decisions.
  • Test horizons, poles, reflections, compression, and orientation in the target engine.

Who Informed This

A projection-first guide for environment backgrounds and image-based lighting across common game-engine workflows.

How It Was Evaluated

The environment is checked at cube edges or equirectangular poles, rotated through known directions, viewed in reflections, and tested at several exposures and runtime quality settings.

Proof And Evidence

PLAYTEX may generate an environment image, but projection conversion, HDR data, engine import, and final lighting are separate technical steps.

Limits And Caveats

A generated image is not automatically high-dynamic-range data. Converting an 8-bit image to an HDR file does not recover missing light intensity.

A skybox is a directional image wrapped around the camera. It can make a scene feel kilometers wide while using no distant geometry at all. The illusion fails quickly when the horizon bends, cube edges disagree, or the sun in the picture comes from a different direction than the scene light.

Choose the projection before generating

Two formats appear often:

  • Six cube faces: front, back, left, right, up, and down images that form the inside of a cube. Roblox's Sky object uses this model, and Unity supports a six-sided skybox shader in compatible render pipelines.
  • Equirectangular panorama: one 2:1 image mapping 360 degrees horizontally and 180 degrees vertically. HDR environment workflows commonly use this layout and convert it to a cubemap for rendering.

Do not slice an ordinary wide landscape into six squares and expect a cube. The source must represent directions correctly. Use a renderer, panorama stitcher, or projection-conversion tool.

Design the horizon and poles deliberately

The horizon carries most environmental identity, so keep its height and curvature consistent. In an equirectangular image, the top and bottom rows collapse toward the poles. Detailed clouds or architecture near those poles can stretch into pinwheels.

For a cube, each face needs a 90-degree view and exact edge agreement with its neighbors. Roblox documentation describes the six Sky properties and emphasizes matching neighboring edges when the cube is folded.

Find seams before the engine does

Preview a cubemap with visible edge guides or inside a test cube. Compare both color and structure at every join. A cloud can continue geometrically while its brightness jumps because the faces received different adjustments.

For equirectangular sources, wrap the image horizontally and inspect the longitude seam. Then view it as a sphere or environment to reveal pole distortion that a flat image hides.

Separate background appearance from lighting data

An HDRI contains light values beyond the normal display range and can drive image-based lighting and reflections. A JPEG or ordinary PNG can create a visible background and approximate ambient color, but renaming it to HDR does not reconstruct clipped sun intensity.

It is often useful to control background exposure separately from lighting contribution. The sky can remain readable while reflections and ambient light use values appropriate to the material scene.

Match the visible sun to the real light

If the sky image contains a bright sun at the east horizon while the engine's directional light comes from the west, every object exposes the trick. Rotate the environment or the light so highlights and cast shadows agree.

Record the environment rotation with the scene preset. A material-review scene especially benefits from a known orientation because roughness comparisons become repeatable.

Engine notes

EngineCommon setupCheck
RobloxSky object with six uploaded facesFace assignment, celestial bodies, neighboring edges
UnitySkybox material using six-sided, cubemap, or panoramic shaderRender-pipeline support, exposure, reflection source
Unreal EngineSky Light/cubemap or HDRI Backdrop workflowProjection, intensity, rotation, floor/background integration
BlenderEnvironment texture in the World shaderNon-color versus color handling, strength, rotation, render exposure

Optimize according to motion and display

Sky textures cover a large part of the frame, so compression blocks and banding are easy to see. Smooth gradients may need higher bit depth during authoring. The runtime format should match the target platform and whether the image drives lighting, appears only as a background, or both.

Check the sky while the camera rotates slowly. Static inspection can miss shimmer at cube edges, mip transitions, or compression crawling through cloud gradients.

A final environment checklist

  1. Confirm the projection and aspect ratio.
  2. Inspect horizontal seams, cube edges, and equirectangular poles.
  3. Match the visible sun and horizon to scene lighting.
  4. Test background exposure separately from lighting intensity.
  5. Inspect glossy reflections and rough materials.
  6. Rotate the camera on the target platform and watch for banding or shimmer.

A convincing skybox does not need to shout. It needs to remain geometrically quiet, light the materials coherently, and stay out of the way while the world in front of it becomes the game.

Sources

About the author

PLAYTEX Editorial Team

Technical documentation focused on texture authoring, material validation, and engine handoff.

Read the PLAYTEX editorial policy