The online racing simulator
TEST PATCH 0.6E5 (3D TEST 2 - no change to physics)
WARNING : THIS IS A TEST

NOTE : THIS DOES NOT CONTAIN NEW TYRE PHYSICS / VW SCIROCCO / ROCKINGHAM

PLEASE TEST BEFORE YOU POST

NO OFF-TOPIC FEATURE REQUESTS

NO UNRELATED COMMENTS


Hello Racers, here is a new TEST PATCH : 0.6E5

You can read about LFS development in the main forum :
https://www.lfsforum.net/showt ... php?p=1823294#post1823294

This test patch is fully compatible with version 0.6E

You cannot upload hotlaps made with this test patch because it is only a test patch, not an official patch.

Please keep a backup of your LFS.exe from 0.6E so you can easily go back if there are any problems.


Changes from 0.6E4 to 0.6E5 :

Improved stereoscopic 3D support, including experimental Oculus Rift support.

Three 3D modes are available :

- TV / monitor / projector
- Conventional 3D headset
- Oculus Rift

Each mode has different characteristics.

- TV / monitor / projector mode - it is important to set your horizontal screen width, measured in mm. Not the diagonal, just the horizontal measurement from one side to the other. This, in conjunction with the interpupillary distance, should set the image up properly if you set the FOV to match the true horizontal view angle between your eyes and the TV edges. The virtual eye positions are affected and the centres of the two images displayed on the screen are offset by the same distance so the horizon appears to be in the distance.

- Conventional 3D headset - also has an interpupillary distance slider but in this case it only affects the virtual eye positions. I still have not coded compensation for the use of wider FOV angles than actually available. So if you use wider FOV than the true horizontal FOV of the device, you will still see exaggerated depth.

- Oculus Rift - this will try to load a DLL and connect to your Oculus Rift and from there it will get the interpupillary distance and other values, and head tracking should work. It's not supposed to be finished but should basically work. I'd be interested in your comments about the experience and how it compares with other games.


Changes from 0.6E to 0.6E4 :

Stereoscopic 3D support :

In the View Options screen you can select 3D mode on the second line.

Various options will then be available to you :

SBS / TAB - left and right eye images are displayed side by side or top and bottom

half / full - the image is compressed to half width or not compressed

HUD adjustment : Brings the 2D elements closer - this is good for a headset because you can bring the interface as near to you as the steering wheel.

3D adjustment : Makes 3D elements further away - this is good for a TV because the sky and distant objects will appear to be behind your screen.

Notes :

TEST PATCH : THERE ARE NO EXTERNAL VIEWS OR 3D OBJECTS IN THE MENUS WHEN IN 3D MODE

SBS half is a commonly used format and should be available on many 3D TV sets. Horizontal resolution is reduced. Most active shutter displays need to use this option or TAB half. I am interested to know which looks better.

TAB half should be the best option for passive displays which use alternate lines for left and right eye. Vertical resolution is reduced compared with 2D mode but there is no additional loss of resolution on a passive display (which must reduce vertical resolution of a full height image in 3D mode).

SBS full is the closest thing to what is required for an Oculus Rift, but the necessary distortion has not been applied. There is no Oculus Rift tracking support either. You may be able to use intermediate software to use this mode on an Oculus Rift, in which case you should probably use interface scaling to reduce the height of the HUD (Options... Display... Interface).

Other changes :

Lateral and longitudinal accelerometer values now work realistically
FIX : High frequency changes in acceleration were filtered in OutSim
FIX : Helmet stayed the same after changing driver in MP replays


INSTALLATION INSTRUCTIONS :

A FULL version of LFS 0.6E must already be installed


Open the zip file and drag the specially named LFS exe file into your LFS folder.

NOTE : You can see if the patch is correctly installed when you run
the program. At the bottom of the entry screen : 0.6E5


DOWNLOAD :

TEST PATCH 0.6E5 (ZIP FILE) (if you already have 0.6E) :
www.lfs.net/file_lfs.php?name=LFS_6E5.zip (1.0 MB)

OCULUS RIFT DLL (in zip file) (save LFSOVRDLL.dll in your LFS folder) :
www.lfs.net/file_lfs.php?name=LFSORDLL_ORIGINAL.zip
I can confirm, the DLLWrapper does work.
Attached images
DLLLoadResult.jpg
The values from the OculusConfigUtility seems to be read also correctly (tested with the IPD value)
Attached images
OculusConfigUtility.jpg
Yay!

OK, so - the alternative DLL does a strange thing: When you turn your head to the side (from the in-car perspective), tilting your real head changes the pitch of your LFS head, and vice versa. Let me tell you - due to my line of work, I don't get motion sick easily, but that's enough to make you feel funny in short order.

The original DLL works fine, though.

Tracking seems fine. I didn't notice any drift, though I only went for a few minutes at a time; maybe it would be a problem during a two hour race.

One suggestion: Right now, the Rift's yaw ('direction you're looking') seems to zero itself when LFS loads (or maybe when you go from the pits into a race; I didn't test that), but *not* when you do a 'restart race'. In the absence of an obvious way to reset the Rift's view zero - I didn't look through the 'keys' section; maybe it's there? - and even when such a key is available, it might make sense to have the zero reset whenever the car resets. Presumably in those situations the user will be looking forward by default. Or he ought to be.


Comments and issues:
  • The view itself seems correct - I get the same creepy 'ZOMG those are MY ARMS!!' feeling as I do in iRacing, though the LFS driver seems to be wearing a baggier racing suit. The wheel looks correct, and depth / FOV seems correct. The eerie Rift feeling of really actually being there seriously I mean it I'm not even exaggerating man is definitely there.


  • The menus are basically unusable at the Rift devkit resolution. Hopefully not an issue for production.

    The GUI scale slider doesn't go quite small enough for me, though since the menus get even *more* unreadable, further shrinkage would currently be of limited utility. iRacing both scales the menu down and plants it 'out in space' in a fixed location, so you can make it large enough to be readable while being able to look around to see all of it. This works quite well, but the head tracking is actually so high-frequency that, combined with the big pixels, the GUI looks really jumpy. If I had my druthers - which I often don't - LFS would do something similar, except lowpass the head tracking down to 5hz or so. It would look a little rubbery, but it'd be smooth.


  • The head tracking doesn't work in chase view. It'd be nice if it was summed in there. The Rift without any tracking gets into motion sickness territory pretty rapidly if there's a full screen without any head tracking.


  • Per previous two, the lack of head tracking in fullscreen menus and such can be an issue also. More than a couple of minutes outside of a view with tracking and you start to feel a little odd; presumably some people would feel downright ill. So it's more than just a whiz-bang feature to have the menus act like a 'virtual monitor' that stays planted in space in front of you.


  • OMG, the mirrors are rendered in 2D! At least, the on-car ones; didn't check the virtual ones. Yeah, yeah, I get *why*, but it actually makes a big difference - if they're done in 3D, your eyes don't have to re-accommodate between far/near view as you switch between looking ahead and checking. And I'm still (fairly) young, and am used to screwing with my 3D vision and focus, so it'll be worse for a lot of people.


  • Presumably you know this, but the non-in-car views are broken, and instead supply a left eyeful of dark gray and a right eyeful of black. If those worked with head tracking I'd totally be joining public servers, setting myself up in the stands, and attempting to blind feed myself popcorn while watching the metal fly.
One last thing: The Rift is totally f*cking badass. It will change everything. Sell your damn kidneys and get one, all of you. My work keeps me at the absolute razor edge of simulation and visualization tech. I've seen everything - 4096x4096 pixel laser projectors, $150,000 military HMDs, video domes in facilities which confiscated my phone, and the details of which I am legally barred from discussing, you name it - and I make motion simulators for a living, including ones using big 3D-enabled screens. And there is nothing like the Rift. The Oculus guys took on an incredibly tough challenge, and delivered in spades; the setup software is intuitive and straightforward, the hardware implementation is just clever enough, and everything was clearly done with an eye (or two) to usability rather than advertising specs and glossy pictures. As an example, every other HMD I've used has been so desperate to be stylish and tiny that they've all been horribly uncomfortable. I could wear the Rift all day, plus headphones. You barely know it's on, even with glasses. Homework was done.

These guys are the real deal, gentlemen. And, having been lu... err.. fortunate enough to correspond with Palmer (the founder of Oculus), I can personally vouch for him. He's a good guy and deserves the success.

Get out your checkbooks. If you don't have the money, get a credit card. If you're not old enough to get a credit card, turn 18.

Hell yeah! This is what I was dreaming about when I was a little kid! Screw flying cars and hoverboards; we've got the Rift!
Quote from just2fast :The values from the OculusConfigUtility seems to be read also correctly (tested with the IPD value)

Thanks for confirming that.

Quote from perisoft :...
The original DLL works fine, though.
...

Thanks, I've removed the alternative DLL from the original post.

Thank you for your detailed description. I'll start looking into your suggestions today and will carry on with this for a while.

One question for you, about the replay cameras (which are currently disabled). I'm talking about the ones that follow a car round the track and all have different zoom levels and some zoom in and out while the car is moving... is that the sort of thing that would give motion sickness? Should the zoom and car tracking be disabled? Should the cameras be stopped from automatically switching from one camera to the next? Or should that whole replay mode be kept as it is in normal LFS but displayed on a virtual cinema screen somewhere out in front of you?
#6 - Be2K
iRacing is doing this too. Dont edit the Replay Mode. The Replay mode should be kept as it is in normal LFS.

All useres should know that it creates Motion sickness
#7 - Dr3dD
Please Scawen, maybe it's a good moment for allow 3-monitors in all view modes. Thanks.
Quote from Be2K :iRacing is doing this too. Dont edit the Replay Mode. The Replay mode should be kept as it is in normal LFS.

I'm not really sure what you mean. But I think you mean, it should look like normal LFS but as if you are watching it in a cinema or on a big TV, so when you turn your head, the replay screen moves one way or the other. That is my suggestion anyway. That cinema view, the virtual cinema screen, could be either 2D or 3D.

Quote from Dr3dD :Please Scawen, maybe it's a good moment for allow 3-monitors in all view modes. Thanks.

Which mode is bothering you? I seem to remember it would be quite difficult to support multiple monitors in certain views. I must say that I am not really working on multiple monitor views at the moment - only 3D on single screen views - and I think it would just confuse me to start trying to change that now.
#9 - Dr3dD
I'm talking about the "TV Camera", would be nice that view working on 3 monitors. on the other views is not really important imho
#10 - Be2K
All i can say after playing TEST PATCH 0.6E5 in the Rift for some minutes:

EVEN WITH MY CRAPPY XBOX CONTROLER, REALISM OF LFS HAS INCREASED ANOTHER 100%!!!

Thanks Scawen, great work!
First off, thanks very much for working on Rift support -I'm really looking forward to getting back into LFS in VR. I do have a problem, however, in that the headtracking isn't working for me.

I've downloaded and extracted the LFS_6E5.exe and LFSORDLL.dll files into my C:\Sims\LFS directory (which is where I have the game installed). When I run the new executable I can enable the rift 3d view in the menus and this seems to work fine but I'm not getting any headtracking at all. Is there an option in the menus I've missed to activate the tracking?

I've tried running the executable as downloaded (i.e. LFS_6E5.exe) and I've also tried renaming it to just LFS.exe (having backed up the original version) but this doesn't seem to make any difference. I've also checked that no other programs which use the Rift or any kind of headtracking are running (and I've disabled any anti-virus/spyware programs).

If I try and delete the LFSORDLL.dll file while the game is running I get a message saying that this action can't be completed because the file is open in LFS.exe (which seems to suggest the exe is at least finding the dll okay).

I've also noticed that if I launch another Rift enabled app whilst LFS is running then headtracking won't work in it either (which seems to suggest that LFS is making some kind of connection with the Rift, at least enough to block other apps from reading the tracker).

Any other suggestions would be much appreciated.
Cheers,
DD

P.S. I'm running LFS with an S2 license in Windows 7 Home Premium 64 bit with an i5 2500K with 8GB of RAM and two GTX460 (and the latest drivers).
Thank you for the test. About the tracking, I have a few comments and questions.

[ After writing the things below, I had one thought that it might be because of an LFS setting. "Look function" near the bottom of View options must be set to "axis" (the default setting). ]

- If LFS couldn't open the DLL or couldn't connect to the functions in the DLL or couldn't open the Oculus Rift, there would be a message about that. It would be a light red message in the top left corner if you start LFS in Rift mode or a dialog box when you click to select Oculus Rift as the type of device. In those cases the DLL would be closed. So this doesn't sound like what is happening to you.

- If the Rift does successfully open but without tracking, there is a light red message in the top left corner. That happens if the Oculus "GetSensor" function fails.

- Do you have the latest Rift drivers? I am using the latest version of the SDK.
Hi Scawen,
Thanks for getting back to me so quickly m8. In answer to your questions, I am using the latest Oculus SDK (v0.2.5) and the latest Rift firmware (v0.18). I'm not seeing any light red messages in the top left corner at any point and I have the Look function in view options set to "Axis" (though I've also tried the other settings for that variable with no effect).
Cheers,
DD

P.S. If I go to the control options page, under "Select function to assign axis" it says "none" for Look heading, pitch and roll. Should I be seeing something else there (like Rift heading/pitch/roll)?
OK... please could you try this simple test program (attached) which displays a lot of debug info then shows tracking info if available.

Just put the EXE and the DLL together somewhere (e.g. a new folder) run the EXE and see if the tracking works. The output should look like the screenshot posted by just2fast (above).
Attached files
DLLLoad.zip - 67.6 KB - 629 views
Quote from DickDastardly :[...]headtracking isn't working for me.

I was actually coming here to post the exact same feedback. If I delete the DLL, then I do get the message that it is missing. I tried the previous test DLL that was posted, and the one here. I also tried the previous stand-alone test executable, and verified that it is collecting the data from the rift.

As with DD, I experimented with the Axis setting, and I also tried playing around in the Controller menu where you can specify the Look Axis, but the Rift wasn't showing up on that screen either.

I'm running the latest Rift SDK and firmware, and Windows 8 64bit if that makes any difference...

Even without tracking through, I have to say that the experience is already very good. The 3D effect is great, and the HUD shrinking options work well (although I agree with the previous comments that the DK resolution makes it a little hard to do much other than driving right now).
Quote from DickDastardly :P.S. If I go to the control options page, under "Select function to assign axis" it says "none" for Look heading, pitch and roll. Should I be seeing something else there (like Rift heading/pitch/roll)?

No, nothing needs to be assigned to the axes, they are simply ignored if the Oculus Rift is tracking.

Other things that can disable the Rift :

1) InSim overriding the view
2) If a TrackIR is connected

Tracking only works in in-car views (driver or custom, not follow / chase) at the moment.
The test program seems to work fine, giving values from +-180 for yaw and roll, and +-90 for pitch:



Cheers,
DD

P.S. I do have a TrackIR, but it's not connected and I don't use InSim. I'm testing Single player in the default in car view.
Quote from Strien :and Windows 8 64bit if that makes any difference...

I see you are both using 64 bit Windows. I have no idea if that would make a difference.

Please have a go with the tiny test program...

Anyone who successfully got head tracking - which version of Windows (32 bit or 64 bit) are you using?

EDIT : I don't think it is related to the Windows version, see below
Quote from DickDastardly :P.S. I do have a TrackIR

I'm just wondering if this may be the problem.

In the code it looks like like LFS may be trying to get tracking from the TrackIR even if it is switched off. I could easily fix this bug, but to check if this is the problem, could you search for the file NPClient.dll and temporarily rename it to something else, then start LFS?

If that DLL can't be loaded then LFS will definitely not think a TrackIR is connected...
Quote from Scawen :In the code it looks like like LFS may be trying to get tracking from the TrackIR even if it is switched off. I could easily fix this bug, but to check if this is the problem, could you search for the file NPClient.dll and temporarily rename it to something else, then start LFS?

I've renamed npclient.dll and npclient64.dll in my trackir5 folder but that didn't help. (I also have Opentrack installed and renamed both identically named dlls in that folder too but again it didn't make any difference).
Cheers,
DD
I´m using Windows 7 64Bit and have no problem with headtracking.
Quote from DickDastardly :I've renamed npclient.dll and npclient64.dl

Thanks for the testing. It's reassuring that the test program works, mysterious that it's not working in LFS.

In the next version (which I'll try to release this evening) I will give the Rift Tracking priority over TrackIR just in case that being installed has some effect. Maybe I could add some extra debug messages too.

And if it doesn't work in E6, I guess you could try renaming your cfg.txt or even a clean install of LFS in a separate folder.

Quote from just2fast :I´m using Windows 7 64Bit and have no problem with headtracking.

Thanks, I'm sure now it's nothing to do with 64 bit Windows, specially as the test program works.
This thread is closed

FGED GREDG RDFGDR GSFDG