Coding Horror

programming and human factors

Widescreen and FOV

As far as I'm concerned, you can never have enough pixels on your desktop. Until a few years ago, buying a larger display meant buying a larger display in the same, standard 4:3 screen layout-- 640 x 480, 800 x 600, 1024 x 768, 1600 x 1200, and so forth. But widescreen monitors are increasingly popular. It's difficult to buy a larger monitor today without changing your aspect ratio to widescreen.

As the new owner of my very first non-4:3 widescreen monitor, I'm learning first hand that widescreen displays can be problematic in certain rendering contexts. The issue of scaling pre-rendered content to a widescreen display is a well-understood problem at this point; non-linear stretching techniques work reasonably well.

But when rendering dynamic 3D content, things are a bit more problematic. I just purchased the game Bioshock, which "supports" widescreen displays-- but, in fact, it doesn't. Here's a screenshot of the same scene displayed in 1600 x 1200 (4:3), and in widescreen 1920 x 1200 (16:10).

bioshock 1600x1200 overlaid with 1920x1200

It's wider, technically, but you actually see less. The sides are the same, but the top and bottom of the display is clipped away in widescreen. In effect, the viewport is zoomed in. This is what you have to do to get static, pre-rendered content to fit a widescreen format, because that content is immutable. But this is a terrible solution for dynamically rendered content in a 3D world. Instead, the developers should increase the field of view.

fov (field of view) diagram

If we turn down the FOV in Bioshock to something like 0.84 to accommodate our widescreen 16:10 aspect ratio, we can see more of the world, not less:

Bioshock FOV comparison, 4:3 vs 16:10

With the adjusted FOV, the wider screen is used to display more of the scene on the left and right edges. Makes sense, doesn't it? But this is not something you get for free-- the rendering engine must be programmed to allow and support changing the FOV.

In multiplayer circles, a wider FOV is considered cheating. If you can view more of the world than your opponent, then you might be able to see them coming before they see you. But this is a moot point for Bioshock; it's a single-player game. It's definitely possible to go a little crazy with FOV if you don't have enough physical display size to justify the field of view you've chosen:

Quake with a large FOV

It's a tricky balancing act, and not many rendering engines get it right. That's probably why there's a Widescreen Gaming Forum dedicated to dealing with FOV and widescreen issues, along with at least one other website, Widescreen Gamer. As the widescreen display format becomes increasingly popular, you can expect to run into this little rendering quirk eventually.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror