View Single Post
  #2  
Old 04-28-2011, 05:04 PM
Psycho_Ch!cken Psycho_Ch!cken is offline
Approved Member
 
Join Date: Mar 2011
Posts: 41
Default

I would strongly suggest you read up a little on the way "3D" worlds are displayed on 2D screens.

There's nothing "at fault" with the game engine or its field of views. The reason they suggest 30 degrees is closest to reality is because if you're sitting at the ergonomically correct distance from your monitor, it will take up an area roughly equal to 30 degrees of your eyes' own field of view. Additionally, the objects displayed on the screen will be rendered at approximately the size you would see them as in reality, if they were at the distance being simulated in the game world. At a wider field of view, objects will appear far smaller than they would in reality and are much, much harder to see (planes about to bounce you for instance) than they would otherwise be.

As far as I understand the rest of your post, I get the impression you think it's possible to render as wide a field of view as we like without distortion? I'm afraid that's just not possible and there will always be a level of distortion no matter how much you're rendering. This is because you're attempting to represent an arc of view on a flat plane (your screen). When you try to take something curved and flatten it out, you get distortion. Look no further than a world map for a perfect example - all those northern areas are grossly distorted and look much larger than they really are, as a result of being "unwrapped" from a round object.

There is nothing different or "special" about this engine over any other as far as the way they render is concerned. Each and every single game you play is faced with the same constraints, you just don't realise it.

Now if you want to talk about a genuine flaw in the way they handle field of view, it's this - there's no recognition of horizontal or vertical field of view as being separate. Certainly the engine can do it, they're just not using it. 90 degrees at maximum hotkeyed fov is appropriate for a 4:3 monitor, not a 16:10 or 16:9 one, which should be closer to 100 degrees horizontal fov. For those of us who use Eyefinity, there's no handling of alternative aspect ratios like 24:5 which I typically use. That means that either I lose a huge chunk off the top and bottom of my vision, or I get a huge amount of heavily distorted vision at the top and bottom of my view (when using the manual fov slider). What the game needs is to be adjusting the default fov based on your aspect ratio first and foremost and then dynamically changing the values for "30/70/90" to suit the ultrawide perspective.

In fact, in case a dev happens to wander through, however unlikely, I'll quote myself from another thread:

Quote:
Really, for Eyefinity to be viable, the horizontal FoV needs to be calculated dynamically based on aspect ratio. Presently it's assumed that everyone's using a 4:3 aspect ratio and naturally that doesn't play nice for ultrawide configurations. Even using the progressive FoV adjust controls, that's changing the entire FoV instead of just horizontal which gives you too much vertical FoV and a whole lot of stretching to go with it. What needs to be added is a calculation that changes the actual values of "30, 70 and 90" degrees to new ones that give the same level of apparent "zoom" but take into account the extra width of the screen. Something like:

FoV to Use = (ATan2((Tan((OriginalFoV * Pi) / 360.0) * (AspectRatio / BaseAspectRatio)), 1) * 360.0) / Pi

Where OriginalFoV = 30/70/90, AspectRatio = whatever you're using (resolution width/height) and BaseAspectRatio = 0.75 (4/3)

So everytime you hit a key to change the FoV (del, end, page down) rather than just setting 30/70/90 as it currently does, it should run that calculation (or something like it) and then set the FoV to the resultant value instead.
Reply With Quote