Jump to content

OpenXR support for IL-2 and DCS for Windows Mixed Reality VR headsets


Gus
 Share

Recommended Posts

In advanced: I don´t to want to play the "VR-Guru", but this OpenXR mod is a really good thing for Windows Mixed Reality headsets like the Reverb G2, G1, Samsung Odyssey and probably the first generation ( 1440 x 1440 ) of VR headsets.

The point of this mod is, that DCS World and IL-2 Great Battles don´t support OpenXR natively, their VR API is natively OpenVR, which runs by SteamVR. But you could use a Windows Mixed Reality headset, like the above mentioned, through ´WindowsMixedReality for SteamVR´, which is kind of workaround made by Valve ( Steam ) in order to enable owners of WMR headsets to play OpenVR games.

The only game I know with native OpenXR support is MSFS2020. That because MSFS2020 is a Microsoft product and OpenXR as well is Microsofts API for WindowsMixedReality headsets, which were introduced by Microsoft.

In summary:

Oculus headset got the Oculus Tool as driver and frontend API for their headsets using OpenVR ( supported by DCS and IL-2)

Valve Index and Vive headsets got SteamVR as driver and frontend API using OpenVR

Pimax headset got PiTool as driver and frontend API, but using as well OpenVR to connect via SteamVR to DCS and IL-2

WMR headsets got Mixed Reality driver included in Windows but as it is natively using OpenXR it needs "WindowsMixedRealiyt for SteamVR" as a workaround to change to OpenVR API through SteamVR to connect to DCS and IL-2.  

Here are some links guiding through the installation of the OpenXR mod:

https://forum.dcs.world/topic/295123-update-155-final-openxr-guide-for-wmr-headsets/

 https://forum.il2sturmovik.com/topic/77940-il-2-with-open-xr-proof-of-concept-works-with-reverb-and-some-other-headsets-probably/

And there are a lot of YouTube videos as well about the topic.

 

What you need:

1. The modified "openvr_api.dll" <-- this file already exists in DCS World and IL-2 and should be overwritten by the modified file. The modified file communicates directly with OpenXR library within Windows ( that´s the way WMR headsets should work ) and not with OpenVR library of SteamVR.

2. OpenComposite <--I have no idea what this does, but it´s obviously needed to run everything. Please take further information of the source, where both, the modified openvr_api.dll and the OpenComposite Launcher could be donwloaded: https://gitlab.com/znixian/OpenOVR/-/tree/openxr

The guy who developed this mod and put it in gitlab is a developer for Microsoft and he´s working on VR for MSFS2020, so quite a good and trustful reputation.

3. ´OpenXR Tools for Windows Mixed Reality´ is the official Microsoft frontend API for WMR headsets: https://apps.microsoft.com/store/detail/openxr-tools-for-windows-mixed-reality/9N5CVVL23QBT?hl=en-us&gl=US it could be also downloaded via the Store App in Windows. With this tool you could adjust the renderscale ( in % ) and enable/disable Motion Reprojection.

4. OpenXR Toolkit 1.1.2   This is the companion app developed by the same guy, who brought up the modified openvr_api.dll and could be downloaded here:
https://mbucchia.github.io/OpenXR-Toolkit/

With the newest release 1.1.2 IL-2 is supported. I think this Toolkit was the original intention of MBucchia to give a set of tools to enhance the VR experience for MSFS2020, but he also came up with the modified openvr_api.dll in order to make the Toolkit work on base of OpenXR as well for DCS and now IL-2 too.

There are expalanations everywhere to be found:  https://forum.dcs.world/topic/296983-open-composite-openxr-toolkit-tuning-guide-updated-150522/

I´m only using so far the in-VR FPS counter to adjust my settings. But there´s a lot of tools to fiddle around with.

As far as I know, the quite popular Necksafer-Mod for IL-2 ( I don´t have it ) does not work anymore with the OpenXR mod, but MBucchia stated somewhere, that he wants to inckude the Necksafer-Mod into the set of tools in the OpenXR Toolkit in an upcoming release version.

I think that´s it - it´s not too complicated to install. Of the installation guides in the DCS forum, linked above, it´s absolutely sufficiemnt to only read the first post - the first post is also updated if new information comes up.

I experienced that DCS needs Motion Reprojection in the OpenXR Tools ( 3. ) activated to run smoothly, but IL-2 needs Motion Reprojection deactivated to run smoothly.

Now I´m running IL-2 with an i9 10900KF @ 5 GHz and RTX3090 constantly ( always, also with 16 planes in the sky fighting each other ) at 90FPS in VR. It´s butter smooth and impressively clear at 100% renderscale ( = approx 3100 X 3000 pixel per eye ), but so far without shadows and mirrors ( need a closer look to check what eyecandy is possible for keeping the 90FPS ).

 

Link to comment
Share on other sites

No, not with current version. As far as I´ve read, VRnecksaver is based on OpenVR ( SteamVR) not OpenXR. Maybe in the future, if the developer of the Toolkit implements a similar function on base of OpenXR.

BTW, have found a good and on-point Youtube video, as follows. He´s talking in the video about optimization through every instance of processing. From minute 27 on, he starts talking about OpenXR. 

Note: He left out point 1.) and point 2.) of my description above, just because MSFS has native OpenXR support. Point 1.) and point 2. are needed for DCS World and IL-2 to make both OpenXR supported games.

I will definitely follow this guy´s advices on undervolting CPU and GPU, when I got a moment and mood for experimenting.

 

 

Link to comment
Share on other sites

  • 3 weeks later...
7 hours ago, Snaggle said:

When able more explanation DCS...

Does the neck saver work?

Does it lock you into OpenXR only as I have other games that need OpenVR..

 

Snaggle,

I'll get answers this weekend, so far I just did the first steps to get it running without SteamVR. Setup DCS first, have not tried XRVRNeckSaver yet. Have not tried il-2 yet.

I did use OVGME creating an entry for the BIN folder only.

S!

Link to comment
Share on other sites

@Britchot

From [CPT]Crunch:

//

I'm sold, steamVR is bye bye.  The abundance of settings alone is worth the switch even if it didn't run far better, on my system any way.  No more missing connections with the G-2 cable and steamVR, no more shaky spastic menu's, no more flicker on loading either.  So it was steamVR the whole time causing wonky cable issues.  Going to take a while to get optimal lighting and color settings, but we can finally do on our screens what the monitor crowd has always been able to do with their monitor settings.  Bring a lot of color and vibrancy back into the washed out world of VR.

//

S!

Link to comment
Share on other sites

7 hours ago, Lipfert said:

@Britchot

From [CPT]Crunch:

//

I'm sold, steamVR is bye bye.  The abundance of settings alone is worth the switch even if it didn't run far better, on my system any way.  No more missing connections with the G-2 cable and steamVR, no more shaky spastic menu's, no more flicker on loading either.  So it was steamVR the whole time causing wonky cable issues.  Going to take a while to get optimal lighting and color settings, but we can finally do on our screens what the monitor crowd has always been able to do with their monitor settings.  Bring a lot of color and vibrancy back into the washed out world of VR.

//

S!

I wonder if it's the issue I had all along?  Meh, I'm sold on the Oculus mirror stabilization for when/if I stream again. 

Link to comment
Share on other sites

18 hours ago, Snaggle said:

When able more explanation DCS...

Does the neck saver work?

Does it lock you into OpenXR only as I have other games that need OpenVR..

 

Just installed the XRnecksaver and tested with IL2.

Yes, it works. Never used the Necksaver before, but it´s really comfortable to check six.

I had to uncheck ´autorotation´ and set the degree to 45 instead of 30 to make it more comfortable to me.

It´s nice, that the tool recognizes all peripheral devices ( Joysticks etc. ) so it could be easily mapped.

The button to recenter VR view in the Necksaver tool must be mapped to the same key as in IL-2.

I´ve switched back to OpenXR Toolkit 1.1.2 as it is more FPS efficient than the newer 1.1.3. Me also don´t make use of the upscaler ( NIS and the AMD upscaler ), so no explicitly need for 1.1.3. The difference in FPS loss takes effect without reprojection at 90/91 FPS. With the newer 1.1.3 I dip down to 88, 87 very often what is the noticable in small stutters. 1.1.2 could uphold 90/91 FPS much better in IL-2. With reprojection activated there shouldn´t be a difference in FPS performance noticable between the current version and the previous version of the Toolkit.

The OpenXR necksaver gave me an error message when klicking into the Option: show layer, but the OpenXR ( developer ) tool confirms the layer is active and it works without a problem in game, so I don´t worry about this one option did not work ( but this is also mentioned in the description, that this option might or might not work due to the beta state of OXR Necksaver current development tool.

Didn´t try with DCS yet, but assume it works the same as for IL-2.  

Link to comment
Share on other sites

Got OpenXR set up.   Not sure if it's a game changer for me, but it certainly is an improvement in vr graphic customization.     I'd kind of equate it to Reshade for VR.

So far I  have opted to use FSR, add contrast  and a little saturation/vibrance,  and adjust color balance to give a more pleasing result on my monitor.   The results have improved the 'washed out' effect, but the biggest improvement so far seems to be an fps boost.

Still need to see how it affects GPU/CPU temperatures, and install neck saver.

Link to comment
Share on other sites

UPDATE: Ran the new setting last night....

Still testing, but the biggest changer so far seems to be the up-scaling. I took the defaults and have since dropped it to 80%, now at 50+ FPS. Will be adjusting that as the week goes on, and adding in some of the color changes.

I will post my setting once I settle on what I like the best.

Request others do the same, to include in game setting....

Link to comment
Share on other sites

I'm going to need some help with this. I spent well over an hour last night trying to get it to work but it made fps worse so I disabled it for now and went back to Steam vr.  I'm sure I had something set wrong. More than anything I really would like that XR Necksafer to work on DCS.

Link to comment
Share on other sites

@Flyboy

Have you checked the renderscale setting in OpenXR developer tool? Could be that it is set to 100% by default. If you´ve set renderscale in SteamVR below 100% before might be a reason, why experiencing worse FPS with OpenXR.

I like, that the OXR is very handy and compact, and it could be openend and adjusted on the fly in VR. The sunglass option is cool, but not as effective against the sunglare in IL-2 as I would have expected. 

Link to comment
Share on other sites

Discovered what appear to be a big plus since switching o OXR.   Distant aircraft used to disappear when zooming in.     I went on Flugpark yesterday  and found that zooming in on small ac actually worked properly for the first time since I adopted VR.   Still very small aircraft, but at least you could still see them and they were a couple pixels bigger.

Link to comment
Share on other sites

9 hours ago, Flyboy said:

More than anything I really would like that XR Necksafer to work on DCS.

This works obviously with OpenXR, the instructions are straight forward.... One thing to get it to "kick off" in VR you have to use your center VR key once, unlike

If using SteamVR this https://gitlab.com/NobiWan/vrnecksafer is the progam you need. Again setup is very straight forward.

Link to comment
Share on other sites

1 hour ago, Jaus said:

Discovered what appear to be a big plus since switching o OXR.   Distant aircraft used to disappear when zooming in.     I went on Flugpark yesterday  and found that zooming in on small ac actually worked properly for the first time since I adopted VR.   Still very small aircraft, but at least you could still see them and they were a couple pixels bigger.

But this has not to do with OpenXR in 1st place, I would assume, but with the resolution of your headset and the resolution you´ve scaled in the API ...

Link to comment
Share on other sites

11 hours ago, Snaggle said:

This works obviously with OpenXR, the instructions are straight forward.... One thing to get it to "kick off" in VR you have to use your center VR key once, unlike

If using SteamVR this https://gitlab.com/NobiWan/vrnecksafer is the progam you need. Again setup is very straight forward.

For me the script that places Necksafer API entries into the registry via the file C:\Program Files\OpenXrApiLayer\Install-XR_APILAYER_NOVENDOR_XRNeckSafer.ps1 wouldn't work right so Necksafer wouldn't hook with IL2.  I Had to manually enter them into the registry. 

You will know if you've followed all the install steps but when you start Necksafer on the desktop and hit the button at the top =  "Show active OpenXR API Layers", XR_APILAYER_NOVENDOR_XRNeckSafer is not listed as an API Layer.  If anyone is having that problem let me know and I'll post the entry you have to make in the registry.

Link to comment
Share on other sites

Just played a bit around with the Upscaler in the Toolkit with DCS...

Man, what a difference! Everything is such crisp and clear through the ´sharpening´...incredible! I can´t believe, never made use of this option before as it is such an improvement in visual quality. The landscape is such beautiful now - you could easily spot the runway miles away from 20.000ft.

Spotting other aircrafts in the sky is very much improved. And the cockpit ´wear and tear´ is much better pronounced.

Just try the following in the OpenXR Toolkit:

Upscaler set to FSR

Size to 88% ( for example, but it´s what I´ve just set spontaneously )

Sharpening: 100% <--- THAT´S THE ONE!!!!

Through the image has become massively crisp, there are induced some tiny shimmering effects on very small thin lines here and there - nothing to bother about for me and not really recognizable as a downside, but those tiny shimmerings surely had been coverer before by a standard overall bluriness without additional sharpening in comparison.

Really recommend to try this out and make a view of your own. Easy to switch back or adjust those setting to ones likings.

Will try what the sharpening effects could do for IL-2 next ... 

 

... so, after checking the sharpening effects with IL-2, I came to conclude, that it is not so much pronounced as in DCS on the first view.
While the ground and assets look a bit less foggy, there is not so much of change visible there. But this has to do with less graphical fidelity in IL-2 of the maps like Stalingrad or Moscow ( on the other hand, this is why IL-2 perfroms much, much better in VR than DCS ). Also the wasn´t so much a change visible in the IL-2 cockpits, as those are in anyway very sharp and detailed ( using 4K textures in IL-2 ).

But where the sharpening effect shines in IL-2 is on the aircraft models. So much more detailed in external view and the view on other warbirds. Spotting is improved and identifying more easy with more sharpened and detailed aircraft models. When a swarm of P-47´s and P-51´s engange dirctly from the front and passing close with high airspeed it just felt much more realistic and faster to me as you could observe very small details on the opponents, when they are passing close. Also hunting a train on the ground, the train looks much better as it is sharper and better visible. Haven´t looked yet at the Rheinland map with a few more hills or attacking ground assets.

In DCS the effect is much more visible due to the much more detailed landscapes and cities of the Nevada map and Syria.

 

How the Upscaler in OpenXR Toolkit works 

There are three option belonging to the Upscaler:

1. Upscale to choose from ´none´, ´NIS´, ´FSR´

NIS is Nvidia developed upscale method, which works with Nvidia cards only.

FSR is AMD developed upscaler, which works with both Nvidia and AMD cards. The Internet says FSR is the much better and more performant upscaler method compared to NIS, so FSR seems to be the one method to choose from.

2. Size

With the size could be defined the image resolution which should be rendered and then upscaled from there to the target resolution.
100% size is exactly the target resolution ( in my case approx 3160 x 3060 for HP Reverb G2 set to 100% renderscale within the OpenXR developer tool ).

If set the size in the OpenXR Toolkit upscaler to 88% the GPU renders an image size of approx 2700 x 2700 and the FSR upscaler algorythms scales the set size of approx 2700 x 2700 up to 3160 x 3060. By this  the render process frees  performance, means you´ll get more FPS.  How much more  differs. on system and settings.
It is said, that the Upscaler is more efficient on mid- and low-range system and less efficient on high end systems. The purpose of the upscaler in anyway is to get more performance, while maintaining the visual quality of a high resolution image.

2.b There is also an ´Anamorphic´ option which could be set to ´on´ or ´off´. With this setting the width and heights of the image could be scaled individually. Didn´t tried that out, as I don´t see the need to use it. But it provides the possibilty to only scale the pixel count in the width or heights of the image.
Wouldn´t expect the image to be streched horizontally or vertically as anamorphic means it would be then adjusted back to the format image ( like 16:9, 4:5 or in case of the HP Reverb 1:1 defined by the main API OpenXR developer tool ). I would leave Anamorphic at ´off´ to keep the process of use easier.

3. Sharpening
That surprised a lot in DCS and improved the image crispness and clarity very much. It also cost a bit of performance, which could be balanced out by adjusting the uspcaler size as in point 2. There were several mods before for DCS like ´Reshade´ among others, which provide more sharpness in VR, but with the OpenXR toolkit it is now very easily doable with very good results in sharpness and performance. I´ve set to 100%, but could be dialed down for individual setting.  

 

I would start with the sharpening set to 100%, observing then the FPS counter, if performance got lost through the process, while getting a much, much sharper image and then get back the lost FPS by dialing down the upscaler size. Looks like these two functions work very good in combination in the OpenXR Toolkit.     

 

 

 

 

Link to comment
Share on other sites

17 hours ago, Gus said:

I would start with the sharpening set to 100%, observing then the FPS counter, if performance got lost through the process, while getting a much, much sharper image and then get back the lost FPS by dialing down the upscaler size. Looks like these two functions work very good in combination in the OpenXR Toolkit.  

👍

Link to comment
Share on other sites

Just saw an interesting tweak in this video. he is starting to talk about it from min. 1.45 on ...

The file he edited could be found in_ ../IL-2 Sturmovik Great Battles/data/startup.cfg

This ´startup´- file could be opened with an editor. Under section ( KEY = graphics ) 

line 10 and 11:

full_height = 768 ( or whatever value is there should be changed to your headsets native resolution ) --> changed to 2160 for HP Reverb ( G1 and G2 )

full width = 1280 ( or whatever value is there should be changed to your headsets native resolution ) --> changed to 2160 for HP Reverb ( G1 and G2 )

Now the image quality looks really much better, but honestly, I´ve played around yesterday very much with the sharpening, that I can´t say now if the improvements result from this or that. There´s in anyway improvements visible, what is very nice.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...