Default/With mod. Better visible in motion.

Default/With mod. Better visible in motion.

Playing some Dirt Rally 2, I was annoyed by the behaviour of the eye accomodation. The way it pulsates in brightness and doesn’t expose the scene correctly in VR, I decided to see if it would be possible to fix it.

Result is this mod, it can override the screen area used by the eye accomodation, the eye accomodation parameters like speed & range and also color toning parameters from the game. The new default parameters in the mod config make the eye accomodation changes almost invisible and also reduce the color toning and contrast for more realistic looking colors. They look good at least with the Vive Pro.

Download from here.
Read the readme for instructions how to install and configure it.

Video showing it in action, note the lack of visible brightness changes:

Yet another update for the VR shaders performance mod – which is now called just “VR shaders mod” because it does more than just performance improvements.
List of changes for this version:
– Renamed the mod to ‘DCS World VR shaders mod’
– Compatibility with DCS World version (23.5.2020)
– Removed MSAA_MASKSIZE setting as ED “cloned” it to DCS itself
– Added multi-sampled terrain shadow sampling (less aliased shadows with MSAA)
– Added alpha-to-coverage support for trees and tree flat shadows (less aliased trees with MSAA)
– Fixed ship wakes being permanently “burned in” with high water detail
– Simple transparent objects rendering setting (off by default – not well tested)
– Fixed some issues with NVG especially with NVG_GAIN_ADJUSTS_POSITION enabled

Get it from DCS forums: here.

It has new AToC and multisampled terrain texture sampling features which make shadows on terrain, trees and tree flat shadows less aliased with MSAA enabled. Comparison screenshot is here, again in motion the difference is more visible.

Yet another DCS shaders performance update is available on the DCS forums here.

Its compatible with beta and fixes a few issues that have accumulated over time. There is also a setting to keep bloom enabled, it seems to have a much smaller performance hit noways.

It also contains a new feature: Supersampling for the albedo (diffuse) textures. It is a very performance-cheap way to get improved clarity especially for the cockpit labels and stuff. So instead of having to supersample the entire rendered scene to get more sharpness, it will sample the diffuse texture multiple times.

The difference looks like this:
diffuse supersampling
Even with just 2x sampling the text labels (like “FIRE EXTGH”) are much sharper and its performance hit is very neglible, almost any GPU tha runs DCS in VR probably can do 4x without any noticeable hit. It looks even better in the headset than in the screenshot. With it its possible to turn down the pixel density quite a bit without getting a blurry cockpit, and then use the performance headroom to do 4xMSAA for smoother geometry edges.

It can be controlled with _HMD.hlsl setting ENABLE_DIFFUSE_SS, the default is 4x.

I noticed from the DCS World shaders that the game appears to be using incorrect method for sRGB gamma conversion. The game uses a simple raise to power, while the correct way is more complicated – result of using the wrong method is elevated black levels. That means that, especially when using a VR headset with an OLED screen, at night time everything looks slightly grey and not as dark and contrasted as they could.

I did a fix for this into the game’s shaders. My method uses sRGB conversion from older, deprecated w3c standard. It is not strictly correct as newer IEC 61966-2-1 standard is slightly different. But the w3c standard is easier to apply the game gamma slider setting alongside with the sRGB space conversion so I used that. In practice the difference between the two is likely unperceivable anyway.

The mod can be downloaded from here, its made for for DCS World version (it might or might not work with other versions). See the readme for install instructions.

I have only tested the mod with my VR performance mod, but hopefully it works even without it.

I made an OpenVR hook/proxy thing for Assetto Corsa that adds some extra options when running in OpenVR mode:

  • Enables the use of seat pitch adjustment from the in-game onboard settings app
  • Allows adjusting supersampling for Assetto Corsa only
  • Allow individual view pitch/roll locking, with neck length option for more natural rotation
  • Enables using a motion controller like the Vive wand to use the in-game UI
  • Allows disabling the automatic re-center at startup so the HMD position is remembered between sessions

Download version 1.0 from here. See the readme.html file for more information.

I personally like using the roll locking set to 1 and pitch locking set to 0 with neck length of 0.3. This gives me a better feel of how the car is behaving and keeping the horizon level makes it easier to look at the track, without having to look up/down on hills like with the ingame lock horizon setting.

Adjusting the seat pitch allows me to align the virtual steering wheel position with the real one and cancel out some upwards pitch I have with my simracing rig.

Here is a short video showing some features and driving with those settings:

First, the seat pitch adjustment is shown. Then I drive a bit and you can see the car roll around the view, but the view follows the uphill section at Flugplatz without having to look up. Then I use the Vive wand to use the UI, including touch pad for navigating the pit screen pages and setup tabs.

It has been developed for the HTC Vive, but it should also work with the Rift if you use it in OpenVR mode. The controller mappings with touch may not work perfectly though.

edit: I did a small fix to the zip file, previous version was of debug build that required debug runtime to load.

OBS OpenVR Input pluginI made an input plugin for Open Broadcaster Software that allows capturing video directly from OpenVR/SteamVR mirror surface.

It allows capturing either the left or right eye, in full resolution as it is rendered by the game with some cropping presets (for HTC Vive) to use on those games which mask out the invisible parts of the image such as The Lab does in the screenshot to the right.

See the OBS resources page here for more information & download, or download directly here.

A known issue is a memory leak in the OpenVR SDK that causes OBS to slowly leak memory if the plugin is active but SteamVR is not running. The leak is quite mild at some tens of kilobytes per minute so its not a too serious issue. I have reported it almost an year ago here but Valve still has not fixed it.

New config options

New camera options

Here is another update to RBRvr which should fix the latency issues with rendering introduced in v1.4. It took a long time to find a way to get it working properly, but now it should be a lot more pleasant to look at.

In addition it comes with options to disable the default camera shake in the in-car view and and to lock the camera to the horizon in either roll axis only or roll + pitch.

I did not have time to test it thoroughly so its possible there are some bugs as the RBR camera override is now done in a totally different manner.

Download from here (v1.5). Get the updated v1.6 from here.

See the readme.txt for instructions and some troubleshooting hints. In-game you can also find a quick help sheet from the desk.

Here is an update to RBRvr that fixes the random crashing issue with the Oculus Rift, the steering wheel rotation setting not working properly and the virtual VR goggles sometimes appearing when pausing/unpausing the game.

Plugin compatibility has not improved with this version since fixing the Rift issue took quite a lot of time.

Download from here (v1.4). Edit: Get updated version from here.

See the readme.txt for instructions and some troubleshooting hints. In-game you can also find a quick help sheet from the desk.

I have been having problems with floor level constantly changing on its own with the HTC Vive and nothing I try seems to fix the problem so I made a tool for quickly re-calibrating the floor from within the SteamVR dashboard. All that is required is to place one controller on the floor and clicking the floor fix button from the new dashboard app (it appears next to “Steam” and “Desktop”). See the video below.

Download the FloorFix tool from here (v1.0). Extract the zip somewhere and run ViveFloorFix.exe. If you get an error about missing msvcp140.dll then install the VS2015 runtime using the included vc_redist.x86.exe.

Update: OpenVR Advanced Settings has added a similar floor fix feature in a nicer package, you should use that instead of this. :)

edit: Note there currently seems to be a memory leak in the OpenVR SDK which can make FloorFix eat up excessive amounts of RAM over time. Restarting it every few days at least seems to be enough, I’ll make some workaround if Valve does not fix the issue in time (it is reported here)

Here’s an update to RBRift, now called RBRvr, that brings support for OpenVR. It should work at least with the HTC Vive, hopefully also with Oculus Rift although as I only have the Vive I haven’t been able to test it on the Rift.

This version also brings other improvements, including ability to drive with the Vive controllers. See the video below.

Download from here (v1.3). Edit: Get the updated version from here.

See the readme.txt for instructions and some troubleshooting hints. In-game you can also find a quick help sheet from the desk.

The default configuration has a render scale of 200%, if you are also using the SteamVR setting to increase the pixel density further you may see some performance problems. The render scale can be changed from the in-game menu or by editing the rbrvr.cfg file.

If you like it you can donate from the button on the right :)

Known issues:

  • Default camera isn’t always the correct in-car driver one, you may manually need to select the correct camera with the change camera key (default ’1′) and then save your RBR profile.
  • Codriver mode is a bit buggy (wrong cameras seen).
  • If you have TrackIR, disable it when using RBRvr (head tracking conflicts).

Flying weather has been totally awful this summer, just a week ago I had only 4½ hours of flying this year when at the same time last year I had already flown almost 30 hours. But this week I finally got two really good flights, first one just under 3 hours and the second one 5 hours 18 minutes. The 5 hour flight is required before doing any cross-country flights so I am happy I finally got it done.

Track of that flight is here, weather was mostly pretty good though big rain showers were in every direction and sometime after the 4 hour mark it got truly challenging to stay in the air. One last weak thermal (the shallow bump at the end of the track) saved it though!