justposted
Registered
There is a mighty long VR thread on this forum which is hard to search through, so I thought I'd start a new one. I have spent a good deal of time working out how to set things up to my liking. A lot of the info on the Oculus Debug Tool on the web seems to be outdated, which wasted a fair bit of my time running benchmarks to check the effect of changes. So I figured I would post my whole VR set-up here, in case it saves somebody some time putting it all together. My VR legs seem to be unusually steady, so I'm happy with 45FPS (even 30FPS at the start of a race at night in the rain with 20AI) whereas others demand 90FPS at all times.
I am fortunate in that I could treat myself to a 3080 this Christmas (thanks to ebay) and that has taken me from relatively low but acceptable settings with my 3060Ti, to having almost all the resolution and visual effects that I could want. Many people kill off visual effects such as rain, but I value the immersion over high framerates. The lowest settings seem to be manageable, in terms of performance hit, and the improved immersion is well worth it to me.
With all that said, here we go ...
Ryzen 3600 at stock
Runs at about 60W under all core 100% load, but rFactor only pushes it to about 30%.
Although a relatively weak/cheap chip, the single core performance that rFactor relies upon seems to do the trick.
[Edit: upgraded to 5800X3D, undervolted by -20 in BIOS which keeps me under 90W at 100% load, only changed a couple of settings after this upgrade, but now get much better frame rates and eliminated stuttering]
3080 undervolted to 800mV at 1800Hz using MSI Afterburner
Loses me about 5% performance (based on Heaven benchmark) and saves about 100W of power.
Means I can run it on my 650W power supply without worrying about running it too close to the limit.
32GB RAM @ 3000Hz
Had to make a change in my BIOS to make it run at this speed, as I found it was running at more like 2000Hz originally
Quest 2 (via Oculus app: Devices/Quest/Graphics Preferences)
90Hz
I typically hit >50Hz, so this way it puts out a consistent 45Hz, or 90Hz via asynchronous spacewarp (ASW), which I am comfortable with.
Resolution: max (5408 x 2736 = 1.7x)
Resolution is key to a nice image and I would rather drop visual effects than resolution.
Router
I have a FRITZ!Box, which came from my ISP, about 1m away from my Quest 2 when I'm driving. It is not wifi 6. The 5GHz band is exclusively for the Quest, but the whole household uses the 2.4GHz band while I'm playing. If I even let my phone connect to the 5GHz band, with no activity on the phone (that I'm doing on purpose, at least), then my VR experience is wrecked. But if nothing else is connected, I get an image and connection stability that is about as good as with a cable connection. I find the cable an additional annoyance that I could do without, so wireless is how I race.
Oculus Debug Tool
Pixels per display: 0 (let the Oculus app set the resolution)
FOV Tangent Multiplier: 0.8 / 0.8 (must be applied before launching Air Link; even with max physical FOV, which I achieve by not using the facial inteface at all, I can't see the missing parts of the image, so this saves significant rendering area with no effect on my experience)
ASW: auto (sticks the framerate to 45 or 90 FPS)
Distortion curvature: high (should make it lower res outside the central area, but I can't detect any reduction in quality)
Encode resolution width: 0 (let the Oculus app set the resolution)
Encode dynamic bitrate: enabled (it typically puts out 200-250 Mbps over AirLink, or 250 over cable, and I can't detect any difference from about 150 Mbps)
Encode bitrate: 0 (let the dynamic bitrate control this)
Link sharpening: enabled (improves the image at no cost)
Mobile ASW: enabled - framerate insurance (ASW carried out on the headset when there is an issue with network so your PC can't do the ASW calculations)
Visible HUD: performance (for checking performance, obviously)
Performance HUD: Oculus Link (for checking bitrate, which is a test on the cable or airlink connection and shows what the dynamic bitrate setting is doing)
Performance HUD: app render timing (for checking CPU/GPU frame times and app FPS; I always get CPU frametimes slightly faster than GPU with 20 AI drivers, so am pretty well balanced with a mild GPU bottleneck, which is what I want)
rF2 settings widget with the following settings:
- Road reflection: ultra (I like pretty reflections and the performance hit is bearable)
- Circuit, Opponent, Texture: high
- Player: full (pushed up from high when I upgraded to 5800X3D)
- Special effects, shadows: medium
- Soft particles, rain, environment, post effects: low
- Shadow blur: optimal
- Visible vehicles: 12 (can push up to 20 due to 5800X3D, but FPS starts to suffer after that)
- Anti-aliasing: 8xMSAA (4x is okay, but I find 8x kills a lot of shimmering on fences and things)
I also use this widget to run benchmarks (with ASW turned off, so the FPS is reported correctly) to test settings. It is somewhat vulnerable to how the AI races pan out, but it does the job okay for my purposes. Very handy widget.
OpenXR / Open Composite
copy the 64 bit DLL from [edit: the version on the website stop rF2 from loading, so use the version attached to this post and rename it as openvr_api.dll] here and put it in the ...\steamapps\common\rFactor 2\Bin64 folder:
https://gitlab.com/znixian/OpenOVR/-/tree/openxr#downloading-and-installation
Runs rFactor using Oculus rather than SteamVR, which gives me a significant performance boost (like 30%). You still 'launch in SteamVR mode', but it actually uses OpenXR mode.
HUD
VRHUD_J_Roguez_6.rfcmp
Thanks to @juanchioooo for this one. Look later in this thread for the latest version and copy it to your ...\steamapps\common\rFactor 2\Packages folder, then install it in game via Content/Local and make it active via Settings/Graphics/HUD from the main menu. It isn't beautiful, but it gives better access to the key information than any other HUD I've found.
resolution: 1920x1080
The resolution set in rF2 graphics config (launch option, or set via Video Setup button at the top right in the rF2 settings widget) changes how large the menus are and how the HUD fills your view. Setting to 1280x720 makes everything a bit tighter, but for me it interferes too much with my view and is immersion breaking. 1920x1080 means you have to move your head to see your pit settings, for example, but keeps it out of the way when you are just driving.
BAT file (attached)
When I pick up my headset to race, I need to open a bunch of things. So I have a bat file that launches it all with one click. It includes a reminder to change my sound device to headphones (Oculus), which I do via SoundSwitch, as otherwise CrewChief and rF2 will stick with my speakers (default sound device). It also opens a text file listing the different wheel rotation settings for each sim on my R9. Then it kills some unnecessary processes, like OneDrive, to prevent interference when I'm racing. To use it, edit the file paths and change the file extension to BAT.
I hope that helps somebody. I am happy to try and answer questions or take advice on how to improve my settings.
I am fortunate in that I could treat myself to a 3080 this Christmas (thanks to ebay) and that has taken me from relatively low but acceptable settings with my 3060Ti, to having almost all the resolution and visual effects that I could want. Many people kill off visual effects such as rain, but I value the immersion over high framerates. The lowest settings seem to be manageable, in terms of performance hit, and the improved immersion is well worth it to me.
With all that said, here we go ...
Ryzen 3600 at stock
Runs at about 60W under all core 100% load, but rFactor only pushes it to about 30%.
Although a relatively weak/cheap chip, the single core performance that rFactor relies upon seems to do the trick.
[Edit: upgraded to 5800X3D, undervolted by -20 in BIOS which keeps me under 90W at 100% load, only changed a couple of settings after this upgrade, but now get much better frame rates and eliminated stuttering]
3080 undervolted to 800mV at 1800Hz using MSI Afterburner
Loses me about 5% performance (based on Heaven benchmark) and saves about 100W of power.
Means I can run it on my 650W power supply without worrying about running it too close to the limit.
32GB RAM @ 3000Hz
Had to make a change in my BIOS to make it run at this speed, as I found it was running at more like 2000Hz originally
Quest 2 (via Oculus app: Devices/Quest/Graphics Preferences)
90Hz
I typically hit >50Hz, so this way it puts out a consistent 45Hz, or 90Hz via asynchronous spacewarp (ASW), which I am comfortable with.
Resolution: max (5408 x 2736 = 1.7x)
Resolution is key to a nice image and I would rather drop visual effects than resolution.
Router
I have a FRITZ!Box, which came from my ISP, about 1m away from my Quest 2 when I'm driving. It is not wifi 6. The 5GHz band is exclusively for the Quest, but the whole household uses the 2.4GHz band while I'm playing. If I even let my phone connect to the 5GHz band, with no activity on the phone (that I'm doing on purpose, at least), then my VR experience is wrecked. But if nothing else is connected, I get an image and connection stability that is about as good as with a cable connection. I find the cable an additional annoyance that I could do without, so wireless is how I race.
Oculus Debug Tool
Pixels per display: 0 (let the Oculus app set the resolution)
FOV Tangent Multiplier: 0.8 / 0.8 (must be applied before launching Air Link; even with max physical FOV, which I achieve by not using the facial inteface at all, I can't see the missing parts of the image, so this saves significant rendering area with no effect on my experience)
ASW: auto (sticks the framerate to 45 or 90 FPS)
Distortion curvature: high (should make it lower res outside the central area, but I can't detect any reduction in quality)
Encode resolution width: 0 (let the Oculus app set the resolution)
Encode dynamic bitrate: enabled (it typically puts out 200-250 Mbps over AirLink, or 250 over cable, and I can't detect any difference from about 150 Mbps)
Encode bitrate: 0 (let the dynamic bitrate control this)
Link sharpening: enabled (improves the image at no cost)
Mobile ASW: enabled - framerate insurance (ASW carried out on the headset when there is an issue with network so your PC can't do the ASW calculations)
Visible HUD: performance (for checking performance, obviously)
Performance HUD: Oculus Link (for checking bitrate, which is a test on the cable or airlink connection and shows what the dynamic bitrate setting is doing)
Performance HUD: app render timing (for checking CPU/GPU frame times and app FPS; I always get CPU frametimes slightly faster than GPU with 20 AI drivers, so am pretty well balanced with a mild GPU bottleneck, which is what I want)
rF2 settings widget with the following settings:
- Road reflection: ultra (I like pretty reflections and the performance hit is bearable)
- Circuit, Opponent, Texture: high
- Player: full (pushed up from high when I upgraded to 5800X3D)
- Special effects, shadows: medium
- Soft particles, rain, environment, post effects: low
- Shadow blur: optimal
- Visible vehicles: 12 (can push up to 20 due to 5800X3D, but FPS starts to suffer after that)
- Anti-aliasing: 8xMSAA (4x is okay, but I find 8x kills a lot of shimmering on fences and things)
I also use this widget to run benchmarks (with ASW turned off, so the FPS is reported correctly) to test settings. It is somewhat vulnerable to how the AI races pan out, but it does the job okay for my purposes. Very handy widget.
OpenXR / Open Composite
copy the 64 bit DLL from [edit: the version on the website stop rF2 from loading, so use the version attached to this post and rename it as openvr_api.dll] here and put it in the ...\steamapps\common\rFactor 2\Bin64 folder:
https://gitlab.com/znixian/OpenOVR/-/tree/openxr#downloading-and-installation
Runs rFactor using Oculus rather than SteamVR, which gives me a significant performance boost (like 30%). You still 'launch in SteamVR mode', but it actually uses OpenXR mode.
HUD
VRHUD_J_Roguez_6.rfcmp
Thanks to @juanchioooo for this one. Look later in this thread for the latest version and copy it to your ...\steamapps\common\rFactor 2\Packages folder, then install it in game via Content/Local and make it active via Settings/Graphics/HUD from the main menu. It isn't beautiful, but it gives better access to the key information than any other HUD I've found.
resolution: 1920x1080
The resolution set in rF2 graphics config (launch option, or set via Video Setup button at the top right in the rF2 settings widget) changes how large the menus are and how the HUD fills your view. Setting to 1280x720 makes everything a bit tighter, but for me it interferes too much with my view and is immersion breaking. 1920x1080 means you have to move your head to see your pit settings, for example, but keeps it out of the way when you are just driving.
BAT file (attached)
When I pick up my headset to race, I need to open a bunch of things. So I have a bat file that launches it all with one click. It includes a reminder to change my sound device to headphones (Oculus), which I do via SoundSwitch, as otherwise CrewChief and rF2 will stick with my speakers (default sound device). It also opens a text file listing the different wheel rotation settings for each sim on my R9. Then it kills some unnecessary processes, like OneDrive, to prevent interference when I'm racing. To use it, edit the file paths and change the file extension to BAT.
I hope that helps somebody. I am happy to try and answer questions or take advice on how to improve my settings.
Attachments
Last edited: