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
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?
- Devil Master
- OldUnreal Member
- Posts: 60
- Joined: Sat Jun 18, 2011 8:30 pm
Can horizontal and vertical FOV be controlled separately?
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.
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.
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.
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.
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:
What I want to know: is it feasible?
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.
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.
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.
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.
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:
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.
- han
- Global Moderator
- Posts: 686
- Joined: Wed Dec 10, 2014 12:38 am
Re: Can horizontal and vertical FOV be controlled separately?
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?
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?
- Devil Master
- OldUnreal Member
- Posts: 60
- Joined: Sat Jun 18, 2011 8:30 pm
Re: Can horizontal and vertical FOV be controlled separately?
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.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.
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.However you do have control over the aspect radio, so why don't you just double the vertical resolution for rendering?
- Kajgue
- Global Moderator
- Posts: 757
- Joined: Mon Oct 17, 2005 2:36 pm
Re: Can horizontal and vertical FOV be controlled separately?
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!
His name might have been 'intergration'? But don't quote me on it!
AKA - ( T : S : B ) Ice-Lizard
- han
- Global Moderator
- Posts: 686
- Joined: Wed Dec 10, 2014 12:38 am
Re: Can horizontal and vertical FOV be controlled separately?
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...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.
- Devil Master
- OldUnreal Member
- Posts: 60
- Joined: Sat Jun 18, 2011 8:30 pm
Re: Can horizontal and vertical FOV be controlled separately?
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.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...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.
- han
- Global Moderator
- Posts: 686
- Joined: Wed Dec 10, 2014 12:38 am
Re: Can horizontal and vertical FOV be controlled separately?
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.
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.