360 Panorama Viewer

Formats / Projection

Equirectangular Projection Explained: 2:1, Poles and Seams

Equirectangular projection puts longitude on the horizontal axis and latitude on the vertical axis. Understanding that mapping makes 360 exports, seams and cubemap conversions much easier to diagnose.

By 360 Panorama Viewer · Updated · 4 minute read

What an equirectangular panorama stores

A full equirectangular panorama records every direction around one viewpoint in a rectangle. Moving left or right changes longitude, also called yaw. Moving up or down changes latitude, or pitch. The middle row is the horizon, the top is the zenith and the bottom is the nadir. The left and right boundaries meet when the image wraps around a sphere.

A flat preview looks distorted because it displays all those directions at once. A 360 panorama viewer samples a smaller field of view from the image and draws a perspective view. You rotate that view to explore the rest of the scene.

Why the usual full-sphere image is 2:1

A complete sphere spans 360 degrees horizontally and 180 degrees vertically. With equal angular spacing on both axes, the width is twice the height: 4096 × 2048, for example. That is the conventional 2:1 equirectangular export used by many 360 workflows.

The aspect ratio is a useful check, not a proof of projection. A renderer can map a non-2:1 texture onto a full sphere with unequal angular sampling, while a cropped panorama can legitimately cover less than the full sphere. A normal photograph resized to 2:1 still contains only its original field of view.

Full sphere or partial panorama? A phone's horizontal panorama mode usually captures a band around the horizon. It may omit the sky and ground even if the sweep covers 360 degrees. Use crop-aware metadata for a partial sphere, or capture or generate the missing directions before treating it as a complete one.

Pixel coordinates become viewing angles

For a full sphere with width W and height H, use pixel centers when computing angles:

u = (x + 0.5) / W
v = (y + 0.5) / H
yaw   = 360 * u - 180
pitch = 90 - 180 * v

The horizontal coordinate wraps around; the vertical coordinate stops at the poles. The yaw origin and axis signs can vary between applications, so a quarter-turn offset may be a coordinate convention rather than a broken export. At 4096 pixels wide, one pixel covers about 0.088 degrees of longitude. A 90-degree view spans roughly 1024 source pixels along the equator, which explains why a large flat image can still look soft inside a viewer.

Why the poles stretch

Each row stores a full sweep of longitude. Near a pole, those directions occupy a much smaller ring on the sphere, yet still receive a whole row of pixels in the rectangle. The flat image therefore spreads a small overhead region across its full width. This is projection distortion, and converting it to another format cannot recover detail that was never captured.

A tripod near the nadir or a cloud overhead can look smeared in the flat image and still look reasonable in a perspective view. Inspect the poles inside a viewer before retouching them. Place text near the horizon if it needs to be readable; a logo painted across the top row will not behave like a flat banner overhead.

Why a vertical seam appears

The last column and first column are adjacent directions. A visible brightness or color jump between them becomes a vertical seam in the sphere. Stitching errors, exposure changes between shots, ordinary image edits and generated content can all create that mismatch.

Check the seam by rotating through the wraparound direction in the viewer. Nearby pixels should continue smoothly, but the first and last columns do not need to be identical: their pixel centers sample slightly different directions. Fixing the join should preserve local structure instead of copying a wide strip from one edge onto the other.

Equirectangular versus cubemap

PropertyEquirectangularCubemap
LayoutOne rectangle, conventionally 2:1Six square perspective faces
DistortionStrong near the polesUneven sampling near face edges and corners
BoundariesHorizontal wrap and two polesJoins between all neighboring faces
Typical workflowPanorama sharing and editingSkyboxes and cube textures
Dynamic rangeDepends on pixel formatDepends on pixel format

A cubemap is a projection, not a guarantee of HDR. Six PNG faces are normally display images; floating-point faces can hold scene-linear lighting values. Likewise, an equirectangular file can be a JPEG, Radiance HDR or OpenEXR. Read the HDRI versus LDR guide before choosing an environment for lighting.

A reliable conversion workflow

  1. Keep the original file and confirm whether it covers a full sphere.
  2. Inspect its horizon, poles and wraparound seam in a viewer.
  3. Use the cubemap generator when you need six PNG faces, or the cubemap to equirectangular converter for the reverse direction.
  4. Check orientation in the destination engine. Conventions for front, up and face rotation differ.
  5. Add or update metadata after the final resize or crop, using the metadata injector for a complete panorama.

For crop and dimension fields, consult Google's Photo Sphere metadata reference. It includes separate examples for full and partial spheres.

Tools for this workflow

Browse all 360 panorama guides