For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

Can horizontal and vertical FOV be controlled separately?

Report bugs, read about fixes, new features and ask questions about the Unreal 227 patch here. Place comments and commit suggestions.
Post Reply
User avatar
Devil Master
OldUnreal Member
Posts: 60
Joined: Sat Jun 18, 2011 8:30 pm

Can horizontal and vertical FOV be controlled separately?

Post by Devil Master »

This is something I was wondering because I recently assembled myself a homemade VR HMD, which I use to play games that ReShade makes stereoscopic. One of them is Unreal, and, while it works as expected, I just got an idea which would make it even more immersive. I just don't know whether it would actually work!

So, let's say this picture represents the original game output, before any shader modifies it. A single view, where the horizontal and vertical proportions are the same.
Image

What ReShade does is to intercept the graphical calls and modify them with different effects depending on the applied shader.
The first shader I apply is SuperDepth3D, which draws two different views (from two slightly different points of view) instead of just one. In "side by side" mode, the two views are drawn besides one another, and they are squashed horizontally to make them fit the screen.
Image

In order for them to have the correct proportions, I apply a second shader (3DAdjuster), which lets every view to be moved around, stretched or squashed independently. I set it to squash the two views vertically.
Image

Now, while this works, it has two drawbacks: first, visible black bars remain at the top and bottom of the scene. Second, it halves the vertical resolution. So I was thinking: would it be possible to tweak some options to double the vertical FOV, while leaving the horizontal FOV unchanged?

This would be the result, with no shader applied. Compared to the original image, this one would look squashed vertically, but more of the environment would be drawn at the top and bottom.
Image

At this point, if I applied the SuperDepth3D shader, the image would get squashed horizontally, but its proportions would already be correct and the two views would occupy the entire screen, with no black bars, like this:
Image

What I want to know: is it feasible?
Last edited by Devil Master on Sun Apr 15, 2018 6:27 pm, edited 1 time in total.
User avatar
han
Global Moderator
Posts: 686
Joined: Wed Dec 10, 2014 12:38 am

Re: Can horizontal and vertical FOV be controlled separately?

Post by han »

The idea behind making vertical FOV based on horizontal FOV and aspect ratio is that on typical display devices the horizontal and vertical DPI are identical.

You would only need independend FOVs if that is not fullfilled for your display device.

However you do have control over the aspect radio, so why don't you just double the vertical resolution for rendering?
HX on Mod DB. Revision on Steam. Löffels on Patreon.
User avatar
Devil Master
OldUnreal Member
Posts: 60
Joined: Sat Jun 18, 2011 8:30 pm

Re: Can horizontal and vertical FOV be controlled separately?

Post by Devil Master »

The idea behind making vertical FOV based on horizontal FOV and aspect ratio is that on typical display devices the horizontal and vertical DPI are identical.
They are, and in fact, the display can show a perfectly normal 1080p Windows desktop. Using it for stereoscopy, however, halves the horizontal resolution, because the same amount of elements is used to display two side-by-side images instead of one.
However you do have control over the aspect radio, so why don't you just double the vertical resolution for rendering?
The amount of control I have is not complete. The catch is that I must always start from a 1920x1080 image. I can move it around or stretch it at will, but if I doubled the vertical resolution, the video card would output an image at a nonstandard resolution which the display would not recognize.
User avatar
Kajgue
Global Moderator
Posts: 757
Joined: Mon Oct 17, 2005 2:36 pm

Re: Can horizontal and vertical FOV be controlled separately?

Post by Kajgue »

There was a guy working on a stereoscopic mod for Unreal some time ago, though I don't remember his name.

His name might have been 'intergration'? But don't quote me on it!
AKA - ( T : S : B ) Ice-Lizard
Image
User avatar
han
Global Moderator
Posts: 686
Joined: Wed Dec 10, 2014 12:38 am

Re: Can horizontal and vertical FOV be controlled separately?

Post by han »

The amount of control I have is not complete. The catch is that I must always start from a 1920x1080 image. I can move it around or stretch it at will, but if I doubled the vertical resolution, the video card would output an image at a nonstandard resolution which the display would not recognize.
But the image is not outputted to the display directly? Sounds to me rather more like a ReShade limitiation. If the outputted image is used for sampling later on, it's resolution could be arbitrary in the first place...
HX on Mod DB. Revision on Steam. Löffels on Patreon.
User avatar
Devil Master
OldUnreal Member
Posts: 60
Joined: Sat Jun 18, 2011 8:30 pm

Re: Can horizontal and vertical FOV be controlled separately?

Post by Devil Master »

The amount of control I have is not complete. The catch is that I must always start from a 1920x1080 image. I can move it around or stretch it at will, but if I doubled the vertical resolution, the video card would output an image at a nonstandard resolution which the display would not recognize.
But the image is not outputted to the display directly? Sounds to me rather more like a ReShade limitiation. If the outputted image is used for sampling later on, it's resolution could be arbitrary in the first place...
ReShade cannot alter the number of pixels the image is composed of: it can only change what those pixels show. If you start with a 1080p image, you always end up with a 1080p image. For example: if you squash vertically a 1080p side-by-side stereo pair to give it the correct proportion, the final image will still be 1080p... only, the upper and lower quarters will be black.
User avatar
han
Global Moderator
Posts: 686
Joined: Wed Dec 10, 2014 12:38 am

Re: Can horizontal and vertical FOV be controlled separately?

Post by han »

Like I said, I see this as a ReShade limitation, in it's implementation to be precise.

It does all kinds of API replacement/hooking, thats why I don't see why, for example in case of OpenGL can't just replace the default bound framebuffer object and hook glBindFramebuffer(), etc. calls to remap it to it's own replacement fbo, which could be arbitrarily sized, to directly read from it later on for it's own processing.


Last edited by han on Tue Apr 17, 2018 4:35 am, edited 1 time in total.
HX on Mod DB. Revision on Steam. Löffels on Patreon.
Post Reply

Return to “Unreal 227”