Widescreen Gaming Forum

[-noun] Web community dedicated to ensuring PC games run properly on your tablet, netbook, personal computer, HDTV and multi-monitor gaming rig.
It is currently 27 Nov 2024, 15:22

All times are UTC [ DST ]




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 16 Jun 2014, 13:28 
Offline

Joined: 04 May 2014, 22:28
Posts: 2
This post is long. It also contains some very bad attempts at 3D modelling. Ye be warned.

I've been looking into doing a triple-monitor setup for some 10 to 15 years now, but there have always been too many issues with them to be worth the money it costs. These days, most of the games I play have some kind of third-party support for changing the field of view, fixing the HUD, and getting non-standard resolutions to work, but there's still one giant elephant in the room: the "fisheye" effect. And the fact that right now I can't afford it, but let's pretend otherwise for this discussion.

There's a sticky up there that claims I should just ignore it because apparently radical distortion when I look to my left and right is "immersive" and I'm never supposed to look anywhere but the center of my central screen. Maybe that applies to some people, but it's not even close to applicable to me. Paying tons of money so I can get 30 to 40% more field of view, all of which is sickeningly skewed, is out of the question, so unless there's a way to minimize the problem, I won't bother. I've done a lot of searching, but other than a couple of games that natively support some level of correction, I have found very little useful information on the subject. Still it seems I can't be the only one who really wants proper widescreen support, so I'm hoping somebody has some information. Even if I can't afford a three or five monitor setup, it would be really nice to minimize the already-bad distortion on my single monitor setup.

I know people have been writing various hacks to make the Oculus Rift work on games, so it seems like there really should be *some* way to hack the projection on a typical game so it looks passable on a triple-monitor setup. Ideally, we would have full 360° horizontal, 180° vertical screens with something like 10 Gpx, but until that becomes affordable, we have to make do with projecting onto relative crap. In my case, I'm thinking either a 3x1 landscape setup or a 5x1 portrait setup. The 5x1 setup would be more expensive and have more noticeable bezels, but would also give me much higher resolution, while the 3x1 would be nicer for very wide angles, like racing games, while still having decent resolution.

1. The most obvious way to get "proper" viewing is to either sit 3 inches from the screen or lower the field of view to like 20°. Without much higher resolutions, or some way to render very high resolutions near the center of the screen while lowering the resolution around the edges, even a hundred-foot-wide screen will look like crap at the correct distance, and anything resembling correct field of view from a normal distance is just far too low to be playable. Furthermore, the maximum viewing angle is limited to a hemisphere with an infinite number of screens (though you could probably get pretty close with like 100 screens), and it takes more additional screens per extra degree of viewing angle.

2. One simple way to minimize the distortion, particularly in extremely wide setups, is cylindrical projection. Because I don't have curved monitors, cylindrical projection will cause straight lines to curve away from me near the corners, but the effect is much less significant than on a standard triple-wide setup (and probably considerably better than current distortion on my single-monitor setup). Without very tall monitors, 1:1 world:view ratios still won't be possible, but they should be close, and might be acceptable for racing games where vertical vision is less meaningful. Even better, you can get pretty much any field of view you want, provided you can afford the hardware to display it.

3. The other way to minimize distortion is to render a separate view for each screen using traditional methods. You'd still have the noticeable distortion at the edges of the screens like you get on single-monitor gaming, but it wouldn't be as ridiculously bad as the current solutions, and would allow you to render as many degrees as you can afford monitors, like the cylindrical projection. Also, because each monitor would likely be set to a lower fov than a single monitor, the distortion per monitor would be lower.

Has anyone come up with a way to get close to (2) or (3)? I don't mind taking a bit of a framerate hit (like needing 20-30% more computing power) to do something like Fisheye Quake, but I'm hoping for a solution with a pretty minimal impact beyond the impact you'd normally get from running lots of monitors at once.

Some pictures to illustrate the problem, its cause, and some solutions. Note that I haven't done exact math on most of these, so they're just eye-balled approximations, and some of the screenshots were taken at pretty low resolution -- I mostly used 1920 x <whatever gave the correct aspect ratio> so I could see the entire image. Click an image to go to its Flickr page. I've linked to reasonably large resolutions and you can click the links up top to get full resolution if you want. The entire image group is here, and has extra comments I put on each image if you feel like reading them.

Here is approximately where your monitors are "supposed" to be for a 5-monitor setup (24", 16:10, 6000 x 1920 total resolution). Obviously, they are far too close to comfortably play, and even if we moved it three times as far out and made them three times larger, you would be seeing subpixel elements at 1080p resolutions per screen.
Image

This image shows why this "correct" distance is supposed to work. The pixels farthest from the viewer look smaller, because they're farther. Because the game zooms in on those pixels, this effect neatly cancels out, giving a distortion-free viewing experience.
Image

As you put the monitors farther away, the farthest monitors aren't as far as they should be any more. At the "correct" distance, the far edge of the far monitor is maybe 3 times as far as the center of the screen. At a typical distance, that edge is only 1.5 times as far. This means the distortion still appears to be distorted, around twice the correct size, and needs to be compensated for or it will look weird. The obvious solution is to tilt the side monitors progressively farther away (this image also shows a reasonable approximation of how much extra visibility you're actually (not) getting with those extra monitors).
Image

However, this is how most people put their monitors. This initially makes more sense, because each monitor takes up the same angular space, and a 5-monitor setup means 5 times more visible area. Unfortunately, with rectilinear projection, it actually exacerbates the distortion along the edges, making it even worse than it already was.
Image

Let's take a closer look. Note specifically that the cave on the left (it may actually be a rock, but I'm calling it a cave entrance) is much larger than the house in the center screen, across the lake, and that the trees in the center view take up less than half the screen.
Image

Now, let's look at (nearly) the same image, but using a cylindrical projection on a curved screen. Note how the cave and the house appear to be about the same size now, and the trees take up most of the screen. You lose some vertical fov in the center, but if this was a shooter game with a guy on that roof, you could headshot him without even zooming in. Furthermore, looking off to your left, you see *much* more of the screen, and it's all the right size. (It may be hard to tell since the views aren't identical, but measuring from the base images: on the rectilinear screen, the rock is 125/614 pixels high, or 20.4% of the screen, and the house is 49/614 px or 8.0%, while on the cylindrical screen the rock is 55/340 px or 16.2%, and the house is 51/340 px or 15.0%.)
Image

Here's the cylindrical projection on a triple-monitor setup (27", 16:9, 5760 x 1080 total resolution). It's more than 180° horizontal, but still has a decent vertical view. I'm sure there's a happy medium somewhere, but this just illustrates how much less distortion there is even on a flat screen. The image should zoom in a little near the edges to correct the distortion, but it's more playable already than on the 5-screen setup with rectilinear projection.
Image

For reference, here's the image I used for the cylindrical projection. It's actually just a bunch of regular screens I stitched together in paint.net to look about right. I completely forgot to go back to a normal resolution before taking all the screenshots, then didn't realize what I'd done until I was like 180° into the image, so the resolution is crap (340 pixels vertical), which is also why the Sketchup close-ups look so terrible. I thought about re-doing it at 1080p vertical, but I got lazy and never did. I don't have a triple-monitor setup, but I bet if someone who does takes the full-sized image, zooms in so it takes up the whole screen vertically (and presumably goes way off the screen horizontally), and has the monitors tilted so they're all the same distance, it will look pretty decent as you scroll left and right (other than the low resolution of course).
Image

Here are a couple other ideas I played with that are far out of my reach for the moment. The first two would require a lot of monitors (12 for the 360° and 6 for the 180°), and cylindrical projection to look right, but would be very immersive I think. While a full 360° isn't necessary, especially if you have a racing seat covering a lot of it, I think 270° is probably a good place to shoot for. It would give you a good image in the central portion of your vision from left to right, with enough peripheral to feel pretty immersive, and would allow you to get out of the cockpit without crawling under the screens. At 9 screens (for this vertical field of view), it would take a lot of hardware, but I think modern computers could probably handle it at lower graphical quality, especially if we could get the games to render the 6 side screens (3 left, 3 right) at lower resolutions, and the three center screens at higher resolutions. The 360° setup is about 9' wide, with ~52" screens, and the 180° setup is about 7' wide, with ~39" screens, but you could get down to about 5'4" with 30" screens for the same effect (there are actually 2 half-height screens per "monitor" to give it a more round appearance in the model).
Image
Image

This third idea would be extremely expensive, and is likely out of the reach of off-the shelf parts, but would bring the immersion way up. Because it uses square screens that are 90° vertical and horizontal, a viewer sitting at the center would see zero distortion using conventional rendering methods. Using rear-projection screens and a bunch of 1080p projectors, you could probably pull off the "monitor" portion pretty seamlessly. But using just the top, left, center, and right screens and 6 projectors per screen (and cutting off the excess pixels to keep each side square), you'd be looking at almost 40 Mpx per frame across 24 monitor outputs, and I'm not sure how you could do that except using multiple rigs synchronized to each other. With four good rigs, you could probably pump out six 1080p images per rig and get the job done, but the only games I know of with multi-boxing capability are Gran Turismo 5/6 (which aren't available on the PC) and Grand Prix Legends (which is quite old and graphically outdated, and uses a third-party hack which I'm not sure can render anything besides the default 45° left, center, and 45° right views). The second image has a 52" monitor on the wall to show the difference in scale (the walls are 10' x 10', with the viewer 5' from the center of each). Obviously, you could use smaller screens that are closer -- a six foot screen at a distance of three feet would be fine -- but I can already see subpixel elements on my 52" at 4 feet, so you'd have to go way higher than just 1920 x 1920 for a 90° view at the correct distance.
Image Image

As a final note, my current setup uses a racing cockpit similar to the model in Sketchup, but I have a sliding keyboard tray, mouse tray, elbow rest, and 7.1 speaker setup attached to the rig (and no G25 yet :(). The monitor is sitting on a stand that isn't directly connected to the cockpit, to avoid thrashing it so much while I'm slamming the steering wheel around, and I usually have the steering wheel disconnected while I'm not racing so I can see the entire monitor. If I ever get a multi-monitor setup, I'll probably rebuild the rig from scratch to fix a few design flaws the prototype has. You may have noticed the extra beds, shelves, and doors in the background of some of the pictures. That was just me figuring out how I could fit the extra monitors on my rig in my existing bedroom.


Top
 Profile  
 


PostPosted: 16 Jun 2014, 18:57 
Offline
Editors
Editors
User avatar

Joined: 08 May 2011, 18:58
Posts: 2286
It's kinda hard to answer after your huge text.

But to solution nr3:
There are some games, iirc flight Sims, which support multiple viewports.
But else all 3d engines create a Fishtank (yes, even tough all say it's fisheye it's actually the oposite!) effect which you will get accustomed to extremly fast when playing with 3 monitors.

Gesendet von meinem D6503 mit Tapatalk

_________________
We gonna send it to outa space!


Top
 Profile  
 
PostPosted: 17 Jun 2014, 06:57 
Offline

Joined: 04 May 2014, 22:28
Posts: 2
As for semantics, the only meaningful search result I could find for "fishtank" effect refers to optical distortions caused by differences in refractive indexes. In general, a "fisheye" effect refers to any image which is noticeably distorted due to a very high field of view.

As for getting used to the distortion on a triple-wide setup, it's highly doubtful. I've been playing games on single-monitor setups for decades, and the distortion still bothers me, even if I'm "used" to it. Increasing the magnitude of that distortion even more is unlikely to make it better. Furthermore, even if the effect at very wide angles wasn't sickeningly bad, or I got over it after enough play-time, or just folded the monitors away from me to minimize the distortion, it still doesn't fix the major problem: 1.5 out of 2 extra screens are utterly wasted.

Here are a couple of links for calculating hfov to vfov and vice versa (note that the ° symbol, Alt+0176, is required if you type a new angle):
V to H
H to V

From there, we can calculate that a 90° hfov on a single 1080p monitor corresponds to a 58.72° vfov. Now, we can convert 58.72° vfov on a triple-monitor setup into 143.1° hfov. Now, simple math says 141/90 = 1.57. This means three monitors is about a 57% increase over one monitor in angular visibility using rectilinear projection, instead of the 200% increase we would see using cylindrical projection. So we're spending 3 times as much on monitors, 2 to 3 times as much on all the computing power required to run those extra monitors, wasting considerably more floorspace in our houses, spending more on the electric bill, generating tons more heat that has to be cooled by the A/C system which ups the electric bill even more, all for about a quarter of the advantage we could be getting.

Just for fun, let's look at a 7 monitor setup. The same 58.72° vfov turns into a 163.7° hfov. Three monitors with cylindrical projection could easily show 270° with minimal distortion, but seven monitors with rectilinear projection show only 61% of that. And bear in mind each monitor shows a progressively smaller vfov -- it's only 58.72° in the very middle, while the edges in this case drop down to 9.10° vfov. You can calculate with this if you want, and see my derivation here. Using that formula, and this one to get the horizontal angle of the screen edges, I've constructed the following images.

This is roughly how much visible area you can see per extra screen. The top and bottom of the vertical edges should curve inwards a bit (less hfov there than near the center), and the top and bottom edges should be smoothed out (it's an arc-tangent curve), but it's still an extremely blatant illustration of what's happening.
Image

Here is the same image, but cut/pasted and flipped on its edge. The left and right screens of each pair are now combined, and the horizontal/vertical axis have been flipped. The first screen shows radically more of the world than the next six screens *combined*.
Image

It is simply not worth that much expense for so trivial of a gain.

The purpose of adding additional monitors is for immersion. "Immersion" isn't some flashing pixels in my peripheral vision as I tunnel vision my way down the track. Immersion is looking over my shoulder to see a guy coming up behind me on the right, just like I would in a real car. Or looking up and seeing a sky full of alien spaceships blotting out the sun. In a shooter game, you don't need peripheral vision as badly, since you can just flick your wrist and look over there, but in any kind of game where you're in a car, aircraft, spaceship, etc., you can't just turn sideways real quick to see if there's room to move over. Sure, there are things like TrackIR to make checking around you a little less cumbersome, but they can be used just as effectively with one monitor as with thirty, and don't provide the realism of just having more viewable area. And even in a shooter game (or something like Skyrim), being able to turn my head and eyes and look out at the world like I would naturally do, is *huge*.

I'm not looking for someone to claim it's not a problem. It is quite obviously a huge problem, as I've demonstrated. If you want to waste your money on a tiny bit of extra real estate, go right on ahead, but it's not worth it to me. Period, dot, end of that discussion. What I *am* looking for is someone who might know a way to fix the problem, even if it's not a perfect solution.

I know people have been hacking games to work on the Oculus Rift. To make it work, you have to be able to render two separate images with a distortion field on each one. Here's an example image (couldn't find a smaller version, so click the spoiler tag to open it):
Spoiler:
Image


Now, if someone can get a game to render two separate images with that distortion field, it makes sense that we could render a game with three or five separate images with a different distortion fields designed to turn a rectilinear projection into a cylindrical projection, or at least something that is passably close. The images linked to were programmed into that viewer by the guy who writes the program, but I've seen people doing that kind of thing on the GameCube. This guy has a DirectX 9 replacement that over-rides the default install and renders a Rift image instead. Surely it's possible to do something similar for a multi-monitor setup.

I'm sure it wouldn't just automatically work on every game ever created, but finding ways to at least make the common games work properly in a multi-monitor setup would be a huge improvement. Ideally the system would render multiple images of the same world at the same time, but a hack to just rapidly change the camera angle, once per frame, so every third image is the left view, every third image is the center, and every third image is the right view, would work well enough. You'd then need a system capable of rendering 90 fps to get 30 fps per screen, or 180 fps to get 60 fps per screen, but that's probably about what you need with native support anyways.


Top
 Profile  
 
PostPosted: 11 Feb 2015, 21:20 
Offline

Joined: 16 Aug 2010, 03:16
Posts: 6
Hey OP. Thanks for summing up the state of affairs here. I recently completed a 3 monitor setup (mounted to an articulating arm no less) only to learn about the "fisheye" effect first hand.

I really appreciate your post for informing me that it's pretty much ubiquitous among all games. I came to the decision that I'm not OK with paying for three monitors when only about 1.75 of them are going to behave properly. Fortunately I was able to return my 2nd and 3rd displays(gonna go with a single ultra-wide instead).

I'm really disappointed that the industry doesn't feel the need to provide proper widescreen gaming support.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  




Powered by phpBB® Forum Software © phpBB Group