The online racing simulator
FOV - Sense of Speed
(148 posts, started )
#76 - Juls
Quote from Technique :I only used Photoshop's Transform - Perspective so you guys can see that when the monitors are angled towards the user at 45 degrees everything lines up nicely.

There doesn't appear to be any need to distort the left and right views at all. If you have 3 monitors you can try it out yourself. In the photo I took, those are just raw screenshots from LFS with no modification.

Here's 3 raw screenshots (no modifications) that I applied to three 4:3 polygons in a 3D modeler. The left and right rectangles were angled pricely 45 degrees towards the user.

Anyway, what you did here is a distorsion. You stretched left and right view in order to show what gives a 3 monitors surround display on a simple flat picture. This is the general idea of this thread...show on a flat picture what you see on a spherical display. Or ask the game to produce the right picture for 3 screens with 45 degrees angle between each. That is the same kind of thing....

There are for the moment four ways to do it:
* vertex shader as mentionned before. Discarded because of artefacts.
*multiple viewports (from directx9 with swapchains, should make the game slower and cause GUI problems)
* pixel shader as a post-process effect
* projection of the frame on a stretched grid

After, it is a matter of rendering speed. According to graphic adapter architecture, the shaders/projection should be a lot faster than the multiple viewport. But I am not sure.

When you take a 135 degrees view, the three 45 degrees viewports views are already inside! You just need a little distorsion to get them, and prepare the same view as in your previous post. It is faster I suppose than asking the game to render three viewports.
Quote from Juls :Anyway, what you did here is a distorsion. You stretched left and right view in order to show what gives a 3 monitors surround display on a simple flat picture. This is the general idea of this thread...show on a flat picture what you see on a spherical display. Or ask the game to produce the right picture for 3 screens with 45 degrees angle between each. That is the same kind of thing....

There are for the moment four ways to do it:
* vertex shader as mentionned before. Discarded because of artefacts.
*multiple viewports (from directx9 with swapchains, should make the game slower and cause GUI problems)
* pixel shader as a post-process effect
* projection of the frame on a stretched grid

After, it is a matter of rendering speed. According to graphic adapter architecture, the shaders/projection should be a lot faster than the multiple viewport. But I am not sure.

When you take a 135 degrees view, the three 45 degrees viewports views are already inside! You just need a little distorsion to get them, and prepare the same view as in your previous post. It is faster I suppose than asking the game to render three viewports.

You seem to know much more about this then I do, so I'm not doubting you. Yeah the 3 views are inside, but with post processing, aren't you losing all the detail since you have to "stretch" some parts of the image? Now that I think about it, yes you must. If you render one view, lets say 1600x1200 and split it across three - you only have 1600 pixels of detail, except some areas are stretched to make it look correct, right?

Quote :
*multiple viewports (from directx9 with swapchains, should make the game slower and cause GUI problems)

I'm not familiar with DX9 at all, but one thing to note is LFS development doesn't move as fast as hardware development. I think the video cards of tomorrow will certainly would have no problem with this. They've had multiple viewports in flight sims for a long time, right? Also, it won't be long before we're flooded with Alienware style triple monitors with no borders!
Yeah. That's an old picture.
#79 - Juls
Quote from Technique :Yeah the 3 views are inside, but with post processing, aren't you losing all the detail since you have to "stretch" some parts of the image? Now that I think about it, yes you must. If you render one view, lets say 1600x1200 and split it across three - you only have 1600 pixels of detail, except some areas are stretched to make it look correct, right?

You lose some detail in the center because you stretch it a bit, and you get more detail on the sides because they are compressed.
But before distorsion you have to render a full display frame...so for example 4800*1200 for three screens....not 1600x1200.
In order to be sure to have no details lost, the frame rendered before distorsion should be a bit larger than display. This is how dome displays work, they use a lense to distort the display.

Anyway, if two guys agree to give you their license ID/password for a test you can try to run three LFSs in windowed mode, one per screen. Two as spectators in your car with rotated views, and you play with middle LFS...it should work no?
Quote from vixer :Demo racer :-), are there skidmarks on Blackwood ? I mean skidmarks that dont disappear.

Technique did you think bout making a Freetrack ? You can make a real TrackIr 4pro (if ur screens refresh is lower then 90hz) for +/- 100$ out of a Philips SPC 900 NC (90 FPS camera) .

Freetrack or TrackIr is not necessary if you have an immersive display. I've never used either, but even my 20.1" screens seem to be large enough to give you a fairly immersive environment. There's a review on the TrackIR on SimRacingTonight.com - look in the archives section. I don't recall which episode it was.
Quote from Juls :You lose some detail in the center because you stretch it a bit, and you get more detail on the sides because they are compressed.
But before distorsion you have to render a full display frame...so for example 4800*1200 for three screens....not 1600x1200.
In order to be sure to have no details lost, the frame rendered before distorsion should be a bit larger than display.

Anyway, if two guys agree to give you their license ID/password for a test you can try to run three LFSs in windowed mode, one per screen. Two as spectators in your car with rotated views, and you play with middle LFS...it should work no?

I was actually thinking of doing that. I have two computers here. All I would have to do is install it on the other and watch the same replay on both machines.

Edit: That didn't work so well. I expected my work laptop to run LFS pretty bad since it's a pentium m 1.6ghz with onboard video. But I didn't think I would only get 10FPS at 640x480 16bit oh well.
#82 - Juls
Ok, found a good example. Here is a video showing a cylindrical display....but as it is a video, it is in fact the projection of a cylindrical display on a flat display. It means it gives a good idea of what would like a cylindrical distorsion of a game:
http://www.youtube.com/watch?v=5dwAr7KsTh4

They use very large FOV and sometimes it is disturbing, but concerning immersion, do you feel the (big) difference?
I mean it looks like a surround display, but on a flat video.

And here another very good example. This is a spherical display, watched on TV. As you see, even on a flat screen, the immersion is a lot better than the usual distorted perspective we have in games.
When you take a game frame and apply spherical distorsion, you get the same thing, and immersion is way better.
http://www.youtube.com/watch?v=FLeJ4KmDwGA

(and they use it with LFS!) To sum up the idea, spherical or cylindrical distorsion is like watching on your flat screen a movie showing a spherical or cylindrical screen. Not the same, but a lot better than default game view.
Fascinating topic, guys.

The flying simulator in the video is X-Plane, BTW. You always see the sky through the ground if you turn off "reset on hard crash" and then crash into the ground.

In X-Plane you already can make this kind of multi-monitor setup. You can use several PCs, the others will run XP in display-only mode that will receive the data via network. Or you can turn on cubic projection, even on 1 monitor (not much useful). I've tried it, at least I can say it works.

Actually, that was my question few years ago when I saw a Matrox device for 3 monitors. It's not only natural to have a cylindrical projection, but also there is no waste of graphics card power, because in a single-plane projection, most of the FOV is in the center 1/3, the rest 2/3 are occupied by few degrees on the sides.
#84 - Juls
Paper from microsoft research. They start from a wide FOV camera picture showing a conference room. This picture has all characteristics of wide FOV game view: far objects too small, objects on the sides stretched.
And they apply a distorsion directly on the picture, stretching the center and shrinking the sides, to obtain a better picture.

http://research.microsoft.com/~zliu/TR-2002-110.pdf

Real-time display warping software using a customizable grid/map, done to adjust projection to a curved display, but similar technique can be used to apply distorsion described in the previous document to get a better picture on a flat screen.
http://www.youtube.com/watch?v=7wkp9GhUp58
Quote from Juls :Paper from microsoft research. They start from a wide FOV camera picture showing a conference room. This picture has all characteristics of wide FOV game view: far objects too small, objects on the sides stretched.
And they apply a distorsion directly on the picture, stretching the center and shrinking the sides, to obtain a better picture.

http://research.microsoft.com/~zliu/TR-2002-110.pdf

Real-time display warping software using a customizable grid/map, done to adjust projection to a curved display, but similar technique can be used to apply distorsion described in the previous document to get a better picture on a flat screen.
http://www.youtube.com/watch?v=7wkp9GhUp58

Juls, I have not finished reading the article, but look at the end of the first section:

Quote :
Since the warping function do not scale all parts of the image the same, the resulting warped images have very uneven resolution. For video conferencing applications, some regions may be zoomed up significantly resulting in poor image quality. To address this problem, we have constructed a new five-lens camera, each with a different field of view to obtain more uniform resolution after the application of our warping functions. We demonstrate real-time capture, stitching, and warping of the pixels from the five-camera array.

I'll have to read the rest of the article. But it appears they still need to take different "views" and stitch them together in order to generate the final image.
vixer - I think you wouldn't be able to see them when sitting where you indicated.

It would essentially undo the distortion created by the renderer though, which I can see was your intent.
I think there is more to this that just adjusting the FOV and adding Spherical aspects to the display. You are all forgetting one important aspect of human vision which is not currently being exploited by games intending to represent a 3d world. While I do agree that adding a very slight spherical distortion to the display would help, it needs to be done in conjunction to one other distortion.

Spherical Variable Resolution. Human vision has a smooth resolution degridation from the center of our vision out to the edges of our peripheral vision. Its the combination of the slight spherical nature of our vision and the reduction of visual aquity as objects move out of the center of out vision that allow us to precieve our sence of speed and motion. The only way to really do this is to add a blurring or fuzzy effect which is perportional to the spherical distortion. Adding these togeather has the combined effect of causing objects to accelerate away from the center of our vision and to become less visualy acute as they stray from our visual focal point.

But then there is also one more aspect that need to be adressed. Variable focal length, which is represented in game by FoV. Now implenting this in game is not going to be easy to do. Almost certenly it would require the game to be able to track your eyes so it knows what objects you are looking at as that would be the only way to realisticly adjust the FoV in real time like our eyes to naturaly.

The more simple compromise would be to have the FOV increase as your speed increases and decress as your speed decreases and to also reduce FoV as your view strays from the direction of travel. In this way looking in to a corner would result in decreasing FoV as would glancing to the left and right. It might also be warrented to add a glance up and down so as to allow one to look up at the rear view mirror and down at the gages as these would slip from view as speeds climb. It would also cause a reduction in FoV due to moving your view away from direction of travel, mimicing the need to focus on a closer object. Implimenting it in this way also mean that the use of head tracking would not require special programing to support as any movent away from center of travel reduces FoV seamlessly and smoothly.

I thing to truely give any game a more realistic sence of imersion, which includes a sence of speed all these things need to be used. Any of them taken individualy help but will feel a bit off, but when they are all combined it closely mimics the way we see the world.
Interesting gimpster,

If you had an immersive display, like 3 or 5 monitors or a curved screen, wouldn't there be no need to fake the resolution degradation? After all, since the leftmost and rightmost parts of the immersive display are in your peripheral vision, they are already degraded!
Correct. But since most of us use screens that do not take up the majority of the visual area that aspect of human vision is not naturaly occuring in a simulated envienment. The natural focal point for our eyes is some where between 18" and 24". If we put our screens at that distance then the majority of the screen remains in the center of our vision and thus remains in focus and in the high resolution portion of out visual cone.
In that case, I don't think it would work at all. After all, with a single monitor we would see the blurry edges in our center of vision and it would just look fake.

As far as the variable FOV, well I kind of feel the same way. Unless you had a large enough display, it think it would just look really bizarre.
I think it would work but it would all have to be very subtle. None of the effects should be very pronouned and they all need to be ballanced. It sould only just effect the edges of the screen, just as things leave the screen.
#92 - Juls
Call of duty 4 uses depth-of-field blur on close objects when you are crawling (grass). It works because they are sure you do not focus on these objects. Applying depth of field blur to other objects require eyes/face tracking as you wrote. I suppose nobody wants a blurred cockpit or wheel.

Medal of Honour Airborne uses variable FOV when you run. It could be really weird with racing.

I do not forget depth of field or anything else . This suggestion was about a SIMPLE idea, easy to implement without changing graphics engine (adding a mapping or a shader), improving display.

90 degrees FOV and you feel a lower speed than showing on gauge. 135 FOV and you feel like in a weird tunnel, corners change shape as they come in front of you, other cars stretch like flat things, cones 30 meters away in autocross are too small to be visible. Improving this is priority number one. With multiple viewports or anything else.
Quote from Stang70Fastback :I think we're just going to have to accept the fact that the only way to portray anything close to the actual speed on a tiny monitor, is going to be with some sort of fugly distortion. The only true solution would be a 5 monitor semi-circle setup...

...if you would all kindly donate, I'll go ahead and try it out and see whether or not 5 screens make a big enough difference. Cash preferred!

Yeh i agree. I'm currently using a 15" monitor and 65º degrees of FOV. There's no miracles for small monitors.. i cant put more fov or i cant see note and it all gets distorted. When most ppl can afford 21"++ monitors then id vote, for now i suppose devs have better things to do with their time... unless they they do a quick fix like Juls suggested, which would look exactly the same here, but better for the few ppl that have large monitors. Otherwise, not.
Quote from LiveForBoobs :Yeh i agree. I'm currently using a 15" monitor and 65º degrees of FOV. There's no miracles for small monitors.. i cant put more fov or i cant see note and it all gets distorted. When most ppl can afford 21"++ monitors then id vote, for now i suppose devs have better things to do with their time... unless they they do a quick fix like Juls suggested, which would look exactly the same here, but better for the few ppl that have large monitors. Otherwise, not.

I'm not sure what it's like in portugal, but here you can find a pretty decent used CRT fairly easily. I got a brand new (as in ~3-4 months old) 17" Dell CRT monitor for $15 USD at a garage sale last year.
wow, it took me a while to read through (most of) this thread. First off let me just say please ignore my spelling mistakes.. I am kind of shocked as to how many people support this fisheye graphics idea. Although it may be a good option for someone with one monitor, here is what I would like to see.. and only my opinion.

Bluring of any type of graphics in the game is a no no in my opinion... we've worked all these years to get them to this stage and the last thing that I think should be done is distoring them to try to simulate anything.

Having a spherical screen is a great idea, but there is not the right hardware and software support for it.. in addition to that if you think a small number of people have triple monitors with SoftTH or TripleHead2Go.. think of how many less have spherical screens...

Whats the best sollution with todays technology?

Flat panel TV's or over head projectors...

How do we make this work properly?

Multiple in game camera angles that can be independantly adjusted.

I could go out and build a PC today with 3 8800GTX video cards and have 6 video outs with a boat load of graphic power...

If I can do this, why not just plug in 1-6 projectors and use them as:

1) Front wall
2) Left wall
3) Right wall
4) Rear wall
5) Front Ceiling
6) Front Floor

This way I can have up to six projectors plugged in, with fully adjustable camera angles that would have no more distortion than your single screen has right now.

Is it perfect
No...

but you would have no distortion, you would have no monitor bezels showing up at all... If you dont have the room for all that you could do three 52 inch LCDs in a U shape around you...

Anyways, my vista SP1 just finished downloading, ill be back soon.
I swear to GOD when I have the money, a 4-projector setup WILL BE the FIRST thing on my list of cool projects to waste a couple grand on.
#97 - Juls
Quote from wtf im nameless :
Bluring of any type of graphics in the game is a no no in my opinion... we've worked all these years to get them to this stage and the last thing that I think should be done is distoring them to try to simulate anything.

Then I did not manage to explain properly my point. Using the word "distorsion" was a mistake. In fact, current view in LFS IS distorted. Side objects are stretched, and textures too. Graphics quality is then reduced on the sides, and get worse and worse as one increase FOV.

The idea in this thread is to un-distort the view, so that a circle looks like a circle in the center and on the sides....not like an ellipse. That is to say start from a picture larger than the screen, un-stretch the sides so that graphics quality is IMPROVED there, and keep the center unchanged.

No blurring, only improving.

So, if LFS only displays one viewport, this solution allows to undistort the viewport and display large FOV with no big code refactoring and little performance cost.

Of course, if LFS displays several viewports, then it is better and this un-distorsion is no more necessary.

For me the best would be a thin LFS-view client, able to connect to a running LFS client/server and simply display a view. It could be very interesting, because it could be used to create multiple viewports displays AND as a client for watching LFS races broadcasting!
Quote from Juls :For me the best would be a thin LFS-view client, able to connect to a running LFS client/server and simply display a view. It could be very interesting, because it could be used to create multiple viewports displays AND as a client for watching LFS races broadcasting!

that would open up a whole bunch of additional possibilites...
Quote from Juls :For me the best would be a thin LFS-view client, able to connect to a running LFS client/server and simply display a view. It could be very interesting, because it could be used to create multiple viewports displays AND as a client for watching LFS races broadcasting!

http://www.lfsforum.net/showthread.php?t=40698

Did you see my angle camera's in action yet? We're soooo close to a solution.
Yes, we discussed about it in this thread. The main problem is network lag.

Your side views will lag compared to the center view, because they go through the server before coming back, and they are not built from real-time information, but interpolated.

I suppose if you turn with this system, left and right views continue straight a few tens of second, and later turn by steps...and it get worse on server with bad ping. Because of that they are almost not-usable.

This is not a solution. The multi-viewport client has to connect to LFS client for playing smoothly.

FOV - Sense of Speed
(148 posts, started )
FGED GREDG RDFGDR GSFDG