Orientation reference · Reviewed August 29, 2026

Cubemap Face Order and Orientation

A cubemap always represents six directions—+X, −X, +Y, −Y, +Z, and −Z—but engines differ in filenames, handedness, loader order, and pole rotation. Match the direction first, then use the target’s labels.

Convert your own 2:1 panorama into faces · Create a new HDRI panorama

Identify direction before filename

Use +X for right, −X for left, +Y for up, −Y for down, +Z for front, and −Z for back in this reference. A filename such as front, back, right, or left is only meaningful after the target convention is known.

Downloadable cubemap orientation test grid labeled across longitude and latitude

Download the orientation test grid

Face names by engine

DirectionUnityUnrealGodotRobloxThree.js
+X RightSkybox_Right_PX.pngSkybox_PX.pngSkybox_PositiveX.pngSkyboxRt.pngpx.png
−X LeftSkybox_Left_NX.pngSkybox_NX.pngSkybox_NegativeX.pngSkyboxLf.pngnx.png
+Y UpSkybox_Up_PY.pngSkybox_PY.pngSkybox_PositiveY.pngSkyboxUp.pngpy.png
−Y DownSkybox_Down_NY.pngSkybox_NY.pngSkybox_NegativeY.pngSkyboxDn.pngny.png
+Z FrontSkybox_Front_PZ.pngSkybox_PZ.pngSkybox_PositiveZ.pngSkyboxBk.pngpz.png
−Z BackSkybox_Back_NZ.pngSkybox_NZ.pngSkybox_NegativeZ.pngSkyboxFt.pngnz.png

The ZIP manifest keeps the direction, output filename, and target together. Download the example manifest.

Import notes that change the result

  • Unity. PLAYTEX AI names each loose image by direction; Unity 6 also recognizes six-frame sequences in +X, −X, +Y, −Y, +Z, −Z order. Unity can import a recognized cubemap layout or a latitude-longitude panorama; loose faces may need assembly into a supported layout or Cubemap asset.
  • Unreal Engine. Directional suffixes PX, NX, PY, NY, PZ, and NZ remain explicit. Unreal’s Texture Asset Editor reports cubemap faces in DDS order: +X, −X, +Y, −Y, +Z, −Z. Long-lat HDR/EXR import can be more direct for Sky Light workflows.
  • Godot 4. Godot documents X+, X−, Y+, Y−, Z+, Z− image order. Godot uses Y+ as up and Z− as forward. PanoramaSkyMaterial usually takes the original 2:1 panorama; six faces are intended for a Cubemap resource or custom sky shader.
  • Roblox. Roblox Staff mapping uses pz→SkyboxBk, ny→SkyboxDn, nz→SkyboxFt, nx→SkyboxLf, px→SkyboxRt, and py→SkyboxUp. The Up face is rotated 90° clockwise and Down 90° counterclockwise during projection, so PLAYTEX AI output should be uploaded as-is.
  • Three.js. CubeTextureLoader takes px, nx, py, ny, pz, nz in that exact array order. Three.js documents an internal positive/negative X handling difference between cubemap and scene handedness; keep the loader order and filenames together.

Verification checklist

  1. Put a labeled grid or asymmetric landmark in the panorama before conversion.
  2. Confirm the horizon crosses four side faces at the same height.
  3. Confirm adjacent edge features meet without mirroring or a 90-degree turn.
  4. Check that +Y is overhead and −Y is underfoot after target-specific rotations.
  5. Keep all six square faces at the same dimensions and color encoding.

Common failure signatures

  • Mirrored text: a face was viewed from outside the cube or an axis convention was reversed.
  • Quarter-turn at the pole: the Up or Down face needs the target’s rotation rule.
  • Single vertical seam: check the source panorama’s left/right wrap before changing face order.
  • Every edge fails: the loader order or filenames do not match the exported direction manifest.

Primary engine references