The online racing simulator
FOV - Sense of Speed
(148 posts, started )
Quote from wtf im nameless :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.
Solution is Lens correction!!!
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
Attached images
FOV 116 without lens correction.jpg
FOV 128 with lens correction.jpg
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.
Quote from Kegetys :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
Quote from Napalm Candy :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).
Quote from Napalm Candy :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...
any chance that if you do release a new soft th version to make the distortion work on a single monitor as well?
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...
Wow, I didn´t see this thread before, but it deals exactly with the main problem LFS has IMO
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.
http://www.lfsforum.net/showthread.php?t=31026
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?
Attached images
lfs_00000011.JPG
lfs_00000010.JPG
Yes, that's really nice now, but my PC is too slow for more renders
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/~ ... 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!
Attached images
thedome.JPG
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!
Quote from Technique :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.
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!
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).
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
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
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:
Quote from Juls :
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
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/wi ... lindrical_perspective.jpg
You are right it is only in horizontal I test it now

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