Jump to content

The Truth About Fov


45 replies to this topic

#1 Phaesphoros

    Member

  • PipPipPipPipPipPipPip
  • 513 posts

Posted 08 April 2013 - 03:46 PM

Edit: Follow-up topic on "wrong" but more immersive values for FoV: The Lies about FoV


.... and all the truth :P It's so P2W....

Well I thought why not make some nice pictures about what FoV actually is. Seems like I failed, though..... *shrug* look very much like the mathematics program I made them in.


0th of all: To everyone that already knows about what FoV value (s)he prefers: CryEngine uses a vertical FoV value, many other FPS use(d) a horizontal FoV value. You can find some calculators to get vertical from horizontal using google, e.g. found this one: fovcalculator
FPS default value for horizontal FoV is about 90°, that is for a 16:9 display about 60° vertical -- which matches CryEngine's default value.


First of all: What is FoV?

Field of View is some parameter used in the process of rendering the virtual world (i.e. the big stompy robots) to your real-life screen:

Posted Image


As your screen is flat but the mechs are fancy 3d since 1989, you need some kind of procedure to flatten or project the virtual world onto the screen surface (pixels). This is done using what is called a perspective projection, in order to make it look like your screen is a window to the virtual world (mind you, it's the part of the screen where the MWO window is on, but I'm assuming full-screen mode).

Posted Image
woooo! fancy 3D!! actually, of of the pics here are created with 3D models, even if some might look very flat (they're orthographic projections)


The perspective projection is set up using an object in the virtual world, a virtual camera. This camera has a position in the virtual world (that is changed when your avatar/pilot moves in the virtual world), an orientation (changed when you look around or turn) and some "fixed" parameters, one of those can be set up using FoV.
These parameters are necessary for two reasons:
  • Graphics gimmicks like zooming
  • Real Life is not a constant
As you might already have seen on the picture above: if your screen shall be a window to the virtual world, the blue frame in the picture above has to designate your real-life screen. But not all screens have the same size, and not everybody is sitting at the same distance from their screen. Just take a real life window: You see some things outside, but what you see changes if you move or if you install a bigger/smaller window.







Therefore, the virtual camera has to be set up to match your real-life screen. Two examples with same screen size, but different distances:
(note this is a 16:9 screen, 0.5 m width = 0.3 m height; 1.5 m width = 0.9 m height)

Posted Image
If you're close to a window, you'll see more of what's next to the window, same here e.g. with the green sphere. As the resolution of a screen is limited, you'll actually get more details in the distance when you're far from the screen (!), example #1.
Please also note on the second example the sphere in the "screen content" does not look circular - well actually it would if you went with your nose to your screen and looked at a 400 % enlargement.


What's the relation to FoV?

Thanks to p00k for pointing out that CryEngine uses a vertical FoV rather than a horizontal FoV.

Side view:Posted Image

Vertical Field of View is twice the angle between the line from you to the center of your screen ("distance to screen") and the line from you to the center of the bottom/top of your screen. Crap, just look at the picture.

The only formula you'll see here: Posted Image

Yes, there's a correct or, in other terms, adequate value for your FoV. You can calulate it using the above formula; with the Windows Calculator, first compute the fraction, then apply Inv+tan (radio button set to "Degrees"), then multiply by 2. Mine is about 25°, btw, wtf...
You can set it in the user.cfg file as a line
cl_fov = <insertyourvaluehere>
e.g.
cl_fov = 50

Of course, you can use other, "wrong" values. But you'll get some effects like with the sphere above: The perspective is not right. Same thing when you look at a steep angle to your screen.

Interesting find:
The default value CryEngine uses is 60°. That is, if you have a 24" screen (diagonal), that's about 50 cm wide and 30 cm high (visible area). To get a vertical FoV of 60°, you have to be about 25 cm far from your screen (distance eye <-> screen surface). WTF.

Horizontal and vertical FoV:
Some games use a horizontal FoV value, CryEngine uses a vertical FoV value to set up the virtual camera. You can calculate the horizontal FoV just like the vertical one by replacing "screen height" with "screen width". Also note that the two values are redundant, as your resolution (e.g. 1920x1080) determines the aspect ratio of your screen. With the aspect ratio, you can calculate horizontal FoV from vertical FoV and vice versa.


Now, FoV is one parameter. There are others (AFAIK we cannot adjust them!). Why is this relevant?

Vertical Field of View is a combination of the two parameters "distance from screen" and "height of screen". The "width of screen" can be calculated using the resolution; e.g. 1920/1080 = 16/9. That's another reason to use a resolution with the aspect ratio of your screen, btw.
But those two parameters (distance, height) cannot be extracted from the single FoV value - that is, there are several possible setups with the same FoV value.

I'll add a third example to the two above, that has the same FoV value as the second. There, someone uses a huge 1.5 m * 0.9 m screen (same aspect ratio 16:9):
Posted Image
This is mister P2W. He's got a 1.5 m wide screen, that is 60" wide, and 70" diagonal o.O Obviously, he's using MC coolant flush, arty, air strike and the 6ERPPC STK to get the most P2W out of the game.

But: He won't get any advantage just from using a large screen. His FoV is the same as in the second example. So if he (can) only adjusts the FoV value, he'll NOT get the screen content shown above, but rather the same screen content as example #2. As Morang pointed out (thank you), that does not mean he'll see wrongly scaled mechs -- at least if you don't start with fance things such like head-tracking or stereoscopy (that's my background and therefore the reason I got this wrong first).


NOOOOO I'M OUT OF PICTURESS!!!


Size & FoV

Although Mr P2W should see even more on his screen than poor example #2, this is not the case. To match his screen setup, MWO had to allow to move the pilot's seat back (if you increase your distance to the screen), compare the screen distance of #2 to Mr P2W.

Why isn't this allowed? Well, because that alters gameplay:
  • If you move your seat far enough back - yay! 3rd person!
  • If you move it too far forward, there's no cockpit obstructing your view.
  • There are additional issues with "wall-hacks", namely, the bounding box of your mech has to be adjusted in order to prevent your from looking into any geometry - there aren't any textures inside, therefore you can just look trough (even through the opposite side!).
There are ways to contain these problems, but that would rather be worth a dedicated post in Suggestions.










Conclusion

THERE CAN ONLY BE ONE!!!!!11eleven true FoV value, but it's different for each screen setup.

To see more of what's to your side (peripheral vision), you'd normally use some NVidia Surround / ATI eyefinity setup.
Or you move the position of the camera, e.g. so that all of the cockpit's windows are displayed on your real-life screen. This is equivalent btw to your avatar/pilot moving her/his head to/from the windshield.




TL;DR
Rly? Screw you. If you want to adjust your FoV to a more immersive value, continue not reading here: The Lies about FoV

Edited by Phaesphoros, 12 April 2013 - 01:56 PM.


#2 Roadbeer

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • Elite Founder
  • 8,160 posts
  • LocationWazan, Zion Cluster

Posted 08 April 2013 - 03:47 PM

OMG!!!

Math, learning, diagrams... I'll have to come back to this later.

#3 Davers

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 9,886 posts
  • Facebook: Link
  • LocationCanada

Posted 08 April 2013 - 03:51 PM

Usually using pictures makes things easier to digest and read.... What happened here? :P

#4 Egomane

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • 8,163 posts

Posted 08 April 2013 - 03:56 PM

There is one little problem with your post.

Your personal perfect value for FoV of 50 is invalid in this game. It is to low. I believe the minimum was 60 or 65. Need to look it up again (if needed), as the restriction was made a few months back. :P

#5 Phaesphoros

    Member

  • PipPipPipPipPipPipPip
  • 513 posts

Posted 08 April 2013 - 03:56 PM

View PostDavers, on 08 April 2013 - 03:51 PM, said:

Usually using pictures makes things easier to digest and read.... What happened here? :P

Well I went out of ponies... and using a CAS was easier than setting up CryEngine and/or extracting the models. Maybe it's even a bit more obvious what the FoV effects are, but it looks kinda boring.

Edited by Phaesphoros, 08 April 2013 - 03:59 PM.


#6 l4Dl

    Member

  • PipPipPipPipPip
  • 149 posts

Posted 08 April 2013 - 03:57 PM

View PostDavers, on 08 April 2013 - 03:51 PM, said:

Usually using pictures makes things easier to digest and read.... What happened here? :P

hehe, good article regardless.

In easy terms from past experiences (q1/q2/q3 ut99+ etc etc):
High FOV 90+ = Great visibility around you, Less accuracy at longer ranges.
Low FOV 70- = Low visibility around you, High accuracy at longer ranges.

#7 Phaesphoros

    Member

  • PipPipPipPipPipPipPip
  • 513 posts

Posted 08 April 2013 - 03:58 PM

View PostEgomane, on 08 April 2013 - 03:56 PM, said:

There is one little problem with your post.

Your personal perfect value for FoV of 50 is invalid in this game. It is to low. I believe the minimum was 60 or 65. Need to look it up again (if needed), as the restriction was made a few months back. :P

Meh, I heard of that, but I thought it should exclude extreme FoVs like 10° or 80°... It doesn't change what the correct FoV value is, though.

#8 Davers

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 9,886 posts
  • Facebook: Link
  • LocationCanada

Posted 08 April 2013 - 04:00 PM

View Postl4Dl, on 08 April 2013 - 03:57 PM, said:

hehe, good article regardless.

In easy terms from past experiences (q1/q2/q3 ut99+ etc etc):
High FOV 90+ = Great visibility around you, Less accuracy at longer ranges.
Low FOV 70- = Low visibility around you, High accuracy at longer ranges.

Then why didn't he just say that? :P

#9 Wintersdark

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • 13,375 posts
  • Google+: Link
  • Twitter: Link
  • LocationCalgary, AB

Posted 08 April 2013 - 04:12 PM

View Postl4Dl, on 08 April 2013 - 03:57 PM, said:

hehe, good article regardless.

In easy terms from past experiences (q1/q2/q3 ut99+ etc etc):
High FOV 90+ = Great visibility around you, Less accuracy at longer ranges.
Low FOV 70- = Low visibility around you, High accuracy at longer ranges.


This. I run with a high FOV, because my display has a 16:9 (wider) aspect ratio. My old display was 16:10 (taller), so I made the change to get roughly the same perspective, with more on the sides with the added display width.

I4DI is correct, but it should be noted that an increased FOV doesn't necessarily do you any good, and is in very many cases purely a disadvantage.

This is because many (most?) mech chassis have obstructions that block view to the sides. The Heavy Metal, for example, eats about a quarter of the width of my screen with naught but huge magenta shoulder guards:

Posted Image

Hax! Look at all the sexy shoulder pads I can see, and I give up long range precision for that privilege.

Or an Atlas?

Posted Image

(And no, the red circles aren't some silly hack, this was a picture I edited to show how easy it is to snipe parts of mechs at extremely long range w/o heat vision in response to one of the many "OMGHAXHEADSHOTS" complaints.)

Edited by Wintersdark, 08 April 2013 - 04:16 PM.


#10 l4Dl

    Member

  • PipPipPipPipPip
  • 149 posts

Posted 08 April 2013 - 04:14 PM

View PostDavers, on 08 April 2013 - 04:00 PM, said:

Then why didn't he just say that? :D

Because some times, we get lost in train of thought and forget a simple answer might be the better solution :P

For example, i understand the below easier than anything else:
if(fFov <= 70.0f)
{
    sPlayerVisibility = "Low";
    sPlayerAccuracy = "High";
}
else if((fFov > 70.0f) && (fFov <= 80.0f))
{
    sPlayerVisibility = "Average";
    sPlayerAccuracy = "Average";
}
else
{
    sPlayerVisibility = "Insaine";
    sPlayerAccuracy = "Null";
}


#11 Kiiyor

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • Big Daddy
  • Big Daddy
  • 5,564 posts
  • LocationSCIENCE.

Posted 08 April 2013 - 04:36 PM

This looks great! I'll have to crack out ye olde calculator later and experiment. I have mine quite wide ATM, mainly because I like seeing the computer screens in the cockpit warp and curve in the startup sequence.

"BENDING LCDs? It's so futuristic!"

#12 aniviron

    Member

  • PipPipPipPipPipPipPipPipPip
  • 3,752 posts

Posted 08 April 2013 - 05:15 PM

Note that having a technically correct FOV setup may not be optimal for play, even if it is good for display quality. You might find that this 'window' is too small for you to adequately take in your surroundings, and prefer a distorted but useful setup to an accurate one.

#13 l4Dl

    Member

  • PipPipPipPipPip
  • 149 posts

Posted 08 April 2013 - 05:53 PM

View Postaniviron, on 08 April 2013 - 05:15 PM, said:

Note that having a technically correct FOV setup may not be optimal for play, even if it is good for display quality. You might find that this 'window' is too small for you to adequately take in your surroundings, and prefer a distorted but useful setup to an accurate one.

Couldnt agree more, personal preference is always key. Experiment with it and set the FOV value to your ideal setting.

#14 Fishbulb333

    Member

  • PipPipPipPipPipPip
  • Elite Founder
  • Elite Founder
  • 392 posts

Posted 08 April 2013 - 05:57 PM



#15 Viper69

    Member

  • PipPipPipPipPipPipPipPipPip
  • 4,204 posts

Posted 08 April 2013 - 06:07 PM

Someone just wrote a paper on ergonomics and decided to test it out on us before turning it in.

#16 p00k

    Member

  • PipPipPipPipPipPipPipPip
  • 1,661 posts

Posted 08 April 2013 - 06:09 PM

no one's corrected OP on how cryengine's FOV is a vertical FOV?

#17 Dreamslave

    Member

  • PipPipPipPipPipPipPip
  • 627 posts
  • LocationUpstate New York

Posted 08 April 2013 - 06:13 PM

My brain. It hurts.

#18 Phaesphoros

    Member

  • PipPipPipPipPipPipPip
  • 513 posts

Posted 09 April 2013 - 05:47 AM

bump for other time zones and to get this in front of all the closed MG threads

#19 Urfin

    Member

  • PipPip
  • 39 posts
  • LocationMoscow

Posted 09 April 2013 - 05:53 AM

If you're saying 50 is the right FOV, you are obviously mad.

#20 Phaesphoros

    Member

  • PipPipPipPipPipPipPip
  • 513 posts

Posted 09 April 2013 - 05:56 AM

View PostUrfin, on 09 April 2013 - 05:53 AM, said:

If you're saying 50 is the right FOV, you are obviously mad.

If you're saying there's TEH right FOV, you obviously didn't read my post. A FoV value is correct for one specific setup, i.e. screen size and distance from screen. Maybe my setup is uncommon, but the value is correct for my setup.

Btw: CryEngine's default FoV value is 60°.

Edited by Phaesphoros, 09 April 2013 - 05:59 AM.






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users