The online racing simulator
Which VR - HTC Vive or Oculus?
(75 posts, started )
just had a 2h session Smile
Was great to rediscover all the nostalgic tracks in VR Smile
South city was not so tight actually.
My most WTF : Those KERBS are HUGE !!!
I tried the fitler view, but even the highest latency make the camera move too much for me, so I end hup with Lock to horizon, 0 nauseous feeling now Smile

I do have a small concern, in BL, when looking a the back straight, there's a lot of aliasing with the shadow. in iRacing and AC. those are not existant because I cramp up the super sampling OR ad FS AA.

I couldnt find the option in LFS, appart from that, that was great to drive in LF again after ALL those years.

( AI are super aggresive, Online server are just uninteresting cruise stuff though )
If using the rift use the oculus debug tool and set the pixels per display override to 2.0 to see if that helps
I have an WMR Samsung Odyssey, I already have the super sampling set in Steam Open VR, it works for iRacing and AC, but doesn't seems to be in LFS, OR, I also have AA on in iRacing and AC, and I didnt find the option in LFS.
Hi Magic, thanks for the feedback and the suggestion about the filtered view which some people like, although it's a bit different from yours.

About antialiasing, multisampling is switched on in VR mode, but there's no option.

About supersampling, I can see these values "allowSupersampleFiltering" and "supersampleScale" in openvr.h but I can't find any documentation on how to use them.

If it's about using an extra large render target texture (even more massive than the already extremely massive one) I've never understood the reason to use an oversize render target. Using the recommended values from the drivers, the render target pixel size at the centre matches the screen pixel size. Unfortunately, because of the way VR lenses work, as you move out from the centre the render target pixels become more and more frequent per output pixel (in other words, anywhere out from the centre, it would be ideal to have a *lower* resolution render target, not higher). Why I say 'unfortunately': There is a higher pixel density in the peripheral vision where you need it least which is a performance hit. The best results from texture mapping in general are when the texture map pixels are about the same size as the output pixels, so I can't understand the need to deliberately increase the source pixel density which should just make the output image worse.
Hey Scawen Smile

From several reading, super sampling is rendering at higher resolution then down sampling the 2D image using some "algorithm" giving better results than AA.

Especially for things like shadow and lines on the road, when view is close to the road.. mostly. I think otherwise left and right eyes have different pixels filtering with traditional AA, then it make weird visual effect, like a shimmering.

With supersampling it seems to fix that.

In Assetto Corsa, you can change it in the game with their "App" system, I set up it to 1.5 I think.

By default I have 1.5 in Steam Open VR ( for iRacing ).

And yes it's create a huge back buffer, When I'll be home I can give you the resolution if you want, for my setup ( RTX 2080 Ti Watercooled ).

With the default option, the resolution take account of you graphics card performance ( I don't know how though ).

EDIT : the shimmering appears in the center of the view .

I definitely can understand the use of true supersampling instead of multisampling. Rendering, for example, a double width and double height render target then blending every 4 pixels down to a single pixel could give some good results. The only problem in that case is the huge render target before the downsampling.

It's something I could try in LFS. But is it the best approach to do such 'brute force' supersampling within the LFS code, or is there some clever supersampling inside the OpenVR system that we can take advantage of? I can't seem to find any documentation.
Honnestly I have no idea, but it seems that some hardware acceleration can be used in some graphic cards, So most game I know just use the VR API I think.
Again, I'm not sure, last 4 years I used only Unreal and Unity, so I don't have knowledge how it's down at lower level.

As you can see, with 1.5 ( 150% ) Super sampling, in Steam Open VR, I should have a render target resolution of 2141x2699 per eye, instead of the 1440x1600 of the default per eye resolution of my Odyssey.
Now, LFS using openVR, It should actually use this no ?
But the results, in iRacing compare to LFS, make me things it's not. But can't be sure.

Did you see what size the render target is in LFS? It's on the right in view options. Or maybe you could post the ovr_deb.log you should find in your LFS folder?
3496x2179 when I should have 2141x2669 per eye.
With the lenses correction I guess the render target should be larger than 4282x2669 ?
So it seems the Steam WMR settings are not used.

But native resolution is 1440x1600 per eye. so the render target size is still off :/

What LFS does to get those numbers is simply this:

unsigned rec_w, rec_h;
ivr_system->GetRecommendedRenderTargetSize(&rec_w, &rec_h);

hmd_info.RTRecommendedW = rec_w * 2; // OpenVR recommended size is for one eye
hmd_info.RTRecommendedH = rec_h;

And that's it.

I've just messed around with these numbers and managed to find where they get this 2141x2669.

From the LFS output above (per eye) from GetRecommendedRenderTargetSize:
rec_w = 1748
rec_h = 2179

I decided to try the square root of 150% - that is 1.224745

Now, multiply the plain figures from GetRecommendedRenderTargetSize:
rec_w: 1748 * sqrt(1.5) = 2140.85
rec_h: 2179 * sqrt(1.5) = 2668.72

Maybe the VR program (LFS) is supposed to read this supersampling number, take the square root of it then multiply the width and height of the recommended render target size. Strange that I can't find documentation.
Yep, that's the correct equation it seems, I check with 190% and I get the correct resolution in Steam WMR Settings.

I know that A.C. is using it's owns scaler, So maybe that's it. LFS has to read the multiplier and used it ? That's a bit weird, especially if there's no documentation :/
Yeah it is strange. I've continued looking for documentation.

I only found this comment on reddit, which agrees with our interpretation. If you search for "supersampleScale" you can see it.

And I've found out apparently how I can read that setting from the SteamVR settings using a "GetFloat" function. Not sure if maybe it's better to just put a similar slider inside LFS and use that one instead.
Honnestly that's your choice Smile Per APPs ( so IN LFS ) is IMO a better solution, especially I think LFS can switch render target without re starting the game, opposite to A.C. :/
I did a test with a live slider to adjust this value, creating a render target as the slider moves, so I can adjust it in real time. I see what you mean about the reduction of shimmering and an increase in sharpness.

I think it should be in the next public release (or test patch) but I don't know at this point when that will be.
That something I LOVE in LFS, no need to restart anything, everything in the game , no stupid web site or UI stand alone app :/ Other dev that say "It's not possible", they are just lazy or don't use their own game engine Wink

That's great, it's not a "show stopper" so I can still enjoy LFS, but I'm sure it will be a great improvement for LFS-VR.

Other things I like in LFS-VR :
- our helmet is sync with the headseat, that's a great immersion when watching the mirrors, it seems a detail, but it's also help feeling more in the car and so is part of reducing nausea effect ( even I don't have any now with lock to horizon )

- the menu are just the best in VR in LFS.

Things that would improve immersion:
- Driver 3D model: obviously in VR now, the very low poly, kill the immersion a bit, especially the proportions are odd ( large legs and tiny arms Smile ).
- Better cockpit 3D model.

Yeah I know , both those things require lot of work, and they are just a consequence of LFS age Smile

The tire model also show its age with a direct drive wheel, it's nothing near iRacing or A.C. now. But seems enjoyable ( had to set the FF to 15% otherwise the game try to break my wrist, especially on some kerbs ).

I'll have to upgrade to S3 to try RockingHam this Weekend.
I don't know anything about the single-pass stereo technology, and I'm sure nvidia know what they're doing... but that description they give has a whiff about it.
Quote from MagicFr :iRacing just implemented this

Well, LFS not really need it, but maybe in your new 3D engine, will be more demanding Wink

Also, must be fun to implement Wink

It's a DirectX 11+ feature, so it can't be implemented into LFS. It's a nice performance optimisation for CPU and GPU though Smile

BTW Scawen, super sampling would be awesome (actually a render scale slider from 25% to 400%) to have even for non-VR use. I'm already using AMD's VSR for that but having it integrated into LFS would allow me to play in borderless fullscreen mode.
Ohhh yes... I forgot LFS is DX9, I should search the forum to find if the new 3D engine Scawen is doing is going to be DX11 .

oohh.. I think I misunderstood, graphics update, not 3D engine update Big grin
DX11 means you are no more compatible with WinXp for example ... I suppose Scawen to not be so interested Wink
win XP

DX 9

maybe there is Linux aswell ...

Which VR - HTC Vive or Oculus?
(75 posts, started )