Jump to content

FOV and fisheye effect


Recommended Posts

Is there a reason the camera zooms on the edges?  I took a picture of the "S" on the sign here and compared it to the size displayed when you position the "S" in the corner of the screen.  The entire sign appears much closer and is zoomed in.  The size quadruples when you look at it in the corner rather than in front of you.  This is very distracting in game and difficult to ignore. 

 

If I could do this in real life I could pass the test at the eye doctor and not need glasses.

 

1543001350_2s.thumb.png.9dbb5390a25507ce2a2f06ae6bfef99d.png716051671_comparisons.thumb.png.02f4292b80d092d7712d8db41afdb18a.png77154709_1s.thumb.png.14671545bf816478ba320d8072399160.png

Edited by Pritch (see edit history)
Link to post
Share on other sites
1 hour ago, Pritch said:

Is there a reason the camera zooms on the edges?  I took a picture of the "S" on the sign here and compared it to the size displayed when you position the "S" in the corner of the screen.  The entire sign appears much closer and is zoomed in.  The size quadruples when you look at it in the corner rather than in front of you.  This is very distracting in game and difficult to ignore. 

 

If I could do this in real life I could pass the test at the eye doctor and not need glasses.

 

1543001350_2s.thumb.png.9dbb5390a25507ce2a2f06ae6bfef99d.png716051671_comparisons.thumb.png.02f4292b80d092d7712d8db41afdb18a.png77154709_1s.thumb.png.14671545bf816478ba320d8072399160.png

This seems like a FOV issue to me - the FOV is set too "wide" for the screen's aspect ratio. I've noticed that with other games too. Could be wrong.

  • Like 1
Link to post
Share on other sites
2 hours ago, Pritch said:

Is there a reason the camera zooms on the edges?  I took a picture of the "S" on the sign here and compared it to the size displayed when you position the "S" in the corner of the screen.  The entire sign appears much closer and is zoomed in.  The size quadruples when you look at it in the corner rather than in front of you.  This is very distracting in game and difficult to ignore. 

 

If I could do this in real life I could pass the test at the eye doctor and not need glasses.

The higher your FOV, the more fish eyed it gets. Decreasing FOV should help, but you will see less.

  • Like 1
Link to post
Share on other sites
3 hours ago, Pritch said:

If I could do this in real life I could pass the test at the eye doctor and not need glasses.

In real life your field of view is huge - almost 180 degrees.  In a game, you have to cram that field of view into the confines of the player's display.  If you didn't, and you only saw as much of the world as you would see through a window the same size and distance away as your display, then it would be like playing with horse blinders on.

 

So the easy solution is to reduce FOV in game, but you could also increase your real life FOV with an ultrawide, curved, or just bigger overall display.  Or just sit closer.

Link to post
Share on other sites
2 hours ago, Crater Creator said:

In real life your field of view is huge - almost 180 degrees.  In a game, you have to cram that field of view into the confines of the player's display.  If you didn't, and you only saw as much of the world as you would see through a window the same size and distance away as your display, then it would be like playing with horse blinders on.

 

So the easy solution is to reduce FOV in game, but you could also increase your real life FOV with an ultrawide, curved, or just bigger overall display.  Or just sit closer.

So you're saying the zoom is from taking a 45 FOV and forcing it to fit a 170 degrees viewing angle?   Instead of forcing the same viewing angle at all FOVs (causing the zoom/stretch), is it possible for me to set the game to only use a narrower viewing angle (as you say, as if I am a horse with blinders on--that way it doesn't stretch a lower FOV to fit a wider viewing angle)?    And if I want a larger viewing angle without the zoom/stretch I can always increase my FOV.  The zooming is really distracting for me personally.
 

I'm still not 100% sure I'm getting this because I don't see this kind of zoom/stretch in Call of Duty.

I never see this kind of zoom/stretch in Call of Duty.   My FOV is set to 85 in 7D2D and I think Call of duty is 80 by default.  In Call of Duty, I can't read a sign easier by positioning it in the corner of my screen (I certainly am not noticing any stretch).  It's much easier on the eyes.  In 7D2D, if I can't really tell what a distant POI is, I just put it in the corner of my screen and, voila.image.thumb.png.b2bbae02d316c24776c4e262175467cd.png

 

Link to post
Share on other sites
5 hours ago, Crater Creator said:

In real life your field of view is huge - almost 180 degrees.  In a game, you have to cram that field of view into the confines of the player's display.  If you didn't, and you only saw as much of the world as you would see through a window the same size and distance away as your display, then it would be like playing with horse blinders on.

 

So the easy solution is to reduce FOV in game, but you could also increase your real life FOV with an ultrawide, curved, or just bigger overall display.  Or just sit closer.

I use a curved ultra wide and it actually makes the issue worse. The game doesn't seem to increase fov, it seems to just stretch an existing value. You can see what i mean in this thread here

Link to post
Share on other sites
6 hours ago, faatal said:

The higher your FOV, the more fish eyed it gets. Decreasing FOV should help, but you will see less.

That also depends on the screen aspect ratio.

A recent post here complained about "stretched" image on a 21:9 monitor compared to a 16:9 (*). Mistake was both used the same fov. So the 21:9 displays the same visible "area" as the 16:9 but stretched to a wider display size. Increasing the fov for the 21:9 display however makes it fish eyed. That's wrong. The wider display should be able to show a bigger fov without getting as fish eyed as a 16:9. Other games get this done also, they show wider view on ultrawide monitors without getting fish eye effect. Fish eye usually occures if you show really big FOVs on narrow displays.

 

In theory the perfect FOV is that one that your display really covers in your view. Assuming a 27" 16:9 display (60cm wide), viewed from 80cm distance, that would result in ~40°. Everything higher then 40° will show fish eye effect, because you are trying to display a wider view on display that is to narrow to show it undistorted.
However with a 21:9 34" that is 80cm wide should show a bigger FOV without fisheye as it is wider. It turns out to be at ~52°.
So the screen aspect ratio matters by how the graphics are rendered. If this is not considered (or hardcoded to 16:9) it will not work correctly.

 

 

16:9 27" (60cm c side), ~80cm distance.

triangle.png

 

 

21:9 34" (80cm c side), ~80cm distance

triangle-wide.png

 

 

(*) i guess that other topic on the forum was that one from that guy that just answered above this post. 😆

Edited by Liesel Weppen (see edit history)
  • Like 1
  • Afraid 1
Link to post
Share on other sites
6 hours ago, Pritch said:

So you're saying the zoom is from taking a 45 FOV and forcing it to fit a 170 degrees viewing angle?   Instead of forcing the same viewing angle at all FOVs (causing the zoom/stretch), is it possible for me to set the game to only use a narrower viewing angle (as you say, as if I am a horse with blinders on--that way it doesn't stretch a lower FOV to fit a wider viewing angle)?    And if I want a larger viewing angle without the zoom/stretch I can always increase my FOV.  The zooming is really distracting for me personally.
 

I'm still not 100% sure I'm getting this because I don't see this kind of zoom/stretch in Call of Duty.

I never see this kind of zoom/stretch in Call of Duty.   My FOV is set to 85 in 7D2D and I think Call of duty is 80 by default.  In Call of Duty, I can't read a sign easier by positioning it in the corner of my screen (I certainly am not noticing any stretch).  It's much easier on the eyes.  In 7D2D, if I can't really tell what a distant POI is, I just put it in the corner of my screen and, voila.

[snipped for space]

 

I think you're describing and/or thinking of it a little backwards.  The game wants to give you the experience of a wide field of view, so that you can pick up on things happening to either side, the way you could see them in your periphery in real life.  But since you have a screen and not a VR headset or something, the hardware physically can't cover the extent of your real life field of view, unless your nose is bumping the screen as in meilodasreh's image.  If you can see the walls of the room you're in in the corner of your eye, then the game isn't using your whole field of view.  It can only cover something like 40° based on Liesel Weppon's numbers.  So what the game has to do is like squishing a panorama image into a square picture frame.  Except, for 3D math reasons, the distortion isn't a uniform squishing, but it makes the edges appear larger than the center, to create what is called a fisheye effect.  That's why your S's appear at different sizes.

 

But the takeaway here is simple.  Just lower your FOV.  It's a simple setting in the display tab of the video settings.  You say you have it set to 85 now.  That's the maximum allowed FOV, so it causes maximum fisheye distortion.  The default is 65.  The range in 7DtD is actually relatively low for a first person game, because it's a sneaky way of not having to render as much and thus getting better performance.

 

Now I'd better punt this out of the Dev Diary since it's not about areas of active development. :)

Link to post
Share on other sites
1 hour ago, Crater Creator said:

But the takeaway here is simple.  Just lower your FOV.  It's a simple setting in the display tab of the video settings. 

Nope, that's exactly the opposite of what you want if using a wide screen, because that takes the advantage of seeing more because of a wider screen away again.

The wider screen would allow for a higher FOV without distortion, but the game seems not to handle that correctly.

 

As pointed out above, you could put your nose on the screen, that would allow for almost 180° fov. But it won't handle the perspective correctly, as the rendering is based on some assumed viewing distance. From my numbers above, assuming 80cm of viewing distance and 60cm wide display 40° would be a perfect fit. So maybe developers choose to use 50° as a default setting, accepting a litte fish eye effect on the borders.

If you now switch to a 21:9, you basically still have the same 50° with already little fisheye although your monitor would allow 52° without fisheye. If you now increase the FOV further it causes even more fisheye, because it doesn't "correct" to your display size.

 

I guess my try to explain it isn't the best, but sadly i can't find better words to explain it.

 

Another factor that ideally should be taken into account by the engine is if the monitor is flat or curved. The wider a flat monitor is, the more fisheye you will get, because you are projecting a curved plane view onto a flat plane. However if the monitor is curved, it compensates that projection error. So if the rednering assumes a flat display and therefore causes fisheye effect, on a curved display it becomes even worse. Imho the rendering algorithm should always think the display is curved. So if you output onto a flat display the physical issue of being flat will perspectively cause the fish eye effect (the edges of the screen are further away from your perspective than its center).

 

Or lets look at the other extreme, maybe that'll make it more understandable. Placing multiple curved monitors with 1000R in a full circle with 1m radius would allow to provide a fov of full 360° without any fisheye effect, if the engine knows about that setup and takes it into account while rendering. From what was described here, that will not work with 7d2d, because it doesn't care for that effect but seems to use some hardcoded assumptions on display size and viewing distance.

 

The screenshots of Assassins Creed that @Naz posted in the other linked thread show, how it should look like on a wide screen compared to a less wide screen if done correctly. No increased distortion, but still a wider fov.

 

I'm interested into this issue, because i also plan to switch to 21:9 soon. And in 2020 i expect games to be able to deal with that (however, there are games out that there that do it even worse).

 

Edit: Oh i just had another idea, where you can see the reverse effect: Beamers. They usually have a minimum and maximum projection distance. Within this range they compensate the anti-fish-eye effect that physically results by projecting onto a flat surface. If you exceed the maximum distance, they can't compensate that fully even more.

Basically the same effect like flat maps of earth are (heavily) distorted on its edges, because it's impossible to project the surface of a sphere onto a flat surface without distortion. But you can project just segments of it with less distortion. That's why russia looks bigger than africa on a flat map. But if you look on a globe, where no distortion is caused, because it is projected onto an actual sphere, you can see that in fact russia is not even half the size of africa.

 

Edit 2: if anybody wonders why i refer to aspect ratio and then only refer to the width of a monitor... that's exactly the issue. Basically there are 2 FOVs, a vertical and a horizontal. The slider changes the horizontal FOV, but what about the vertical one?

3440x1440 and 2560x1440 have the same height! So the vertical FOV needs to stay the same, but the horizontal one has to be increased on the wider screen.
How does the game set the vertical FOV? If it assumes that the vertical value is 9/16 of the horizontal one, THAT's the mistake. Increasing both makes the viewport higher than your screen is. So by the projection the image is not stretched horizontally but instead shrunk vertically to still fit on the screen with higher aspect ratio.
 

 

 

Edited by Liesel Weppen (see edit history)
Link to post
Share on other sites
1 hour ago, Crater Creator said:

Now I'd better punt this out of the Dev Diary since it's not about areas of active development. :)

No problem.  Hey, thank you for the detailed explanations this is exactly what i need and was looking for.  

 

I had a roommate who played a game that spread across 3 monitors.  I never had to think about this topic much, but having to squish his entire viewing angle into one monitor would seem to raise complications, no doubt.  This is all making a little more sense now, thanks for the reply.

 

(I'm currently at work.  I'm looking forward to reading the rest of the replies here--particularly the math--when I finish for the day.  Thank you all.)

Edited by Pritch (see edit history)
  • Like 1
Link to post
Share on other sites

I think the problem may also be a product of having an overall cubical range of view rather than a truly hemispheric one. I always notice this with voxel games that I play. It is extremely noticeable in Minecraft because it doesn't have distant terrain masking it to some degree. I could be wrong on this but when I look at distance objects and then turn from side to side I get a distinctly square feeling to the range of my view and that distorts the view as turn in a circle within the middle of that square.

Edited by Roland (see edit history)
Link to post
Share on other sites

The issue is common and a bit of a trade-off on either side.

 

You can calculate perfect FOV with a little bit of trigonometry, as was mentioned earlier, sitting closer to the monitor will indeed adjust this calculation. 

 

Doing so generally leaves you with a very limited peripheral vision, more than most people are comfortable with.  You can increase your peripheral vision but the more you do, the more distorted the edges become.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...