Virtual Reality

Can I use my VR headset in BeamNG.drive?

If your headset is compatible with PC and OpenXR, chances are it should work. For example:

  • Oculus/Meta Quest
  • Oculus/Meta Rift
  • HP Reverb G2
  • Valve Index
  • HTC Vive
  • etc

The hardware requirements are high, specially on the GPU side. We recommend 10GB of VRAM, but 8GB VRAM might work depending on maps, vehicles and settings.

IMPORTANT: VR support is currently highly experimental. For some people, it will work seamlessly out of the box. Others may suffer a rougher ride. Please keep your expectations in check while we continue fixing issues and polishing VR support.

How do I use VR?

Unbox your VR headset and configure it. This typically involves:

  1. Installing/updating any available manufacturer software and firmware.
  2. Choose a default OpenXR runtime (more information here ).
  3. Ensuring a connection to your PC is stablished and working.

If unsure how to use your VR headset with a PC, please search and read its instructions manual, or otherwise contact its manufacturer for support.

Once the headset can be used in your computer:

  1. Start BeamNG > Options > Display > VR > Toggle ON

Can I use VR controllers?

VR controllers can be used to operate triggers in vehicle, such as door handles, trailer switches, etc (other VR controller interactions, such as menus, grabbing steering wheel, etc are not supported).

If you don’t want to see the VR controllers, you can hide them in Options > Display > VR > Use VR controllers.

Tips

All headsets

  • Ensure you have installed your headset’s software and drivers (check the instructions included with your headset, or search the manufacturer’s website).

  • Ensure you have chosen a default OpenXR runtime in your computer (more information here ).

  • Third party VR / Vulkan software could negatively affect framerate, crash to desktop, lead to visual artifacts, etc. If you have issues, try disabling or uninstalling them. For example:

    • OBS recorder (it injects a Vulkan layer which can increase VRAM use)
    • OXR Toolkit (some old versions are known to crash)
    • VorpX (could result in a wrong head positioning)
    • LIV First Person Stabilizer (the image freezes when enabling VR)
    • etc.

Valve Index

  • Some people report a crash while driving after a few seconds or minutes. As a workaround while we investigate this crash, please choose Options > Graphics > Lighting > Lowest.

WMR headsets

  • Microsoft Windows Mixed Reality only supports Microsoft ‘Direct3D’ graphics. BeamNG.drive uses the cross-platform ‘Vulkan’ graphics for VR, so it’s not compatible with WMR. As a workaround, you’ll need WMR-to-Vulkan compatibility software, such as SteamVR or OpenXR-Vk-D3D12 (more information here ).

Quest headsets

  • Ensure your software is up to date. If you have issues with Link, please follow Meta’s own troubleshooting procedure .

  • You need to choose which OpenXR runtime to use by default. Some may provide large framerate improvements over others (more information here ).

  • When connected via Link cable, the right eye might stutter. As a workaround, you can use one of these workarounds for now: a) (recommended) Try a wireless connection b) Or set ASW to Off(*) c) Or set ASW to Forced(*)

(*) If you’re not sure what ASW is or how it’s changed, we recommend you don’t modify that setting.

Pico headsets

  • You need to choose which OpenXR runtime to use by default. Some may provide large framerate improvements over others (more information here ).

  • If you experience crashes or errors and VirtualDesktop is installed, try uninstalling VirtualDesktop, then uninstalling StreamingAssistant, then installing StreamingAssistant and using it.

Pimax headsets

  • You need to choose which OpenXR runtime to use by default. Some may provide large framerate improvements over others (more information here ).

  • If you experience crashes and are using a Pimax-OpenXR version older than September 2023, please update it.

Varjo headsets

  • You need to choose which OpenXR runtime to use by default. Some may provide large framerate improvements over others (more information here ).

  • If you experience crashes and are using the Varjo OpenXR runtime, try switching to SteamVR as a workaround, and disable all the SteamVR overlays.

Troubleshooting

I’m floating above or below the vehicle

Center your headset in Options > Display > VR > Center (or press ‘Ctrl-Numpad5’). Then ensure you are in ‘Driver’ camera pressing ‘C’.

If you have installed third party OpenXR layers or VR emulation software, they might be adding problematic camera offsets. We recommend you disable or uninstall the software if in doubt.

The headset screen is black

See previous section.

I can click the Options > Display > VR buttons, but the ‘Ctrl-Numpad’ keys don’t work, why?

Enable numlock in your keyboard.

Ensure the BeamNG.drive window is focused (the OpenXR runtime window might steal its focus when you first enable VR).

The sim freezes then crashes

This is a known bug.

For the time being, a possible workaround is to select Options > Graphics > Ligthing > Lowest.

I’m getting sick or headaches

This is relatively common. The amount of physical discomfort depends on the person and on how VR is being used.

Your resilience might improve over time (often called “getting your VR legs”). This can take anywhere from hours to months of regular VR use, and can range from huge improvements to no improvements at all, depending on the person.

Whatever your case is, to reduce discomfort:

  • Ensure your reach the minimum framerate of your headset (framerate tips available here ).
  • Ensure you reduce the VR latency to a minimum. A wired VR connection will typically be lower latency than a wireless VR connection. If using a wireless VR connection:
    • Ensure line-of-sight to the wireless receptor/router.
    • Remove other interfering wireless devices from the room.
    • Reduce the wireless stream settings fidelity to decrease video compression/decompression latency.
  • Avoid lateral movement where the image pans sideways, such as drifting and strafing close to objects.
  • Ensure you use the Options > Display > VR > Snap turn options. Smooth turn looks better but is often a big contributor to discomfort.
  • Stop using VR immediately when you notice the slightest symptom of discomfort. This will improve or maintain your resilience to discomfort (continuing to play would make you more and more vulnerable to discomfort in future VR sessions). You can continue using VR after you have fully recovered.

Framerate is too low, what can I do?

  • Increase the available amount of VRAM (some tips available here ). This can have a huge impact when you have been hitting the limits of your available VRAM.
  • Try reducing the graphics resolution in your headset’s software (typically located in Oculus/Meta/SteamVR/WMR/etc software settings page). Sometimes this is exposed as a 0-2x scale, or as a % percentage, with labels such as “supersampling”, or “pixels per display pixel”, etc.
  • Try reducing graphics detail ingame, in Options > Graphics (reflections are specially expensive).
  • If you are using third party VR software, please try again with them disabled or uninstalled: they might be creating conflicts leading to low framerate.
  • Use less demanding maps, less detailed vehicles and fewer vehicles.
  • If you have disabled VR reprojection, enable it back to allow doubling your framerate when needed. If you don’t know what VR reprojection is, you don’t need to do anything.

Note: if the framerate is very consistently limited to certain value, this means the VR framerate limit is being hit. This FPS limit is intentional and normal for VR applications.

Framerate is limited, is that okay?

Short answer: Yes, framerate should be limited to certain value while in VR.

Long answer: Yes, when you use VR in any software, your framerate will be intentionally limited by design. You can think of this as a different kind of “V-Sync” that is necessary for VR to work. This FPS limit is imposed by the OpenXR runtime, and VR software like BeamNG.drive cannot (and should not) disable it.

The VR framerate limit depends on both your VR headset refresh rate, and on your minimum framerate (how low your worst fps is). The average framerate plays no role here.

  • If your minimum framerate is greater than the refresh rate, then the limit will be the refresh rate:
    • For example, if you have a 90Hz headset and your minimum fps is consistently 95fps, then the limit will be 90fps.
  • If your minimum framerate is lower than the refresh rate, but higher than half the refresh rate (*), then the limit will be that half:
    • For example, if you have a 90Hz headset and your minimum fps is consistently 85fps, then the limit will be 45fps. This can happen even if your average fps is much higher.
  • If your minimum framerate is lower than half the refresh rate, the limit might get disabled:
    • For example, if you have a 90Hz headset and your minimum fps is consistently 40fps, then your framerate will probably stay unlimited at 40fps.

If you are curious as to what your framerate might be without this VR limit, you can press ctrl-f twice. The panel on the top-left of the window will display an “unmanaged” value. This is a very rough approximation, not 100% reliable, and tries to guess the framerate without fps limiting mechanisms like VR, V-Sync, FPS limiter, etc.

Or, if you are using the SteamVR runtime, you could also see the theoretical unmanaged frame period by enabling SteamVR > Settings > Advanced Settings > Developer > Show GPU Performance Graph in Headset. Frame period is the inverse of frame rate, e.g. 15ms of frame period means 1000/15ms = 66fps.

(*) When you are in the half-refresh-rate situation, VR reprojection will automatically kick in. Reprojection is what VR systems have used for the past decade to generate new frames when you cannot reach the minimum VR refresh rate. Reprojection generates new frames based on predictions, and will double the perceived framerate. For example, if you are getting 45fps and reprojection is enabled, then an additional 45 frames will be reprojected (generated), and the headset will receive 90fps total. These predicted frames may contain visual artifacts in some situations, since predictions can’t always be perfect. Reprojection is an important safety measure to avoid VR discomfort . If you disable it, you disable the ability to get that extra 2X framerate when it’s needed.

Increasing amount of available VRAM

Running out of VRAM can lead to a sudden huge loss of framerate. For example, a sudden drop from 90fps down to 5fps.

You can monitor VRAM use in Windows Task Manager > Performance > GPU (memory indicators).

To increase the available amount of VRAM in your GPU you can try:

  • Choose an OpenXR runtime that uses less VRAM (more information here ).
  • Restart BeamNG.drive after changing graphics settings. There’s a known bug where additional VRAM will be used each time you change the Lighting or Anisotropic settings.
  • Close all background programs you don’t need (browser, music player, taskbar processes…)
  • Set Options > Display > VR > Window View to ‘Empty’.
  • Reduce graphics detail settings (Lighting on Lowest will have a big impact), reduce graphics resolution, reduce physics detail (e.g. amount of traffic vehicles).
  • Use less demanding maps and less detailed vehicles.
  • At your own risk, and taking responsibility for understanding the consequences, you could try to disable 3D environments of your VR software if possible, as those can use up to several GBs of VRAM on their own. For example, disable SteamVR home , disable OculusVR home , OculusKiller , etc.

OpenXR runtime guide

In layman’s terms, OpenXR is a language (an ‘API’) used by VR software and VR hardware to communicate with each other.

BeamNG software speaks the OpenXR API when talking to your VR headset. Most VR headsets are compatible with the OpenXR API standard one way or another.

An OpenXR runtime is the software that allows communication between our sim and your VR headset.

Making an analogy, an OpenXR runtime is to OpenXR apps, what an image viewer is to image files.

There are several OpenXR runtimes:

  • Manufacturer-specific runtimes: some VR manufacturer provide their own official OpenXR runtime. This is a light and performant solution. Some examples: Oculus, VarjoOpenXR, ViveOpenXR, etc.
  • SteamVR runtime: compatible with the vast majority of VR headsets, it provides convenient additional features. In some cases, SteamVR runtime may run alongside the manufacturer’s official runtime, increasing resource use (such as higher VRAM use, and possibilty lower framerates).
  • Third party runtimes: the community of VR developers has built other OpenXR runtimes which can provide better compatibility / additional features / better performance / improved visual quality. Your mileage may vary. Some examples: VirtualDesktop-OpenXR , PimaxXR , OpenXR-Vk-D3D12 , etc.

Note: some VR headsets do not natively speak the OpenXR API. If that’s your case, check if the community of VR developers has created an unofficial third party OpenXR runtime for it.

Here’s an overview of the most common OpenXR runtimes:

( contact us for diagram corrections/feedback)

Continuing the previous analogy: just like you configure a default image viewer in your computer, you should also choose a default OpenXR runtime:

  • Oculus runtime: open the Oculus software window > Settings > General > OpenXR runtime > Set Oculus as active.
  • SteamVR runtime: open the SteamVR window > ☰ icon > Settings > OpenXR > Set SteamVR as OpenXR runtime.
  • Other runtimes: please check their documentation.

Note: higher VRAM use can have a huge negative impact in framerate (for example, dropping from perfectly playable framerates, down to 0-5fps). Keep that in mind when choosing a runtime.

I have a VR question or VR issue not listed here, where can I get help?

  • Check our Known Issues page for possible workarounds.
  • Check our Virtual Reality forum thread for assistance from us and other fellow VR players []-)
Last modified: 23/4/2024 17:05

Any further questions?

Join our discord