PDA

View Full Version : FOV - Sense of Speed


Juls
4th July 2007, 11:13
First post for me, be nice :shy:


I have been playing all possible racing/rally sims since a while, and I always noticed that sense of speed was a problem.
We all develop a "sense of physics": thanks to our experience in real world, we are able to say quite accurately if an object will slide, or stop, or roll, just watching it's shape, what it seems made of, it's speed.
We use this "sense of physics" when we drive a car too. Usually, you drive slower on wet road, because you know from your "sense of physics" when you are driving too fast. Even if you never slided!

In sim driving, this "sense of physics" does not apply.
When I watch friends using a sim for the first time, they just go way too fast, and crash at the first turn. Even very careful people. They can't use their experience because the most important clue we use to drive, the speed, is not properly rendered. (acceleration too is not rendered of course, but almost nothing can be done for it)
Using default FOV, if I hide the speed meter and ask people what is current speed, they always answer half of the right answer. That's why they crash, that's why they say the sim is not realistic, that's why some of them give up quickly....etc.

If I increase the FOV until the perceived speed matches the simulated speed, then people are a lot more satisfied with the sim physics, and they enjoy it (even if display is distorted). The problem is that large FOV shrinks the road in the center and quickly gives headache, and it makes more difficult to appreciate distances.

I think there is a way to improve things. To get the advantage of a large FOV without the inconvenient, using a simple pixel shader. Post is too long and boring. If you are interested tell me I will try to explain. :)

TAYLOR-MANIA
4th July 2007, 12:10
I think there is a way to improve things. To get the advantage of a large FOV without the inconvenient, using a simple pixel shader. :)

Hi Juls,

Yeah, please explain how a pixel shader (simple or not) would help replicate speeds better...?
Pixel shaders are used for things such as bump mapping and shadows. So I can't see how graphical improvements like a pixel shader would help enhance the sense of speed. But i would like to know how you feel it would...?
For me, the sense of speed in LFS is perfect. The field of view does greatly effect the sense of speed, but just play with whatever feels best.

Juls
4th July 2007, 12:38
Yes, the LFS sense of speed is very good compared to other sims, I don't want to criticise LFS. I talk about sense of speed in sims in a general way.
All sim developpers are aware about the problem...there is a compromise between increasing the FOV to get a nicer sense of speed, and decreasing the FOV to avoid distorsion. There are even studies about the effect of perceived speed in simulators with screens covering less than 180 degrees.

Don't worry, I have been developping with pixel shaders, especially in this domain: 3D display and virtual reality.
As you know, when the frame is ready after multiple passes, you can copy it to the screen buffer, or you can add some effects using pixel shaders, like motion blur...etc. You can perfectly use a simple pixel shader to distort the view.
For 3D displays, I have been using pixel shaders for a while to interlace and distort images. Even low-end cards are able to distort view at 500 fps using pixel shaders assuming it is not too complicated.
In fact, I just realized that what I propose can be done without pixel shader, with a simple mapping on an object.

The idea is to render a view larger than the screen, with a large FOV (120-135 degrees for example), and "bend" it to fit it on your screen.
How to bend it?
Imagine your screen is not anymore flat, but becomes half a vertical cylinder, with the convex side toward you. If you map a picture on that cylinder, it is larger than your screen was. If you look at the screen, it looks as large as before, but the large FOV picture is distorted...it's center is stretched and it's side are shrinked. Center looks almost like normal 90 degrees FOV, but you can see all 135 degrees.

So the idea is to render a view larger than screen using a large FOV, and fit it to the screen using cylindrical, or better ellipsoidal mapping. This can be done with a pixel shader, or even faster, by mapping the rendered view on half a cylinder. For example Kegetys Software Triple Head is already doing this...cylindrical correction for the side displays. It just simulates a large surrounding screen using a normal screen. That's why it is simple, only a matter of projection...

Juls
4th July 2007, 12:54
Here is a simple demo. I simulate it using photoshop.
First I take a 135 degrees FOV screenshot two times larger than my screen (2*1280 x 1024) Two times larger just because it was easier for me...it can be done with less.
http://cracovia.free.fr/lfs_large_135.jpg

Then I map it on a kind of cylinder to obtain something which has the size of my screen (1280x1024)...other shapes should give a better, more progressive effect, things like red light and messages should be added after the distorsion:

http://cracovia.free.fr/lfs_large_135_trans.jpg

You get all the 135 degrees FOV without the inconvenient: the road is not shrinked in center. 80% of the picture looks exactly like the normal 90 degrees FOV view...the sense of speed is given by the cylindrical distorsion on the sides.
Compare with the view you get in LFS on a 1280x1024 when you want 135 degrees FOV:
http://cracovia.free.fr/lfs_narrow_135.jpg

I think the difference is big. Such a projection can be done in a few 1/1000ths of second by any low-end graphic card. I think it could be something new never applied in any sim...

fakeman
4th July 2007, 13:22
Very interesting :thumb:
Could that be done with d3dx8.dll/d3dx9.dll thing so it is usable in other games also?
Speed sense is very important in racing games and anyone who tries sims for the first time doesn't feel the speed and give up because car feels uncontrollable

Juls
4th July 2007, 13:27
Exactly.
It can be done with some d3d8.dll d3d9.dll you put in the game folder. Creating a device larger than required by the game, and adding a distorsion step at the end. But overlays like red light and text will be distorted too.
If I had time I would give it a try, maybe people who have experience with very similar thing like Kegetys could give it a try.

But it can be done inside the game too. It is simply an additional rendering step when 3D rendering is over and before 2D overlays are added. It can be added as an option with a minimum developpement, almost without any impact on the existing code. That's why I like the idea too :)
It does not even require a shape....simply a flat rectangle with several divisions and every vertex has special U,V coordinates...map the rendered view as a texture on that grid, and you get your distorsion.

Racing sims could be more attractive for beginners with a better sense of speed, that's sure. When I read the thread in LFS General, with this guy saying car does not hold properly, this is certainly a FOV problem and many others say so in that thread.

TAYLOR-MANIA
4th July 2007, 14:05
Hmm...interesting indeed.

I can appreciate how using a pixel shader to generate motion blur would help aid sense of speed, but I don't see how the warped sides would give the player a greater sense of speed (in the second screenshot).
I think it looks slightly odd the way it's all stretched and bent the way it is. But maybe actually using and driving with cylindrical distortion i could give a fair opinion though.
But having said that, it definitely does look better to have distorted sides (window area) than a distorted center (road area).

A good idea...and maybe it should be applied somehow in future updates...

EDIT: Probably not new news, but just browsing Kegetys website, i stumbled across a MotionBlur mod. It does state this though:
"...This is a (buggy) experiment and is not recommended for regular use..."
http://www.kegetys.net/lfs/
Now i think this makes for a much greater sense of speed.
http://www.kegetys.net/lfs/shots/s2_mblur11.jpg
http://www.kegetys.net/lfs/shots/s2_mblur14.jpg

fakeman
4th July 2007, 14:37
Motion blur doesnt increase sense of speed, it even reduces it and it feels like you are sleeping..

Juls idea is very good and it would be great if devs or somebody else made that possible..
It may not look like inboard video from a real car but lfs is a game made for humans and it needs to create an illusion of going fast..
Most people that are saying that sense of speed is good would shit their pants if a GT driver took them round a track in a real car..

XCNuse
4th July 2007, 15:12
Most people that are saying that sense of speed is good would shit their pants if a GT driver took them round a track in a real car..
That's totally different.

Taking a turn in LFS, and then taking an exact same turn in life wouldn't even be comparable. If you could "live" in LFS, then I bet it would feel right, but everybody knows that your eyes are not substitutes for everything your body feels while in a real car.

TAYLOR-MANIA
4th July 2007, 15:20
Motion blur doesnt increase sense of speed...

Okkkaaayyy then... :really:
Maybe in that screenshot the motion blur is a bit OTT, but come off it pal, of course motion blur helps give a sense of speed! And who is saying sense of speed isn't good?! :uglyhamme

Anyway, I just don't understand how the 'sense of speed is given by the cylindrical distortion on the sides' as you said so yourself Juls...
If anything, it would be harder to determine the speed with this cylindrical distortion on the sides, as the sides will be giving a different sense of speed to the part in the center, ya know?
It seems like it's merely just a way of displaying more field of view on the screen, but instead of a shrunken center, it's compensated by warping the sides. With regards to sense of speed though, cylindrical distortion cannot really help, can it?
Nonetheless, as i already said, it is a good idea as it's probably better to have distorted sides than a shrunken center as it is now when using more FOV.

sinbad
4th July 2007, 15:21
Motion blur doesnt increase sense of speed, it even reduces it and it feels like you are sleeping..

Juls idea is very good and it would be great if devs or somebody else made that possible..
It may not look like inboard video from a real car but lfs is a game made for humans and it needs to create an illusion of going fast..
Most people that are saying that sense of speed is good would shit their pants if a GT driver took them round a track in a real car..

I agree with Nuse (!) :)

You don't really think that any screen setting/view setting is going to scare you like a real car could, do you?

Juls
4th July 2007, 15:42
Okkkaaayyy then... :really:

Anyway, I just don't understand how the 'sense of speed is given by the cylindrical distortion on the sides' as you said so yourself Juls...
If anything, it would be harder to determine the speed with this cylindrical distortion on the sides, as the sides will be giving a different sense of speed to the part in the center, ya know?
It seems like it's merely just a way of displaying more field of view on the screen, but instead of a shrunken center, it's compensated by warping the sides. With regards to sense of speed though, cylindrical distortion cannot really help, can it?
Nonetheless, as i already said, it is a good idea as it's probably better to have distorted sides than a shrunken center as it is now when using more FOV.


Sense of speed is given by lateral view...when objects move quickly on the sides, you feel more speed. When you increase FOV, you see more of the lateral view....objects are going faster on the sides of your screen, so you feel more speed.

With distorsion you have two solutions:
- Example I did: take a large FOV view, zoom center, shrink sides...trying to reduce sense of speed brought by large FOV as little as possible. Once again this is a compromise between nice center and sense of speed. But it can be better than standard undistorted view. Here objects slow down horizontally when they reach sides, but keep their vertical speed vertically (walls spread vertically). This should be enough to keep a lot more sense of speed than default view.

- take a small FOV view, like 50 degrees, shrink a bit the center so that it looks like 90 degrees FOV, and use additional place you have on the sides now to stretch sides along X....and objects will move faster on the side-> you get something like 90 degrees FOV in the center but with increased sense of speed.

And using different distorsions, you can imagine zooming the center, shrinking the middle, and leaving sides unchanged....many possibilities.

Of course, difficult to know if it works nice without a video.

fakeman
4th July 2007, 15:48
I agree with Nuse (!) :)

You don't really think that any screen setting/view setting is going to scare you like a real car could, do you?

Of course not but if it can improve the feel than it is good..
Humans should not adapt to a "speed presentation". It should be the other way around..if you get what I mean..When you record yourself with a camera doing 100kmph in a car and then watch it, it looks slower than you remember it - like in LFS, so im saying that LFS should try to somehow create an illusion of speed to the player instead of producing camera like image..

@TAYLOR-MANIA
When you are driving for real your vision doesnt blur, maybe if it blurred the sides of a screen or when exposed to many G-forces blurred the screen...

Taavi(EST)
4th July 2007, 15:51
No graphical trickery will replace the lack of variable objects and textures in lfs.

Octane
4th July 2007, 16:03
sry, i donīt have time for a longer post, but this idea is very interesting.

I once found a website with a "fish-eye" quake used exactly a "distorted" screen tu achieve higher FOV. I donßt have a link here right now, maybe you could google it.

Juls
4th July 2007, 16:07
I think it is the contrary....no texture will help you feeling the speed you miss because of a reduced FOV. Take the richest game, put the FOV to 60 degrees so that it looks real...no more speed.

This problem impacts all racing sims, and they have to increase FOV even in the most graphically advanced games...last F1 game I saw on PS3 has at least 110 degrees FOV.

Linsen
4th July 2007, 16:09
I think Juls' idea does seem interesting. But it's hard to tell without actually trying it :shrug:.

Juls
4th July 2007, 16:16
Yes, this trick I propose is to simulate a fisheye lens...cylindrical or spherical why not.
I found this fisheye quake.
Here there are some screenshots. On the left you can see what happens when FOV is increased in the game. Center shrinks.

On the right he uses some distorsion to keep center almost unchanged, and manages to put more and more FOV in a similar way I did, but this time with spherical distorsion (I used cylindrical).
http://strlen.com/gfxengine/fisheyequake/compare.html

On the main page he says it gives nice sense of speed.

Edit: Now, I remember my TV can do the same thing....there is a display mode stretching the center and shrining the sides only along horizontal axis, like a cylindrical lens...or doing the contrary, don't remember. It gives more presence.

TAYLOR-MANIA
4th July 2007, 16:37
When you are driving for real your vision doesnt blur, maybe if it blurred the sides of a screen or when exposed to many G-forces blurred the screen...

And when you are driving your vision doesn't go 'fish-eyed' either! But it helps to represent speed, that's all. But yeah, maybe for impacts and extreme G-forces motion blur would be better used more than for speed in this case. I understand the concept of the idea more clearly now, but i would still like to try it myself or see a video to see just how much of a difference it makes...

Gaas
4th July 2007, 19:01
Very nice idea, and doesnt require to do much work with existing code...really i hope Scawen sees this!
IF not someone please PM him :)

N I K I
4th July 2007, 19:12
I like the idea, and i believe it could increase feel of speed (not that we can't feel speed in LFS, but it can be better)

BruTaLysT
4th July 2007, 19:15
I really like higher FOV settings though i read many dislike them and giving them headaches. I really need the wider angle to give me better awareness (i use 21" CRT). It also helps to give more sense of speed. Mainly i'm just WAY better when i use a wider angle. At the moment its around 100, on a big Plasma screen (my teammate always uses his 100cm Plasma to play LFS which is less than 1 meter away) the angle is set even higher, but it also seems it needs to be higher because fov100 on that widescreen plasma seems like fov 80 on a 21" CRT. So its more around 120 now to compensate for that. Also widescreen modes do help alot since u see more on your left/right. It's even usefull for 4:3 ratio screens, i now play in 1920x1080 on my 21", i really don't need to see 33% of sky and 33% of incar details with only 33% of road which is of great importance. Now its more like 25% air 50% road 25% incar so there is more detail on that road-area.

Secondaries
4th July 2007, 19:21
I think this would be a great idea. If it's possible, however, I think the effect should be gradual and not simply set. Let the FOV be standard while sitting still, and as you go faster a sort of "tunnel" vision sets in.

yaper
4th July 2007, 19:35
Great idea Juls.
But to prevent image distortion, the cylindrical projection should be applied on both (XY) axis, not just on one (X), just like in fisheye quake.
Effect should be of course screen aspect ratio dependent, to have less distortion on wide screen displays.
It should be a piece of cake for Scawen to implement this. ;)

LineR32
4th July 2007, 20:22
This is very interesting but it could be even simpler in a few years time when we start seeing Sony's Flexible TV on the market.

http://i.i.com.com/cnwk.1d/i/bto/20070524/oled_270x191.jpg

http://crave.cnet.com/8301-1_105-9722721-1.html

StewartFisher
4th July 2007, 22:13
It's an interesting idea but I'd like to see it in action before I comment on how useful it would be.

One thing worries me though...my TV uses this sort of non-linear stretching to fit a 4:3 aspect ratio picture to the 16:9 screen. It looks fine until you get a slow panning shot. Objects appear on one side of the screen moving very fast, then decelerate to a 'normal' speed in the centre, then accelerate again as they move off the other side. It looks a bit odd.
I realise that this is the whole point of the mapping in LFS but it really does look odd to me, and I'm not sure I could get used to it.

DeKo
4th July 2007, 22:47
It's an interesting idea but I'd like to see it in action before I comment on how useful it would be.

One thing worries me though...my TV uses this sort of non-linear stretching to fit a 4:3 aspect ratio picture to the 16:9 screen. It looks fine until you get a slow panning shot. Objects appear on one side of the screen moving very fast, then decelerate to a 'normal' speed in the centre, then accelerate again as they move off the other side. It looks a bit odd.
I realise that this is the whole point of the mapping in LFS but it really does look odd to me, and I'm not sure I could get used to it.

haha yeah had a similar effect watching a football game at a mates, was horrible to watch.

Electrik Kar
4th July 2007, 22:52
Let the FOV be standard while sitting still, and as you go faster a sort of "tunnel" vision sets in.

Flatout 2 uses that trick, and while it does give you a greater sense of speed, it also feels very strange as the FOV adjusts. It's an arcade game, so the effect is dramatic and arcadey, but I feel skeptical that you could pull this off realistically for a sim like LFS. But who knows?

t's an interesting idea but I'd like to see it in action before I comment on how useful it would be.

agree.

I also agree with Taavi that more detail/objects in the tracks would help. Even some more proper grass (not just textures) in patches on the edges of the track could give you a better marker for sensing speed. Tracks in LFS do feel and look a bit flat sometimes, especially when you see a game like RBR and all that grass and vegetation. Not that the LFS tracks should look like RBR... :D

N I K I
5th July 2007, 08:36
We have 5 camera views now, maybe we need 6th.
We have cockpit, follow, TV, up-down and free view, maybe it's time for new one, this one (i have no good idea for name)

Shotglass
5th July 2007, 10:47
i like the idea ... maybe its to distracting but ill reserve judgement until ive seen it in action

i have no good idea for name

dui view maybe ?

Gaas
5th July 2007, 10:54
You are allready on name and scawen didint see it yet rofl...anyways fisheye view seems fine...ehehe

yaper
5th July 2007, 11:19
Slider called "FOV linearity" should make happy all the users.
The ones who don't like distortion on the edges will use 100% linearity, the others can apply more non-linearity.

Shotglass
5th July 2007, 11:26
btw on the topic of wide fovs ... id like to see a multi camera rendering option for non flat projection rendering as well

Juls
5th July 2007, 13:49
In fact I did some tests this way: recording with fraps, and using spherize filters in premiere. Lens distortion filter is not good, because it exactly distorts the view like FOV does...so you take a large FOV and use negative lens distortion and you get exactly the same picture than a narrower FOV.

Did not have time to do much tests, but it works.
It only allows to simulate cylindrical or spherical distortion, but it's better than nothing. It works two ways:
- with a large FOV, positive values for spherize will stretch the center and shrink sides...it allows to use a large FOV without a too small center. It reduces speed sense coming from large FOV but it still keeps more sense of speed than narrower FOV.
- with a narrow FOV, negative values for spherize will shrink the center and stretch sides...objects and textures accelerate when they reach view side. Starting from 40 degrees FOV, I get something feeling like 60 degrees FOV in center, and 90 degrees FOV on the sides (I talk about speed sense).

to avoid objects bending on the sides and view corners, I use horizontal+vertical spherize instead of spherical spherize filter.
Anyway, cylindrical distortion is a bit brutal...70% of view is unchanged, and two narrow bands are heavily distorted...

Speed Soro
5th July 2007, 17:50
In opposite to any guys here said, the lack of sense of speed is more about LFS than others simulators.

rFactor has a much better sense of speed using artifacts like wheel (force feedback) and cockpit (graphical) vibration and a fullbodied sound.

The Juls idea is a great idea and makes very sense.

The idea is simple and I have used the same principle to have a better impression of speed in LFS, but I don't work in the fov.

I simply turn off the cockpit draw. Once you have the track on the bottom of your screen the speed with which it crosses this end line is too much faster than the speed it crosses the line at the bottom of your windshield.

You can compare it with real life experience easyli: drive a kart and drive a truck or bus at same speed and you think that kart is too much faster than the truck, cause in the kart your eyes are next to the ground and there the impression is that the things passes too much faster.

What Juls is trying to make is move the same effect to lateral. You can get the same feel if you just go in a real car: put your two hands covering the lateral of your eyes and just look ahead, and you'll not figure how fast you are going. Then free your vision and turn your eyes to the side and the speed will increase a lot.

In fact, when the objects are in the edge of your fov, the speed tends to infinite, so, more larger fovs, more sense of speed obviously.

Despite of this idea makes sense, it is not supposed to be good in a practical way. Maybe it goes well with larger screens but not in a 4:3 monitor.

But it should be given a try to that. It sounds promising for some configurations.

And of course, along with this, a more deep sound and some fake effects could help a lot too (of course I know that canned effects are not in the plans, so I dispense any aggressive commentary from the LFS patrollers).

Electrik Kar
5th July 2007, 18:56
I suggested not too long ago a bit of a 'whooosh' sound as you drove past close-by stationary objects. Bit of a corny suggestion but I sometimes wonder what it would be like to have that sound inside LFS.

When I tried rFactor, the cockpit was very shaky, not like LFS at all. But when I paid attention to riding in fast moving taxis in Istanbul I realised that the shakes in LFS were much more realistic. Also, those very shakes can be quite annoying in the ISI sims. I'm sure you could 'simulate' more of a shake/rattle with the sounds. I think that's what's really missing...

fakeman
5th July 2007, 20:05
Yeah better sounds could add a lot to the experience..
For example drifting in LFS looks so relaxed and smooth compared to http://youtube.com/watch?v=Kjaxez9OIX8

And shake effect could also add to the experience like at the end of: http://youtube.com/watch?v=ek9UyhrwaTU

Juls
5th July 2007, 22:21
Did you notice that space between signs before turns looks shorter than 50 meters? This is very visible with narrow FOV like 45 degrees...distances are sooo wrong (even if other cars look big like IRL).

As I increase FOV, signs look further from each other, and I need 115 degrees FOV on a 17 inchs LCD to have the right spacing between signs. Or 145 degrees using two monitors.

Of course, as soon as distances look right, speed too.

I think if we manage to bend a picture so center is not too small and distance between signs look right, it works.

Speed Soro
6th July 2007, 00:04
I think a 3head solution can give this sense of speed better, but the idea is good, and if is not too hard to implement, maybe someone could give it a try... Scawen!!! :) any chance?

Electrik Kar
6th July 2007, 01:06
Did you notice that space between signs before turns looks shorter than 50 meters? This is very visible with narrow FOV like 45 degrees...distances are sooo wrong

yeah, but even in real life you always get funny visual distortions like that. I remember when I was young, and someone pointed out to me that the gap between the white lines in the road was 8 metres or something, and I truly didn't believe them- they looked more like 4 metres or so apart. Then I tested it and he was right! :tilt:

Juls
6th July 2007, 08:56
Yes, of course, distorsions in real life. But I think we may all agree to say distances are wrong on screens with narrow FOV. And this is not only in sims.
Every onboard camera IRL does not give a proper sense of distance and speed. In fact every time the camera zooms in (=narrow FOV) and points toward incoming objects, it kills speed. I remember I was filming friends skiing quite fast...it looked fast as snails.
Looks like cameramen have hard time to find tricks that give back the sense of speed....avoid filming toward incoming objects (helicopter, crane...), avoid zooming, shaking camera, using fisheye lenses to fit a larger FOV into a 4:3 screen.

As you say, the only solution to get full sense of speed without distorsion is a large surrounding display or something approaching like triplehead2go or fresnel lenses or both. With such a display life is easy. But for others (99.9%?)

Juls
7th July 2007, 16:34
Sorry for the flood, I just realized such distorsion may be useful to increase sense of speed on small displays and for another purpose.

Default perspective used in sims is intended to be displayed on a flat display. It causes problem when you use multiple monitors and want to turn side monitors in order to get a surrounding display. Picture looks broken.

Cylindrical distorsion can be very useful for multi-monitor displays, because it creates the view required by such displays. Kegetys already implemented such a distorsion within softth (software triplehead).

Speed Soro
7th July 2007, 17:51
Yesterday I got a new monitor. It is a Samsung 19" wide, and now playing at resolution of 1440 x 900 pixels the sense of speed has increased a lot.

spavatch
8th July 2007, 17:44
I think a triple-head display, like those offered by Matrox and Quantum3D graphic adapters, could be a good solution for this problem and it wouldn't require any alteration of game code :thumbsup:. Unfortunately it would be unreachable for most of us (costs) :(.

Goood, I'd love to try that out... http://www.youtube.com/watch?v=tGB6A5GyyEc
(http://www.youtube.com/watch?v=tGB6A5GyyEc)

Bob Smith
8th July 2007, 21:08
It needn't be expensive, three (or two if you have one) second hand 22" CRTs, Ģ60 each, SoftTH is free software, second graphics card Ģ25. If you're desk is big enough and you have a PCIe board and a hefty main graphics card, there's not that much stopping you. :)

Bob Smith
8th July 2007, 22:33
You only concentrate on the primary (central) screen, the two other displays are for peripheral vision, immersion and sense of speed.

Juls
10th July 2007, 15:53
It seems that FOV is now a very discussed point.

I was still searching for an idea to improve the view, and I found something else. Main problem we have with FOV is that large FOV causes distorsion in objects with Y close from zero.
This is very visible within cockpit view: as you increase reasonably FOV, road remains mostly undistorted as it is far away, but car roof, doors and driver's arms are stretched and cover more and more the view. This happens because the projection used in game is perfect...in real life, wide angle lens always have a distorsion on the side which prevent this. For one time, perfection is a disadvantage :)

One way of getting rid of this is to use cylindrical or spherical distorsion, because this distorsion simulates a bit what happens in a wide angle lens or in our eye. For example the eyefish Quake simulates a view through a real, unperfect fisheye, and it looks far better for large FOV than the perfect DirectX projection.

Another way is to use different FOV. One for the world, one for the cockpit/car. It sounds strange but it works, because outside world and cockpit have different distances. World is mostly far away and large FOV is a better choice, it increases spatial awareness and sense of speed. Increase FOV and you see more.
On the contrary, cockpit is close, and you are inside of it...it looks nicer with lower FOV, closer from natural one.

Some driving simulators use a real car with a monitor on the windscreen.
In that case, cockpit is viewed using the natural FOV, and simulated environment uses another FOV adjusted for the monitor. It seems it does not cause any problem. Same for some flight simulators with real cockpit and monitor (there is a study like that where they use a real cockpit and they change the FOV on the display...from 22 degrees -natural FOV- to 80 degrees, and 80 degrees is better).


Here is an example. First a screenshot with 90 degrees FOV.
http://cracovia.free.fr/lfs_90_full.jpg

Then 130 degrees FOV (extreme setting). Better immersion for the road, but cockpit covers too much screen, door and arms are distorted.

http://cracovia.free.fr/lfs_130_full.jpg

Then a dual FOV screen. Road uses 130 degrees, and cockpit 90 degrees. You can see more road than in the 130 degrees FOV so the immersion is even better, and the cockpit looks better too.

http://cracovia.free.fr/lfs_130_90.jpg

With a dual FOV, as you see more road, you can get better immersion and sense of speed even for moderate road FOV. Increasing world FOV you can adjust sense of speed/distorsion, and reducing cockpit FOV you can decide if you want the cockpit to be more or less present/distorted.

Without moving point of view!

Gaas
10th July 2007, 17:35
good work..now if i would know how to do that dual FOV :/ just tried tu put FOV 130 and move view of eyes more front but its not same :/

Juls
10th July 2007, 20:03
It is like spherical/cylindrical distorsion...it has to be done by graphics engine. DirectX projection matrix has to be changed before car is displayed. The sample is an edited screenshot.

Anyway, I think this dual FOV thing can work nice with cars like in example (wheels are hidden by car interior), but it will not work with cars like LX and single seat because car wheels will look weird and seem to have lost contact with the road. Or maybe it will...Can't check that.

I think the spherical distorsion is the way to go. With a simple graphical step (mapping the rendered view on a 1:1 subdivided grid with U,V coordinates calculated from a sphere or anything else) it allows to see a nice large FOV without almost any distorsion, and even to create a view perfectly fitted for 3 monitor displays with side monitors turned a lot.

I have problem to make a nice movie of it, because the spherize filter in premiere lowers too much the resolution, but it seems it has some advantages. I can see a lot better on the sides (large FOV) and immersion, sense of speed seem better. To do it properly I need a movie in 1280*768...fraps stops at half this resolution.

I think most racing sims use rather classical tricks to improve immersion. Such an advanced feature, if it works nice, could be cutting edge.

FL!P
11th July 2007, 16:13
130 is probably a bit too much (to me, at least), but it looks like a good idea.

Adrian
17th December 2007, 18:43
Haha, I'm going to revive this old thread!

I've played fisheye quake a little while back, and it popped into my head while I was racing a few nights ago.

The single most aggravating aspect of racing in a sim is the field of view. Even with a helmet on, when I'm autocrossing or at a track day, I still have decent situational awareness.

I'm all for utilizing either the fisheye or the cylinder distortion methods mentioned above. Yes, they do distort your view somewhat, but they satisfy the basic needs for racing:

1) The track ahead must be seen in high resolution to accurately judge oncoming features and obstacles. This is usually aided by a low fov, making the oncoming track appear larger, essentially allocating it a larger 'pixel budget'. If all we did was hotlap, then this would be okay.

2) Awareness of other cars in overtaking situations. It doesn't matter if they're distorted, so long as you have an idea of where they are in relation to you. Even a band of 20 - 40 pixels, that showed the area next to you in a sort of super-squished view would provide the cue so you don't turn into the fellow next to you.

3) Mirrors simply don't have the resolution they should. On a high resolution setup (1600x1200 and up) with some anisotropic filtering and anti aliasing, the forward view down the track is actually pretty good in terms of comparison to the level of detail your eyes can resolve in real life. The mirrors however, especially the 'in cockpit' ones are not that great. Why not grab the upper portion of the screen, and divide it into three zones, one for each mirror? You still have to shift your eyes up, but they become much more useful.

I still think that one of the best resolved simulations in terms of awareness was Falcon 3.0, in the track/eye view. It was criticized by some for being unrealistic, but it did a much better job of replicating the true awareness, as opposed to focusing on drawing a pretty picture.

Anyways, that's my 2 cents, love the game!

Juls
5th March 2008, 17:11
Just found this document, explaining how to obtain a curvilinear perspective with a simple vertex shader:
http://www.frost-art.com/Data/Documentation/Frost_2002_RealtimeCurvilinearPaper.pdf

It just requires to apply a very simple vertex shader. That's all. Even simpler than the idea with the pixel shader. Less computation.

This is exactly the idea I wanted to suggest. As you notice at the end of the document, the red sphere on the right stays undistorted, the center of the picture is more detailed, and for the same FOV it shows a lot more what happens on the sides.....better immersion because what you see on your flat screen is almost the same than on a curved screen.

As directx 10 forces devs to use vertex shaders for everything, I think they will soon give up the traditionnal projection matrix and use more and more corrected perspectives like that one.

Bob Smith
5th March 2008, 17:33
Great link. This reminds me of the old fisheye mod for Quake I remember seeing about once. This seems more evenly balanced.

Juls
5th March 2008, 17:38
And it is a lot faster to compute, because this fisheye quake was rendering 3 or 6 views, and stitching them together. My first idea was similar: render a larger view, and then distort it using a pixel shader.

But with this vertex shader, it gives the same result with hundreds times less computation, as it only has to work on vertices.

For example sims like rFactor, GTL, GTR2 use shaders which can be edited...the perfect tool to check quickly what this effect looks like in a racing sim.

Concerning sense of speed, after comparing with other sims, now I am almost sure where the problem comes from: tracks in LFS are too large. Most of time 15 meters or more...even on fern bay which looks a bit narrow you can put 5 cars side by side.
It kills the sense of speed, 100 mph looks like 50mph, and it is very frustrating for beginners because they feel like they spin and slide at 30 mph.

Technique
5th March 2008, 17:54
Juls, this is interesting. The curvilinear projection looks unnatural to me though, but I guess I would need to see it in motion. Wouldn't rendering multiple viewports be the more realistic solution?

3 viewports with 3 projectors and a curved screen would be a neat setup. Something like this without the distortion:

http://drivezone.nl

... actually that's probably a bad example since that looks way larger than life :(

Juls
6th March 2008, 06:56
The curvilinear projection is simply a way to get rid of distorsion on a viewport, in order to allow people to use large FOV.

Images look a bit strange, because curvilinear projection extends your field of view for close-range objects. Without curvilinear projection, 90 degrees FOV looks often not enough. With it, 90 degrees FOV looks too much. I did few videos using filters to stretch the picture and obtain something similar, and I can tell you everything moves in a more natural way when you turn, and this is easier to take turns because they do not change shape as they come from the side of the screen to the center.
Note that the pictures in this document show 120 degrees horizontal FOV which is really a lot (60 degrees vertical FOV). 90 degrees horizontal FOV with curvilinear projection would be really nice I suppose.

Using three viewports will give three pictures that do not join together, because the sides are distorted. Objects will accelerate and stretch as they go from one display to another, and slow down when they get closer from a viewport center. But it should be less strong than with a single viewport.

Using three viewports with curvilinear projection will give three pictures that almost join togeter. To get pictures that fully match together, equirectangular projection should be used...this is almost the same vertex shader, but instead of adding distance camera-vertex to Z, it replaces Z with distance camera-vertex.

Shotglass
6th March 2008, 11:20
neat looks quite good and is apparently possible to do even with lfs' aged dx8 engine

JJ72
6th March 2008, 12:44
hmmm would be nice if someone can hack a quite mock up even if it's an eternal programe.

Kegetys
6th March 2008, 13:05
Doing such distortion on vertex level would most likely cause quite bad "artifacts" whenever there is a large polygon visible near the screen edges. It might look ok in a static screenshot but in motion I would imagine that the polygon edges jittering back and forth as the vertexes move would not look very good. Though of course a "solution" would be to add detail to all models, split all flat surfaces to multiple smaller surfaces, etc. but even then it would not eliminate the problem entirely and performance would surely take a hit. :shrug:

Juls
6th March 2008, 14:17
Oh yes, the vertex approach will cause many problems. I did not see that coming.
For example, the track will remain flat instead of being nicely curved, because it is made of large triangle I suppose, but the wheels of the next car will be properly placed on the curve that the track should follow if it was made of small triangles.

As a result, cars will sink in the track.

The best idea to get a nice, immersive eyelens effect, remains the first one: map the frame rendered by the game on a spherically stretched grid. It will not produce artefacts, and should be fast too. I did such an experiement applying a spherical filter on a movie recorded with fraps. It was really easier to see mirrors, and to corner...less distorsion<-> better idea of position in space during turns.



Kegetys do you remember I tried to talk about this on your forum as your software softth already uses some similar techniques to correct viewport distorsion?

DeMS
6th March 2008, 20:26
I suggested not too long ago a bit of a 'whooosh' sound as you drove past close-by stationary objects. Bit of a corny suggestion but I sometimes wonder what it would be like to have that sound inside LFS.

That's called the 'Doppler effect', which is the effect that distorts the sound of an incoming or outgoing source of sound depending on the relative position of the one that hears the sound towards the source of it, thus changing the speed at which the sound waves reach you, so it sounds higher or lower depending on whether the object is coming near to you or going away.

Easily checked whenever you see an ambulance coming. Before it reaches where you are, the siren will sound on a higher frequency than the actual sound, and when it goes away, it will sound on lower frequency, so it will sound like you applied some extra bass.

This effect would actually help into immersion a great deal, indeed.


About Juls idea :
As long as it is feasible, it would be awesome to have it put into practice, as it would yield a better sense of speed, speed awareness and thus more immersion. What I would suggest, though, would be to skip dividing screen into what percentage would be morphed, but rather apply one FOV to the windshield and another, higher FOV level to the side screens (and the back one), so the feeling would be the same, but it would not be distorted if you have the option to look at sides when cornering/turning your wheel.

Oh, and sorry for going off topic :]

PD: A quick intro on what 'Doppler effect' actually is can be easily found on Wikipedia, here (http://en.wikipedia.org/wiki/Doppler_effect).

Not Sure
6th March 2008, 21:06
+1 For some kind of adjustable fisheye lens thing :D great idea!


Sorry for offtopic, but the "woosh" effect has to do with nearby objects reflecting (your own) car sound back to you, not just doppler. So as I understand it, it is an echo sort of.

DeMS
6th March 2008, 21:25
+1 For some kind of adjustable fisheye lens thing :D great idea!


Sorry for offtopic, but the "woosh" effect has to do with nearby objects reflecting (your own) car sound back to you, not just doppler. So as I understand it, it is an echo sort of.

You are right, but it's on the same basis of the wave-model related to sound. You won't hear the reflections of your sound towards an object you're going to because your ear (human, I expect :p) can hear up to a certain degree, and most of the times you won't hear the reflections when you're going away because of the pitch also (amongst the truth of human nature: your brain does not process every information being given by the senses, only the relevant ones to survival/information, so a sound of danger will be processed after learning that this sound is associated to something that could harm you), but when you're level (or close to level) to the object, the speed distortion of sound 'is' almost non-existant for a moment, thus it's when you have more chances of hearing it.

Just test it with your car, you will see what I mean :]

PD: Sorry for the slightly off-topic way this seems to be going, but I think it's related to the first statement on the post, which has in common the willingness of having better in-game immersion.

Technique
6th March 2008, 21:46
+1 For some kind of adjustable fisheye lens thing :D great idea!

FOV distortion problem? I have an idea, let's put toilet water on it!

hah.. I love that movie. I didn't realize such a stupid movie would make it to Finland :)

vixer
7th March 2008, 11:32
And what about offset settings ? Like Y off 0.08m , Z off 0.05m whit FOV 110 in XRG looks really nice right ? http://www.turboimagehost.com/p/169618/LFS_2008-03-07_12-53-24-71.JPG.html

Juls
10th March 2008, 12:25
Yes I use offsets, but it does not solve any perspective distorsion problem
Currently, increasing FOV, tilting view down, and moving view forward and upward gives the best sense of speed for me.
But view on the sides is still distorted and it looks weird when I turn (trees, sky, road, other cars stretch as they reach screen limit).

vixer
10th March 2008, 13:43
Your right, but the stretches are even visible on standard 90 FOV.
I think that most Sense of Speed benefits would be given by a fix to the different refresh cycles of the engines :tilt: .

Technique
12th March 2008, 19:09
Your right, but the stretches are even visible on standard 90 FOV.
I think that most Sense of Speed benefits would be given by a fix to the different refresh cycles of the engines :tilt: .

huh? wouldn't that just make it "smoother"?

Hey Juls, I google'd around a bit and found this neat article on howstuffworks.com

http://electronics.howstuffworks.com/elumens.htm

I'd especially look at page 3.

Edit:
Now that I think about - 'stitching' the left angled, center, and right angled viewports together and just projecting on a normal curved screen (not a hemispherical dome) would be fine for LFS. What's above and below you doesn't add to the sense of speed.

Technique
12th March 2008, 19:26
Here's something similar:

http://www.immersivedisplayinc.com/omniMap.htm

However, this appears only to warp the normal viewport whereas the previous article takes 5 viewports and combines them to form one scene.

CSU1
12th March 2008, 20:06
:goldfish:-1 for rendering fish artifacts.

+1 for three monitors.

+1 for the Whoosh! sound as you pass a near object.

I can see the headlines now, "Live For Speed adopts the fish-eye method to further immense their drivers!"

LOL! :cyclops:

It is a clever addition that some could use, but it has absolutally nothing to do with the development of a race sim, come on, fish-eye?

If you are that into the sim and feel the sense of immersion is letting you down, take Bob's advice and add three monitors to your rig, i bet you'll find it's a whole lot better for this "sense of speed" you look for.



I have'nt got LFS atm, what is the setting called that speeds up the edges of the screen called again?

E:

http://strlen.com/files/pix/ssf/dm4_1000.jpg

This is T1 @ Blackwood with Fish-eyes enabled ROFL!!!!

x2infamous
12th March 2008, 20:25
I think this would be a great idea. If it's possible, however, I think the effect should be gradual and not simply set. Let the FOV be standard while sitting still, and as you go faster a sort of "tunnel" vision sets in.

Agreed. I think that it would drive me nuts if it was like that when I was sitting still but definitely less noticeable when I'm thinking about approaching a corner rather than my fisheye view.

+lots

Technique
12th March 2008, 20:53
The problem with 3 monitors right now is distortion. You're still rendering one flat view onto 3 monitors.

Screw image stitching, if we could just render multiple view ports to multiple monitors, it would be awesome.

Here's a crappy photo of what it would look like. I took a screenshot with 45° FOV. Next, I rotated the camera 45° and took another screenshot. I then set them as my desktop wallpaper and rotated the left monitor ~45°. I only have 2 monitors so unfortunately I cannot show the full effect.

If I had a third monitor, this would give you a 135° field of view with no (?) distortion. With large enough monitors, I think this would be good enough without spending crazy money on a dome projection system.


Update: See the photoshop image (post #77) - it looks pretty close to what I see on my monitors in. I think it looks amazing! ... if I must say so myself.

dev
12th March 2008, 20:55
The problem with 3 monitors right now is distortion. You're still rendering one flat view onto 3 monitors.

Screw image stitching, if we could just render multiple view ports to multiple monitors, it would be awesome.

Here's a crappy photo of what it would look like. I took a screenshot with 45° FOV. Next, I rotated the camera 45° and took another screenshot. I then set them as my desktop wallpaper and rotated the left monitor ~45°. I only have 2 monitors so unfortunately I cannot show the full effect.

If I had a third monitor, this would give you a 135° field of view with no (?) distortion. With large enough monitors, I think this would be good enough without spending crazy money on a dome projection system.
Now take a screenshot of that, so people can actually see that the original image is distorted...

Shotglass
12th March 2008, 22:29
135 on a triplehead would look something like this

Technique
12th March 2008, 22:42
Thanks, I'm guessing you have a 3-monitor setup? I didn't think it was possible to take a screenshot at that aspect ratio otherwise.

Shotglass
12th March 2008, 22:45
Thanks, I'm guessing you have a 3-monitor setup?

nah
paint ftw

Technique
13th March 2008, 03:28
Alright, that photo really doesn't do it justice. So here's a photoshop that is much closer to what it looks like on my screen. I think if you view this image in full size (not zoomed out) on a high res monitor you'll understand why even though the mirrors are angled they look perfectly natural. Because you actually have to turn your head to the left to see them, and when you do, they're at the correct angle.

If you have a 3 monitor setup and you spread this image across all 3 it will not look correct because this image already has the perspective of left and right monitors taken into account. If you want to see what it looks like use the images in the zip file. Note: I have a special program (UltraMon) which allows me to use different wallpapers for each monitor. You may have to open them in some image viewer and fullscreen them on each one. Make sure you tilt your left and right monitors ~45 degrees and your eyes are aligned vertically with the center of the monitors.

Warning: very large image (my monitors are 1600x1200 each). Oh yeah the screenshots were taken with both AA and AF off - which explains why it probably has jaggies.

Mods: This will be the final spam message from me. :)

Juls
13th March 2008, 10:16
The links you gave (spherical screen or fish-eye effect on a flat screen) all do the same: using one or several (distorted) views from the game they build a new view with a spherical projection.

And this is what you do too with three views. In the post above, you took three 45 degrees views, stretch a bit the side views and put them on three monitors. Same process, just different in the details.


This result can in fact be approximated with a cylindrical distorsion applied in one step on a 135 degrees FOV view. The main advantage is that this solution can be applied on a single monitor too, allowing to display large FOV with a natural aspect.


@CSU1: Perspective used in games is a simplified perspective that consider everything on the same plane than viewer is at distance zero...that's why it is distorted. Directx still uses this because it avoids artefacts, but it is a bad approximation of real human view...and get worse when FOV increase.

Spherical distorsion...or fish-eye as you want, give the following advantages:
- what you see on display moves like a spherical, surrounding display-> more immersion
- objects keep the same aspect ratio as they come closer from screen limits-> turns do not change shape and it is more natural to view where apex is->more realistic
- larger FOV without "tunnel effect" -> better spatial awareness, more realistic.

This is more a question of realistic display than sense-of-speed.

Anyway, sooner or later it will be time to renew the way things are displayed on screen....

Technique
13th March 2008, 11:52
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.

vixer
13th March 2008, 14:17
Technique I think u should turn ur FOV a bit down. Or not :) ?

And skidmarks ? Lots of them and cracks and other litle stuff ?

Technique
13th March 2008, 14:56
Technique I think u should turn ur FOV a bit down. Or not :) ?

And skidmarks ? Lots of them and cracks and other litle stuff ?

Hi Vixer, when the left and center viewports are viewed on my 2 monitors with the left monitor angled 45 degrees the FOV looks very realistic. My eyes are centered on the center monitor and I have to turn my head to see the left monitor (I'm sitting a little more than a 1' away from my center monitor). It doesn't look correct when you zoom out is shown in your picture. Also, you may have misunderstood my post. My center monitor FOV is only 45 degrees. However, the improvement suggestion is to allow multiple viewports. Thus, the left and right monitors have a FOV of 45 degrees as well bringing the total combined FOV to 135. This is different than what we currently have: 1 viewport with 135 degree FOV. See shotglass's post (#74) to see what it would look like with 1 viewport. Remember, humans can see ~180 degrees. Since 3 monitors can't provide a full wrap around 180 view, I think 135 is a fairly reasonable FOV.

As far as those graphical glitches, ask the devs! You can see this yourself. Load up a track with FBM, set your FOV to 45 degrees and rotate the camera about the vertical axis -45 or +45 degrees.

As far as skidmarks what do you mean? We already have skidmarks in the game.

vixer
13th March 2008, 15:23
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) .

Stang70Fastback
13th March 2008, 15:37
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!

Juls
13th March 2008, 16:09
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.

Technique
13th March 2008, 16:31
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?


*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! :)

vixer
13th March 2008, 16:35
Have you guys seen this ? http://nastyhobbit.files.wordpress.com/2005/10/multi-monitors.jpg

Technique
13th March 2008, 17:17
Yeah. That's an old picture.

Juls
13th March 2008, 17:18
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?

Technique
13th March 2008, 17:26
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.

Technique
13th March 2008, 17:33
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.

Juls
13th March 2008, 17:38
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.

detail
13th March 2008, 18:11
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.

Juls
13th March 2008, 19:51
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

vixer
13th March 2008, 20:01
Juls what do you think bout displays directed outside and not towards the player ?

Technique
13th March 2008, 20:02
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 (http://research.microsoft.com/%7Ezliu/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:


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.

Bob Smith
13th March 2008, 20:05
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.

vixer
13th March 2008, 20:10
Indeed but u got the point :-).

Gimpster
14th March 2008, 00:14
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.

Technique
14th March 2008, 00:33
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!

Gimpster
14th March 2008, 00:48
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.

Technique
14th March 2008, 01:25
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.

Gimpster
14th March 2008, 01:44
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.

Juls
14th March 2008, 07:53
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.

LiveForBoobs
16th March 2008, 17:28
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.

Technique
17th March 2008, 03:26
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.

wtf im nameless
20th March 2008, 02:43
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.

Stang70Fastback
20th March 2008, 13:08
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. :D

Juls
25th March 2008, 10:39
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!

Glenn67
25th March 2008, 10:55
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!

:thumb: that would open up a whole bunch of additional possibilites...

wtf im nameless
25th March 2008, 12:55
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.

Juls
26th March 2008, 07:32
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.

Not Sure
26th March 2008, 09:53
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.

I don't think wtfimnameless meant this side-view-with-spectator-mode to be a solution really. I understood it as a experiment with independent angles for separate displays. By using this unwieldy setup the benefits of multiple viewports have been proven.

I wonder what Scawen thinks about this? I for one would like to hear some feedback.

Glenn67
26th March 2008, 12:07
I wonder what Scawen thinks about this? I for one would like to hear some feedback.


This is what he thought about this a few years ago :p

About multiple screens by using multiple computers connected, i think that is an easier option than supporting multiple video cards in a single computer. But although it's a nice thing to support, it's a bit low priority compared with several other things. I don't know if it will be supported by LFS in future, or if Direct X or video card manufacturers will make it easy to support multiple screens, before we reach that time.

The video card manufacturers still haven't come to the party :shrug: it would be interesting to hear if Scawen is thinking it deserves higher priority now :scratchch I'd be happy just knowing it will make it into S3 :smileypul

Source
http://www.lfsforum.net/showthread.php?p=26560#post26560

wtf im nameless
26th March 2008, 20:36
I don't think wtfimnameless meant this side-view-with-spectator-mode to be a solution really. I understood it as a experiment with independent angles for separate displays. By using this unwieldy setup the benefits of multiple viewports have been proven.

I wonder what Scawen thinks about this? I for one would like to hear some feedback.

At first I did that just to see what it would look like.. and it blows the doors off the current system for FOV and just how proper everything looks.. no distortion.

What i'm saying now is what is the difference between a rear view mirror in the car and proper multi screen support?

What is a rear view mirror in this game? It's a box that displays a different camera angle.

Right now when I play triplescreen the left and right rear view mirror are on my side screens.. why can't you make them larger and instead of being rear views, move the camera angle so its a side view.

What is the difference? Am I missing something here?

For the pics go back to my thread a couple posts up and go down near the bottom of the first page. There are some links of pics showing my new idea.

I cannot make the game do that, all I can do is hack it together to show what it could look like... and its freaking amazing.

Even if thats too hard to do why can't I just connect via lan from a second PC?? Thats how Forza 2 does it on Xbox 360 and thats how Gran Turismo 4 does it on PS2.

On Forza 2 mutli screen you just tell the game you want multi screen, tell it which camera angle.. and when it reboots it sits and waits to connect to the main screen. All it is, is a spectating view turned to the side. All the multi screen work is done offline.. just a client taking info from the main player. You only need one xbox live account to connect and play even quad screen on 360.

wtf im nameless
26th March 2008, 21:02
Don't mean to double post but heres what it boils down to:

1) Is it possible to add "Left" and "Right" virtual rear view mirrors just like the center one we can turn on right now?

2) Can the camera angle of these virtual rear view mirrors be changed?

3) Can these left and right virtual rear view mirrors be made bigger?

4) Can you base the size of your two virtual rear view mirrors on the resolution of the game?

Example: I am running at 5040x1050.

There is an option just under the "rear view mirror: none, virtual, both" that says something like "Triple Montior" or "Multi View"

When I click this on, all it does it enables two "virtual" side views.

To figure out the size of these virtual side views, LFS takes your horisontal resolution and divides it by 3, so it gives you two virtual rear view mirrors that are 1680x1050 and puts them on the far left and right of the screen.

Presto, triple screen support done.

Granted this is something the devs have to do, and they just might be too busy doing other things to the game. There is nothing wrong with that, LFS is their baby at the end of the day..

Like i've said before, I don't know a lot about programing so there's gotta be something i'm missing here... either that or people put too much thought into what you need to do to make triple screen work.

KISS - Keep It Stupidly Simple

If one of the mods can check with a dev about those four questions. Because if the answer is yes to all four then it's just a matter of what the priorities are and this conversation can be over. If the answer is no then we have to think of a better way... I'm basing this all on the fact that the virtual rear view mirror that this game has is a box showing a different camera angle... Just make the box bigger and change the camera angle. If it's possible for the dev's to add virtual side view mirros, this is possible... if they cannot do that for whatever reason.. then this idea just won't work.

Not Sure
26th March 2008, 21:05
Oh now i understand what you were on about with the side mirrors. At first it seemed like you wanted to have two full screen mirrors or something :D

So LFS currently renders 2 camera angles simultaneously, forward and backward. Should not be too hard to add a few more? But I really don't know what it takes..

It's late. . :shrug:

wtf im nameless
26th March 2008, 21:19
Oh now i understand what you were on about with the side mirrors. At first it seemed like you wanted to have two full screen mirrors or something :D

So LFS currently renders 2 camera angles simultaneously, forward and backward. Should not be too hard to add a few more? But I really don't know what it takes..

It's late. . :shrug:

Is it just forwards and back though? Don't forget about the in car mirrors too.. I think they're different angles too.. so thats 1 main, 3 in car rear views plus one virtual rear view. 5 total.

Technique
26th March 2008, 21:43
The side view mirrors aren't different angles - they're the same as the rear view (exception they only display a portion of what the rear view displays).

wtf im nameless
27th March 2008, 02:22
The side view mirrors aren't different angles - they're the same as the rear view (exception they only display a portion of what the rear view displays).

hmm, maybe thats the issue, maybe this game can only have front and back views at once. thats too bad if thats the case.. Oh well, it's all speculation at this point... guess we can only hope for the best.

Squelch
31st March 2008, 03:45
This is a really interesting discussion. Having been away from the forums for a long time I'd missed all this, and it relates directly to some of what I've been working on independently. I think I understand exactly the point you are making Juls.

It might help if our understanding of how humans judge speed is explained. It's not as simple as stereoscopic distance measurements made over and over, although this is used when an object is focussed on, but something referred to as optic flow. There have been studies made, and it was found that one eyed people can judge speed just as effectively as two eyed people. The best way of explaining it is: As you are travelling down the road. A roadside object in the distance (say a lamp post) moves across your field of vision from the centre at an increasing rate until it's passed at the edge of the field of view. The brain uses this apparent acceleration to determine the velocity we're travelling at. It is thought that this is our (humans) main speed assessment method.

Increasing the FOV does indeed increase the perceived sense of speed by increasing optic flow on a flat screen, but it does come at the cost of reduced resolution at the centre of view (exactly where it matters most) and the distortion that some people find disturbing. The default 90 FOV causes the driver to over speed because of the spatial compression it imposes while maintaining correct comfortable perspective. I find 110 to be a good compromise.

What Juls originally proposed I believe, is to apply a spherical or elliptical distortion across the field of view to accentuate the optic flow without the resolution loss at the centre. It might become a problem however when the driver looks away to another part of the screen, as the prime spot wouldn't follow their gaze. TrackIR would fix that to a point if you only moved your head to look, but that is another story.

The Microsoft article is experimenting in what is largely a static conference scene and probably doesn't apply here. Though it does highlight the inherent problems with 3D worlds on 2D media.

Using a wrap around projected screen is probably the best compromise. but without multiple independent viewport support in LFS, using more machines to render the other views still might be possible while maintaining synchronisation. I've been working on that for some time. The mirror problem is elegantly cured with this setup by using real mirrors.

It's worth repeating that we do not judge speed by sight alone. There are many other mechanisms that play on our senses which are just as important. If they can be emulated, or the whole body fooled into believing it's moving, the battle is almost won.

It would be be nice if LFS could support multiple viewports to enable any of the discussed options to work, or better still, (to take the load off one machine) have a render only client that could connect to the local client without taking up a server slot. I alluded to this before in discussions about spectator TV broadcasts. The possibilities could be endless.

Juls
4th April 2008, 20:44
What Juls originally proposed I believe, is to apply a spherical or elliptical distortion across the field of view to accentuate the optic flow without the resolution loss at the centre. It might become a problem however when the driver looks away to another part of the screen, as the prime spot wouldn't follow their gaze.


Thank you very much for explaining a lot better than me :)
In fact it would not cause much problem if you look away from the center of the screen....it would even cause less problems than current view.
Look at the current view we have in 3D games. This is a distorted, approximation of a real perspective, where circles become stretched ellipses as they go away from center!

The spherical or elliptical distorsion proposed here is in fact an un-distorsion. Because if you apply it, circles remain (almost) circles even on the display sides. It replaces the odd stretching caused by the linear perspective used in 3D games with a more natural distorsion (barrel) we are used to see in everyday life on TV, pictures.

JTbo
6th April 2008, 10:26
Only really well working solution is to cover more area of what you see with display, this is why projector setups own 3 monitor setups 100-0.

wtf im nameless
6th April 2008, 16:04
Only really well working solution is to cover more area of what you see with display, this is why projector setups own 3 monitor setups 100-0.

I disagree. I think a 3 projector setup would own.. but I would rather have side vision that gives me a sense of speed rather than a giant screen infront of me.

I tried moving my cockpit infront of my 71 inch TV and my personal preference was sticking with the triple 22's. I just cannot justify spending that much on three projectors for a game that does not properly support multi view...

Keep in mind a lot of people using over head projectors are running screens too big for the game to be realistic.. In a perfect world the screen should be the right size so other cars are real world size, not too big, not too small... I think that size would be somewhere around triple around triple 80-90ish inch screens.

vixer
7th April 2008, 02:12
I think the best would be a virtual helmet (around 1600x1200) with a head tracking device on x1 acceleration :) .

Technique
7th April 2008, 04:21
I think the best would be a virtual helmet (around 1600x1200) with a head tracking device on x1 acceleration :) .

hmmm... u could just strap a monitor to a helmet and you'd be all set.... :)

JTbo
7th April 2008, 06:28
I disagree. I think a 3 projector setup would own.. but I would rather have side vision that gives me a sense of speed rather than a giant screen infront of me.

I tried moving my cockpit infront of my 71 inch TV and my personal preference was sticking with the triple 22's. I just cannot justify spending that much on three projectors for a game that does not properly support multi view...

Keep in mind a lot of people using over head projectors are running screens too big for the game to be realistic.. In a perfect world the screen should be the right size so other cars are real world size, not too big, not too small... I think that size would be somewhere around triple around triple 80-90ish inch screens.

That depends again, my screen is setup so that width of dashboard is close to what it should be IRL and cars actually look like cars now and not like some small toy objects, sure pixels are bigger, so it is case of if you value more of pretty pictures or more realistic view.

I need to turn my head like in real car, of course with 3 projector setup that would be even better.

Then if you consider costs, 3 big monitors are going to cost much more than 1 proctor which gives you equivalent image width.

Bob Smith
7th April 2008, 07:40
I've used a projector once, the lack of resolution was really offputting. With a screen that big you only focus on the center of it, I think the resolution was only 1024x640, you end up focusing on just a few pixels and it's hard to make things out. I prefer multiple higher res screens tbh, although the issue of borders is always there, you can kinda get used to it.

JTbo
7th April 2008, 08:17
I've used a projector once, the lack of resolution was really offputting. With a screen that big you only focus on the center of it, I think the resolution was only 1024x640, you end up focusing on just a few pixels and it's hard to make things out. I prefer multiple higher res screens tbh, although the issue of borders is always there, you can kinda get used to it.

1152x864 or something like that here, can't remember exact numbers. I find that I focus on side of screen at corners, looking to apex, if I look ahead I look bit higher, if I need to see dials I need to look down, just like IRL, that is what I find to add lot to immersion and to sense of speed too.

You need to use AA and AF really to compensate resolution a bit, but I'm waiting Full HD projectors to get realistic prices and with that resolution should be tad better.

You need two days to adjust to projector however, driving is lot different with it as you don't see everything in one look, which is again more real than with monitor.

Juls
7th April 2008, 12:32
Did you notice that this thread has nothing to do with screen size, projectors, and multiple monitors. :)
In fact it has something to do with it but this is not the main point.

It is about distorsion caused by linear perspective used in 3D libraries like OpenGL and DirectX, and a rather simple trick to correct most of this distorsion.

In 3D games, if you consider an object just in front of you and translate it to the right, it will remain the same size....even if it goes 5 kilometers to the right (assuming you can still see it with 180 degrees FOV). Because only front/rear distance to the object is considered, not lateral distance.

IRL, the same object will look smaller and smaller as it moves to the right. As it should be.

Even if you take three viewports and stitch them together for a three projectors surround setup, you have to do something with that stupid distorsion to have smooth transitions between the three viewports. Of course it is less visible than with a single large viewport, but the three pictures do not match (lines are broken). No way to escape, something has to be done about it, in post or pre-processing, whatever you have: single projector with large FOV,multiple projectors, multiple viewports...etc.

JTbo
7th April 2008, 14:32
Juls, that is true, but if your picture is 19" wide that object on screen is certain amount of distance to right, now if you have 100" screen it is far more to your right and this physical distance helps to create illusion of objects becoming smaller when they move to sides. Of course very subtle effect still, but every bit counts :)

Technique
7th April 2008, 16:09
jtbo, I agree with you but the problem still remains. A large projector would be best suited with a large FOV and the image would be really distorted regardless of the screen size as Juls stated.

I wish I was more in the know about projectors. Like, what's the technical reason why we can't have a really wide aspect ratio projector like 16:3 (the equivalent of three 16:9 monitors linked together). It's so simple to make a good DIY screen for projectors...

Bob Smith
7th April 2008, 17:58
JTBo - I thought the distance was not the main factor, but the angle. With a high FOV, an object near the edge will be quite some distance to your side (assuming you have a screen size that permits natural FOV), so the object takes up much less of your vision. I noticed in Obvilion that people always look really fat in the sidescreens if I look directly at them, but if I concentrate on the main screen they look a bit thinner. Assuming you can use your natural FOV, shouldn't these two effects cancel out?

wtf im nameless
7th April 2008, 19:57
Did you notice that this thread has nothing to do with screen size, projectors, and multiple monitors. :)
In fact it has something to do with it but this is not the main point.

It is about distorsion caused by linear perspective used in 3D libraries like OpenGL and DirectX, and a rather simple trick to correct most of this distorsion.

In 3D games, if you consider an object just in front of you and translate it to the right, it will remain the same size....even if it goes 5 kilometers to the right (assuming you can still see it with 180 degrees FOV). Because only front/rear distance to the object is considered, not lateral distance.

IRL, the same object will look smaller and smaller as it moves to the right. As it should be.

Even if you take three viewports and stitch them together for a three projectors surround setup, you have to do something with that stupid distorsion to have smooth transitions between the three viewports. Of course it is less visible than with a single large viewport, but the three pictures do not match (lines are broken). No way to escape, something has to be done about it, in post or pre-processing, whatever you have: single projector with large FOV,multiple projectors, multiple viewports...etc.

I'm trying to understand what distortion you are talking about. When I play Forza2 or rFactor using the multiview mode I do not notice any distortion at all... if a car passes me it can go from the side monitors to the front monitors and it looks amazing. Forza 2 has the best mutli monitor support I have ever used and when configured properly I can honestly say it looks like a million bucks.

When you say "the lines are broken" and "three pictures do not match" I do not understand. In Forza 2 all lines and angles are 100% perfect when properly configured. The lines on the road are exact and flow 100% perfectly on to the side screens. The size of the lines are the same, the angles are exactly as they should be and the end effect is amazing. All lines including the horizon, the road, all barriers match up 100% for both sizes and angles.

Shotglass
7th April 2008, 20:11
Assuming you can use your natural FOV, shouldn't these two effects cancel out?

im not exactly sure on the math behind those flat projection but my guess is that if you screen is wide enough the angular width of someting moving across the screen should remain constant so it should look the same even when you look directly at it regardless of where it is on screen

Bob Smith
7th April 2008, 22:30
im not exactly sure on the math behind those flat projection but my guess is that if you screen is wide enough the angular width of someting moving across the screen should remain constant so it should look the same even when you look directly at it regardless of where it is on screen
Ah, so you mean, where you look is unimportant, so long as you don't move your head?

Shotglass
7th April 2008, 23:36
as long as the screen is large enough to cover x degrees of vision from the point your head is at it should be

JTbo
8th April 2008, 07:03
It was quite low number of degrees which we see when we focus on something, however we pickup movement from peripheral vision, which helps in feeling of speed, afaik.

Because we can't see very clearly sides of road with big picture, would this mean that it does not really matter which size objects become when they move to sides?

Was object followed with eye when they have tested sense of speed?

Juls
8th April 2008, 15:58
I'm trying to understand what distortion you are talking about. When I play Forza2 or rFactor using the multiview mode I do not notice any distortion at all... if a car passes me it can go from the side monitors to the front monitors and it looks amazing. Forza 2 has the best mutli monitor support I have ever used and when configured properly I can honestly say it looks like a million bucks.

When you say "the lines are broken" and "three pictures do not match" I do not understand. In Forza 2 all lines and angles are 100% perfect when properly configured. The lines on the road are exact and flow 100% perfectly on to the side screens. The size of the lines are the same, the angles are exactly as they should be and the end effect is amazing. All lines including the horizon, the road, all barriers match up 100% for both sizes and angles.

If you do not see it, increase the FOV per screen. With 3 monitors using 45 degrees FOV sure it is almost not visible. But if I remember well you were talking about 3 90 degrees views projected on the walls of a room.

When you have three viewports, this is like 3 cameras, one per screen do you agree? With a 90 degrees FOV camera, objects are perfect in the center, and stretch when they reach the side of the screen, don't they?
So with three viewports using 90 degrees FOV, you have three times this distorsion...next car is perfect in the center of middle screen, then it stretches as it goes from middle to right screen, and shrinks as it reaches right screen center.
Try to take two 90 degrees FOV screenshots in LFS and project them on two walls of a room. If you look at the edge between these walls, you will see what I mean.

When I say lines are broken, I do not want to say they are not continuous anymore. They are continuous, but they change angle from one screen to the next one like a line going inside a glass of water. It becomes very visible as soon as you have more than 50-60 degrees per FOV.

3x45 degrees is a good solution for three monitors. It works nice, distorsion is almost not visible. But distorsion exists.

Napalm Candy
13th April 2008, 12:07
I was thinking about write a message like this :)

I think that i know what is the problem, and how can to solve. Solution is lens correction

I upload 2 images, 1 without lens correction, directly from LFS at 116 degrees FOV. And another with 128 FOV, and lens correction by photoshop, set up to -33.

The result is a equilibrium with a big FOV and realistic view, sense of speed and big view :)

What i ask is an option to adjust separately, the FOV and the Lens correction.

I don't know if i can to do the effect with DirectX externally from LFS

Here, information about how to program and formula http://ieee.stanford.edu/ecj/2004/docs/ECJ_demo.pdf

Kegetys
13th April 2008, 12:37
Lens correction is something I implemented to SoftTH a while ago (not publicly released yet). It just needs to be done as a "postprocess" effect so it reduces the image quality quite a bit as pixels get enlarged on the middle.

Napalm Candy
13th April 2008, 12:53
Lens correction is something I implemented to SoftTH a while ago (not publicly released yet). It just needs to be done as a "postprocess" effect so it reduces the image quality quite a bit as pixels get enlarged on the middle.

Can you to release it? :) So the "cylindicalCorretionAngle" is not a solution for this

Juls
13th April 2008, 14:42
I was thinking about write a message like this :)

I think that i know what is the problem, and how can to solve. Solution is lens correction

I upload 2 images, 1 without lens correction, directly from LFS at 114 degrees FOV. And another with lens correction by photoshop, set up to -24.

The result is a equilibrium with a big FOV and realistic view, sense of speed and big view :)

What i ask is an option to adjust separately, the FOV and the Lens correction.

I don't know if i can to do the effect with DirectX externally from LFS

Here, information about how to program and formula http://ieee.stanford.edu/ecj/2004/docs/ECJ_demo.pdf

This is the idea of this thread. Look at first posts and the pictures...large FOV screenshots with spherical or cylindrical or lens distorsion. I wanted to use simple examples with cylindrical.. but many different mappings could be used for different games.

Nice to see you did something like that, Kegetys. It would be great to have a directx hook adding custom post-processing distorsion to any game. I was thinking about something like that:

- to obtain distorsion, the hook maps the game buffer on a regular grid,for example 20x20 cells. Grid vertices are regularly spaced,but the texture coordinates of these vertices are not regular->distorsion.

- the texture coordinates of the cells vertices come from a text file...allowing all possible custom distorsion...for one screen, for three,for multi-projectors stitching, curved screens....etc. Can be calculated directly from a spreadsheet.

I suppose the tool people use to distort image to project on curved screens works a bit like that. (there was a link few posts ago).

Kegetys
13th April 2008, 15:07
Can you to release it? :)

It will most likely be included in the next SoftTH version (Whenever that may be released). As said though it looks a bit bad due to the lost detail, plus it distorts the menus etc. too while the mouse coordinates are not distorted so it needs toggling on/off all the time...

Shotglass
13th April 2008, 15:50
any chance that if you do release a new soft th version to make the distortion work on a single monitor as well?

Stang70Fastback
13th April 2008, 16:01
How difficult do you think something like this would be for the LFS developers themselves to implement. It would seem to be fairly simple, as it involves simply tweaking the views that the "person" sees. I can't possibly imagine this being very complicated...

NitroNitrous
13th April 2008, 20:52
Wow, I didnīt see this thread before, but it deals exactly with the main problem LFS has IMO :nod:

Juls
14th April 2008, 08:31
Arbitrary distorsion based on a grid one can stretch.

This software seems to do that kind of thing:
http://www.youtube.com/watch?v=7wkp9GhUp58

It could be some very interesting tool...because it is very flexible and matches many users needs at once:

- bend parts of the picture if you use multi-monitors with side monitors turned....two or three or more monitors.
- bend parts of the picture to have multi-projectors views stitching perfectly.
- bend picture if projected on a curved screen or from an unusual projector position.
- add a spherical/cylindrical/lens distorsion to enhance
FOV/sense of speed.
- move the center of the view left or right for people using two or 4 monitors.

The best way to avoid precision loss in the center is to make the game use a higher resolution than screen. SoulHunta wrote a tool for dual-monitor users working that way. When you run this tool, LFS has a new resolution, bigger, in screen menu. And when you move the mouse, the soft switches to normal to avoid menu problems.[/URL]
[url]http://www.lfsforum.net/showthread.php?t=31026 (http://www.lfsforum.net/member.php?u=110397)

Juls
5th November 2009, 09:31
Thank you so much Scawen. The possibility to use more viewports than screens gives exactly what I have been waiting for in a racing game!

Cylindrical perspective! Look at these two screenshots (single monitor). This is the exact same view, with the same FOV (130 degrees), one using perspective view like all sims excepted LFS do, the second one with multiple viewports like only LFS can do.



Look how distorted objects are on the first screen sides, how difficult it is to understand where is the apex, how the center of the view looks ridiculously small. Difficult to appreciate speed, distances, orientation, poor spatial awareness.

Second view, even if there is barrel distorsion, keeps aspect ratio almost unchanged and this is what matters in racing. A 90 degrees turn will always look like a 90 degrees turn, from the side to the center of your monitor. Apex is where it visually appears to be all the time. Speed is consistant in all directions, distances and angles too.
Look at the poles on the left side, the track texture...clouds, trees on the right side. And the most important...turn looks different! Closing turn on the first screenshot, not on the second screenshot.

That is why when you try a racing sim for the first time you always turn too strong. Every turn looks like it is closing. And this effect is already present (moderately) with 90 degrees FOV.

Look how horizon is curved on the first screenshot, the tunnel effect, and flat on second screenshot.

Very quickly we forget entirely the barrel effect and this view gives a far better sense of depth and accurate sense of speed. Thank you again it is already Xmas for me !!!

130 degrees FOV on a single tiny monitor without distorsion. Which other sim can do that?

Flame CZE
5th November 2009, 18:27
Yes, that's really nice now, but my PC is too slow for more renders :(

Technique
5th November 2009, 21:24
Thanks for posting that Juls. I've been wanted to post about this ever since I read the new release thread - I've just been really busy. This for me is also the most exciting news in years. Devs thank you very much - this is awesome.

I haven't actually tried it out yet since I'm still in the process of moving and I'm lacking the essentials... like a desk. I'm a little confused about how it actually works. Juls can you provide more info?

A while ago I was really interested in this technique:

http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/domemirror/ (http://local.wasp.uwa.edu.au/%7Epbourke/miscellaneous/domemirror/)

...in which multiple views are rendered, combined and distorted in software and then projected across a spherical mirror onto a dome giving an undistorted image for the person in the center of the dome. Pros are only one projector is necessary, but cons are you need a dome ($$$) and a first surface spherical mirror (~$200).

I actually started trying to implement this - I even built a dome out of the cheapest material I could get... :) (See picture). But unfortunately it was too large to fit in my apartment and my parents did not exactly like a dome taking up their entire living room. That and, after I constructed it I realized I should have made a "paneled" dome.

Anyway, I thought LFS would simply offer the ability to output different views to different monitors but it looks like it's more advanced than this. How exactly do you take the cylindrical projection and project it undistorted? What if you have a half-dome (rear or front projection)? Can it also render any viewport? Like 60 degree angle above the driver?

Thanks! :)

Juls
6th November 2009, 09:54
Hi Technique,

Very nice dome!

If you ask LFS to render the view using for example 11 viewports, what you get is exactly what you need for a cylindrical screen (not a dome).

For example, 9 viewports, center screen 30 degrees FOV, all other viewports 30 degrees....it gives you a 270 degrees view.

If you split this view on three projectors using triplehead2go or ATI eyefinity, and project these three views on a 270 degrees cylindrical, 90 degrees for each, it should be ok! (the only problem may be picture blurring)

Even better, if you use only three viewports, 90 degrees for each, you get three views ready to be projected on three flat walls of a room, or for three large screens placed at 90 degrees from each other and surrounding you!

With 4 viewports you can cover 360 degrees with 4 projectors on flat walls or 4 monitors all around you!

Crashgate3
6th November 2009, 11:59
How exactly do you take the cylindrical projection and project it undistorted?

It is distorted, it just uses several renders stitched together to produce the effect (11 is the maxiumum at the moment IIRC) so you don't notice the transitions as much when it's used on a single screen.

Juls
7th November 2009, 10:03
Barely distorted if you use enough viewport. This is a pretty good approximation of perfect cylindrical perspective.

Distorsion for a single viewport showing X degrees horizontal FOV can be estimated:
d=tan(0.5*X)/(0.5*X) -1
This figure is the difference between what the viewport shows and perfect cylindrical perspective.

Default view in LFS shows 90 degrees horizontal FOV. In that case d=27%.

360 degrees view with 11 viewports gives d=2.8%.

180 degrees with 11 viewports d=0.6% at this level you barely see transitions between viewports. All this for a 20% performance drop. Pretty good!

FalconXB
7th November 2009, 11:52
So how do I use multiple viewports on one monitor? I went through the options and couldn't find what I was looking for (or just did but didn't realise it).

AndRand
7th November 2009, 14:28
I tried many monitors on one screen which frankly didnt help me much as I prefer low FOV (around 80), so using 40 at centre nad 0 at side to avoid distortions (I move look with steer) for me is not any better - I loose the feel of distance. Great option to adjust view for multiple monitors set.

I just wonder why I cant use arrows to set number of monitors :shrug:

Juls
8th November 2009, 17:36
No wonder it did not work. If you set 40 degrees FOV for center monitor and angle 0 for the sides it is just like LFS before patch Z25 with 95 degrees FOV :)
Try 2 monitors on each side, and 20 degrees center monitor, 20 degrees monitor angle...and you get 100 degrees FOV with the center looking exactly the same as before when you used 80 degrees FOV. 3 monitors on each side with 14 degrees center monitor, 14 degrees side monitors gives smoother result.

To use this with one single monitor, the quickest way, in options/view:

- line multiple screen layout, set a number for left and right screens...for example 3 on each side. Now the game will stitch 7 views to build the final view.
- If your desired FOV is for example 140 degrees, set main screen FOV and screen angle to 140/7=20 degrees. That's it.


Using a 114 degrees FOV with multiple viewports gives the same in center than the default 90 degrees view, but avoids distorsion on the sides. (at least it is not anymore the same distorsion...this one , barrel distorsion, is far less annoying for precision and sense of speed).
3 screens on each side, main screen FOV=screen angle=114/7=16-17 degrees

AndRand
9th November 2009, 18:04
I use "look with steer" and it looks annoying with center screen at low FOV and big FOVs on side - thats why I ended up with 0 FOV at sides :)

BTW: Scawen, please make the arrows for number of screens clickable. This is such annoying small thing in some programs/systems when interface policy is not unified - once you need to click, another time doubleclick, another drag&drop, and anoher one type values... :wtf2:

Napalm Candy
9th November 2009, 18:56
If you ask LFS to render the view using for example 11 viewports, what you get is exactly what you need for a cylindrical screen (not a dome)

I disagree, if you test you can see that the correction it is not only in horizontal it is too on vertical. You can see it passing down a brigde in blackwood.

So you can use in a dome

Juls
9th November 2009, 19:08
If it was suitable for dome, then 360 degrees FOV would show everything in all directions. This is not the case.

I mean display is only splitted horizontally in viewports, not vertically. Vertically it is still exactly like before, not suitable for a vertically curved screen. Otherwise there would be other parameters to configure the vertical splitting of view in viewports.

cylindrical perspective shows the same kind of distorsion for flat surfaces going through the entire view...like bridge.

Here 180 degrees cylindrical (not spherical ) perspective:
http://upload.wikimedia.org/wikipedia/commons/archive/6/6b/20090515034203!Sava_Centar_-_Cylindrical_perspective.jpg

Napalm Candy
9th November 2009, 19:59
You are right it is only in horizontal I test it now:thumb: