In Praise of the Fisheye

Publication date: 14 December 2011
Originally published 2011, in Atomic: Maximum Power Computing
Last modified 14-Dec-2011.

 

If you're fortunate enough to have normal human eyesight, you seem to have a view of the world that's both quite wide, and quite sharp. But actually, there's only a little high-res spot of "macular" vision in the middle, surrounded by much lower resolution. That spot in the middle of your field of view isn't just where you're directing your attention at the moment; it's the only sharp vision you have.

Your whole horizontal field of view, from the super-blurry peripheral left edge to the similarly blurry right edge, approaches 180 degrees. (If you happen to be an animal with eyes on the sides of your head, you may manage damn near 360 degrees, at the cost of little to no binocular 3D vision at all.)

The portion of your total field of view that you perceive as sharp is a lot smaller than the full field, though. In photography, a "normal lens" is one that approximates the perceived view of a human standing in the camera's location. A normal lens has a left-to-right field of view of only about 45 degrees.

All of this is complicated enough already, but then people have to go and start playing computer games.

3D games are famous for giving you an odd view of the world. If the field of view is wide enough to give you decent situational awareness in an action game, then objects at the edges of the screen will appear oddly stretched.

45-degree FoV in Skyrim

(A very narrow, 45-degree field of view in Skyrim. This game defaults to a wider, but still unusually narrow, 75 horizontal field of view; that may work better for people playing on consoles, but PC gamers should probably set it wider, by bringing up the console [no relation to the aforementioned consoles] and typing "fov [number]".)

90-degree FoV in Skyrim

(A 90 FoV.)

Anybody who's fiddled with field-of-view settings in games will be familiar with this; extreme settings give you a sort of land-speed-record view of the world...

120-degree FoV in Skyrim

(120)

...with massive radial stretching and things straight in front of you seeming weirdly far away.

160-degree FoV in Skyrim

(160, as wide as Skyrim will go.)

Actually, though, there's no distortion at all.

When I'm sitting here with my eyes about 90 centimetres away from my beloved 30-inch monitor, the monitor subtends roughly a normal-lens 45-degree portion of my field of view. If I then set my field of view in a game to 45 degrees, there's no stretch effect at all.

But a 45-degree FoV is not very useful; it feels like trying to view the world through a toilet-paper tube. (Through binoculars made out of about half of a toilet-paper tube on each side, to be fair. Standard military night-vision goggles still commonly manage only about a 45-degree field of view.)

About a 90-degree horizontal FoV is the standard for action games. But then, there's that stretchy effect again.

In photography, this effect is called "perspective distortion"; it happens when you view any image that shows a field of view different from the amount of your own field of view that the image takes up.

Pretend your monitor is a literal, physical window into the game-world. If the field of view in the game is set the same as the field of view you'd get through a physical window the size of your monitor and the same distance away from your eyes, then everything looks fine. If you widen the field of view - let's say, by a factor of two - all you have to do to make everything look fine again is halve your distance from the monitor.

Try it. Run some game with FoV adjustment, wind the field of view up to 120 degrees or something, and move much closer to the screen than your mother thinks is healthy. When the amount of your actual biological field of view that the monitor covers is the same as your FoV setting in the game, there won't be any distortion.

(This even works for multi-monitor gaming, which has a long-standing problem with field-of-view settings. If a standard three-screen multi-monitor PC is displaying a game on, as far as the computer knows, one very wide yet strangely short screen, there will be severe stretching effects on the side screens. This problem can be solved by rendering three separate camera views, effectively giving three separate magic windows onto the game-world.)

It is, of course, completely impractical to play a game with your head very close to the monitor. Nobody wants to stare at a screen that's ten centimetres away from their eyes in the middle and thirty at the corners. We're going to have to wait for affordable wraparound curved screens, or head-mounted displays that create the same effect, before super-wide view angles will be useful.

In the meantime, a better option exists.

All normal 3D games use similar simple "rectilinear projection", where straight lines stay straight, but get longer and longer as the view gets wider. There are many other projections, though, which trade distortion - straight lines aren't straight any more - for a better view. Standard fisheye, for instance, gives a distinctive circular distortion effect that lets things in front of you seem realistically close and not very distorted, while the outer portion of the image is a less faithful, but very wide, view. Which is actually pretty much what your eyes already do.

(Door peepholes use low-quality fisheye optics.)

But everything, except for the occasional Xenomorph's-Eye View or CPU-intensive add-on for Warsow, is still rectilinear. Until mainstream FPS players find themselves getting pwned by people who've clicked the "fisheye" button, there'll be no demand for said button to exist.

It's not easy to do, either. If you want to implement fisheye rendering in a quick demo program where the camera just flies around in a checkerboarded room, modern CPU power makes it quite easy. If you want to do the same thing in an actual game, though, you will immediately run into the fact that current 3D game rendering, from the raw hardware to the most abstracted development-kit tools, is a vast teetering pile of hacks and kludges shot though with numerous assumptions, one of which is rectilinear rendering.

Even something as simple as widening the rectilinear field of view can create an instant problem: If the game renders the player characters hands and/or weapons on the screen, then widening the view will make your arms stretch bizarrely, along with the rest of the image. To avoid that, many games add yet another cheat to the collection, and render hands and guns and swords and such as a fixed extra layer on top of everything else, which ignores field-of-view entirely. Try changing the FoV in Half-Life 2, for instance; you can stretch the world into unrecognisability, but your crowbar will look exactly the same.

Despite all of these obstacles, I hope someone creates game projections more interesting than rectilinear. If only because fisheye-versus-stereographic-projection flame wars can only be more interesting than Nvidia versus ATI.

Other columns

Learning to love depreciation

Overclockers: Get in early!

Stuff I Hate

Why Macs annoy me

USB: It's worth what you pay

"Great product! Doesn't work!"

The virus I want to see

Lies, damned lies and marketing

Unconventional wisdom

How not to e-mail me

Dan's Quick Guide to Memory Effect, You Idiots

Your computer is not alive

What's the point of robot pets?

Learning from spam

Why it doesn't matter whether censorware works

The price of power

The CPU Cooler Snap Judgement Guide

Avoiding electrocution

Video memory mysteries

New ways to be wrong

Clearing the VR hurdles

Not So Super

Do you have a license for that Athlon?

Cool bananas

Getting rid of the disks

LCDs, CRTs, and geese

Filling up the laptop

IMAX computing

Digital couch potatoes, arise!

Invisible miracles

Those darn wires

Wossit cost, then?

PFC decoded

Cheap high-res TV: Forget it.

V-Pr0n

Dan Squints At The Future, Again

The programmable matter revolution

Sounding better

Reality Plus™!

I want my Tidy-Bot!

Less go, more show

In search of stupidity

It's SnitchCam time!

Power struggle

Speakers versus headphones

Getting paid to play

Hurdles on the upgrade path

Hatin' on lithium ion

Wanted: Cheap giant bit barrel

The screen you'll be using tomorrow

Cool gadget. Ten bucks.

Open Sesame!

Absolutely accurate predictions

The truth about everything

Burr walnut computing

Nothing new behind the lens

Do it yourself. Almost.

The quest for physicality

Tool time

Pretty PCs - the quest continues

The USB drive time bomb

Closer to quietness

Stuff You Should Want

The modular car

Dumb smart houses

Enough already with the megapixels

Inching toward the NAS of our dreams

Older than dirt

The Synthetics are coming

Pr0nBack!

Game Over is nigh

The Embarrassingly Easy Case Mod

Dumb then, smart now

Fuel cells - are we there yet?

A PC full of magnets

Knowledge is weakness

One Laptop Per Me

The Land of Wind, Ghosts and Minimised Windows

Things that change, things that don't

Water power

Great interface disasters

Doughnut-shaped universes

Grease and hard drive change

Save me!

Impossible antenna, only $50!

I'm ready for my upgrade

The Great Apathetic Revolution

Protect the Wi-Fi wilderness!

Wi-Fi pirate radio

The benign botnet

Meet the new DRM, same as the old DRM

Your laptop is lying to you

Welcome to super-surveillance

Lemon-fresh power supplies

A>B>C>A!

Internet washing machines, and magic rip-off boxes

GPGPU and the Law of New Features

Are you going to believe me, or your lying eyes?

We're all prisoners of game theory

I think I'm turning cyborg-ese, I really think so

Half an ounce of electrons

Next stop, clay tablets

A bold new computer metaphor

Won't someone PLEASE think of the hard drives?!

Alternate history

From aerial torpedoes to RoboCars

How fast is a hard drive? How long is a piece of string?

"In tonight's episode of Fallout 4..."

How hot is too hot?

Nerd Skill Number One

What'll be free next?

Out: Hot rods. In: Robots.

500 gig per second, if we don't get a flat

No spaceship? No sale.

The shifting goalposts of AI

Steal This Education

Next stop: Hardware piracy

A hundred years of EULAs

The triumph of niceness

The daily grind

Speed kings

Alt-tCRASH

Game crazy

Five trillion bits flying in loose formation

Cannibalise the corpses!

One-note NPCs

Big Brother is watching you play

Have you wasted enough time today?

The newt hits! You die...

Stuck in the foothills

A modest censorship proposal

In Praise of the Fisheye

Filenames.WTF

The death of the manual

Of magic lanterns, and MMORPGs

When you have eliminated the impossible...

Welcome to dream-land

Welcome to my museum

Stomp, don't sprint!

Grinding myself down

Pathfinding to everywhere

A deadly mouse trap

If it looks random, it probably isn't

Identical voices and phantom swords

Boing!

Socialised entertainment

Warfare. Aliens. Car crashes. ENTERTAINMENT!

On the h4xx0ring of p4sswordZ

Seeing past the normal

Science versus SoftRAM

Righteous bits

Random... ish... numbers

I get letters

Money for nothing

Of course you'd download a car. Or a gun!

A comforting lie



Give Dan some money!
(and no-one gets hurt)