Why Generic Upscalers Break 360 Panoramas

September 16, 2026
Insights

You shot in 8K. On a monitor the frame looks fine. In a headset it looks soft, so you run it through an AI upscaler — and it comes back worse, in two specific places that were fine before.

This is not a bad upscaler. It is a model doing exactly what it was trained to do, on an image that is not what it thinks it is.

An equirectangular frame is not a flat picture

A 360 photo arrives as a 2:1 rectangle. Longitude runs left to right across the width, latitude runs top to bottom down the height. It opens in any image editor and looks like a very wide landscape shot, which is exactly the problem: every general-purpose model treats it as one.

Equirectangular projection diagram: the left and right edges are the same meridian, and the top and bottom rows are each a single point

There are two pieces of information in that rectangle that a flat model has no way to know about. One is at the edges. The other is at the top and bottom.

The seam

The left edge and the right edge of an equirectangular frame are the same meridian. They are not the border of the picture — they are the place where the sphere closes. In the headset there is nothing there at all; a viewer turns around and walks straight through it.

A flat model sees two unrelated image borders. Whatever it does at an edge — pad it, mirror it, infer from the neighbouring pixels, taper the effect off — it does twice, independently, with different neighbouring content each time. The two sides no longer match.

On a monitor you will not notice. In a headset the viewer turns to face ±180° and there is a vertical line running floor to ceiling, and once someone has seen it they cannot stop seeing it.

Tile-based upscalers make this worse rather than better. Splitting a large frame into patches is how most tools handle resolution they cannot process in one pass, and it produces boundaries everywhere. Most of them are hidden in the middle of content. The one at ±180° is the only boundary a viewer can stand still and stare at.

The poles

The top row of an equirectangular frame is a single point in space. So is the bottom row. Every pixel across the full width of that first row maps to the same place: straight up.

That means the projection oversamples enormously as you approach the poles. Near the equator a pixel covers a real slice of the world. At 80° latitude the same pixel covers almost nothing, and the content is stretched sideways across the frame. This is not distortion to be corrected. It is the format working as designed.

A flat model does not know that. It sees smeared, stretched content and recognises the pattern as something it was trained to fix — motion blur, a swirl, a lens artifact. So it fixes it. The ceiling comes back with detail that curls, or a texture that spirals around the zenith, or a soft grey cap where a light fitting used to be. The nadir usually gets the tripod, and whatever the model decides to do with it.

Why 8K was already too soft

Here is the part that surprises people, and it has nothing to do with artifacts.

An 8K equirectangular frame is 8192 pixels wide, and those pixels are spread across a full 360 degrees. That works out to roughly 23 pixels per degree at the equator, and fewer everywhere else in the vertical field.

Meta publishes 25 pixels per degree for Quest 3. iFixit's teardown estimate for Apple Vision Pro is around 34. The figure usually cited as the retina threshold — the point where a typical eye stops resolving individual pixels — is about 60.

So an 8K master is already below what a current headset can display, before anything goes wrong. It is not soft because the upscaler failed. It was soft when you shot it. That is the actual argument for upscaling 360 material, and it is the reason the target is 32K rather than 12K or 16K: at roughly 89 pixels per degree, the limit moves back to the display where it belongs.

What each master size actually gives you
Master Frame size Megapixels Pixels per degree Against the display
4K4096 × 20488 MP11.4 Well below any current headset
8K8192 × 409634 MP22.8 Below Quest 3 (25 PPD)
12K12288 × 614475 MP34.1 Around Vision Pro (~34 PPD)
16K16384 × 8192134 MP45.5 Above today's headsets, below retina
32K32000 × 16000512 MP88.9 Past the ~60 PPD retina threshold

Pixels per degree = frame width ÷ 360, measured at the equator. Quest 3 figure published by Meta; Apple Vision Pro is iFixit's teardown estimate. The retina figure is the commonly cited point where a typical eye stops resolving pixels.

If your master is 8K

Your headset is already resolving more than the file holds.

PanoSharp rebuilds 8K equirectangular masters to 32K — seam-continuous, poles reconstructed.

See the comparison

What correct handling looks like

None of this requires a bigger model. It requires the model to be told what it is looking at.

The wrap has to be continuous

The frame is processed as a sphere that happens to be stored as a rectangle, not as a rectangle that happens to be 2:1. Content wraps across ±180° so both sides of the seam are reconstructed from the same neighbourhood, and the join is checked after the fact rather than assumed.

Sampling has to follow latitude‍

The oversampling near the poles is measurable — it is a known function of latitude, not a guess. Reconstruction weighted by that measurement treats polar content as the compressed real detail it is, instead of as a defect.

Poles are rebuilt, not stretched

The zenith and nadir are reconstructed as the single points they represent. Stretching them wider is what produces the swirl.

The output is measured at full size

A 512-megapixel frame judged on a 2000-pixel crop tells you very little. Quality has to be verified on the delivered master, at the resolution it ships at, on defined measures rather than a proprietary score.

How to check your own output

You do not need our tool to run this. If you have an upscaled 360 frame sitting on disk right now, this takes about two minutes.

Open it in a 360 viewer, not an image editor

Turn to face ±180° — the direction opposite where the camera front was. Look for a vertical line. Look at it against a flat wall or sky, where it shows up most.

Look straight up, then straight down

Not at a thumbnail — in the viewer. Ceiling fixtures, sky gradients and floor patterns are where pole handling fails visibly.

Compare detail at the equator against detail at 60° latitude

If the upper third is noticeably mushier than the middle, the model treated the whole frame as one flat surface.

Check the aspect ratio is still exactly 2:1

Some tools quietly pad or crop, which breaks the projection for every downstream viewer.

Send two or three of your own frames

  • 8K equirectangular in, 32K master plus six 8K cubemap faces out
  • Continuous across the ±180° wrap, poles rebuilt rather than stretched
  • Measured with PSNR, SSIM, MS-SSIM and LPIPS, reported separately
Request a proof of value

No payment, NDA available. You get the frames back upscaled.

FAQ

What is an equirectangular image?

‍It is the standard way a 360 photo or video frame is stored: a 2:1 rectangle where horizontal position maps to longitude and vertical position maps to latitude. It is the same projection used for world maps, and it has the same properties — areas near the poles are stretched, and the left and right edges join.

Why does my 360 photo look sharp on a monitor but soft in a headset?

‍Because a monitor shows you the whole frame at once, and a headset shows you a small slice of it filling your field of view. An 8K equirectangular frame is about 23 pixels per degree at the equator. Quest 3 displays 25, so the headset is resolving more detail than the file contains.

Can I just use a regular AI upscaler on a 360 image?

‍You can, and for a quick look it may be fine. Two things tend to break: the ±180° seam, because a flat model treats the frame edges as picture borders rather than as a join, and the poles, because the model reads the projection stretch as a defect and tries to correct it.

What resolution do I actually need?

‍It depends on the headset and how much of the sphere a viewer sees at once, but the arithmetic is simple: divide the frame width by 360 to get pixels per degree, then compare that to your target device. Current consumer headsets sit in the mid-20s to mid-30s, and roughly 60 is where a typical eye stops resolving pixels.

Does upscaling invent detail that was not there?

‍Any super-resolution model reconstructs plausible detail; that is what the technique does. The honest question is whether it stays faithful to the source. That is why the measurement here uses defined measures including PSNR, SSIM, MS-SSIM and LPIPS alongside perceptual scores, rather than a single proprietary index — source fidelity and perceptual quality get reported separately instead of averaged into one number that can hide a tradeoff.

What do I get back?

‍A 32K equirectangular master plus six 8K cubemap faces, so the result drops into engine and player pipelines without a separate conversion step.

8K → 32K, seam-continuous. PanoSharp

Related Posts

One email, every other Thursday.

New research notes, customer workflows, and model integrations straight from the team.

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form