OpenXR

Due to more HMDs adapting OpenXR, we've added support for it. OpenXR is the new open standard for XR (VR/AR/MR) applications and boosts your experience, and for this release of VRED, works with VR devices, tethered or not. It also includes hand tracking to controller input simulation, so that devices using OpenXR can also use hand tracking directly in VRED.

For this first iteration of our OpenXR integration in VRED, not every OpenXR extension is implemented, yet. For example, we currently support several controllers and hand tracking, but it is not yet possible to display the controller-based blue hands, instead of the 3D controller model.

Here is a list of other features are not yet implemented:

To use OpenXR, simply select the appropriate display mode in the View settings (View > Display > OpenXR HMD).

Supported Controllers

The following controllers are supported for OpenXR use in VRED. Click the links to see the default controller bindings for each controller.

Supported Controllers For OpenXR Use
HTC Vive HTC Vive Controller
HTC Vive Cosmos HTC Vive Cosmos Controller
HP MR (HP G2+ MS Motion 2nd generation) HP MR (HP G2+ MS Motion 2nd generation) Controller
MS MR Motion (Windows Mixed Reality 1st generation) MS MR Motion (Windows Mixed Reality 1st generation) Controller
Oculus Touch Oculus Touch Controller

Selecting a Runtime

To use OpenXR, you must be using the correct runtime. If you are not, a notification is displayed.

Note:

The Windows Mixed Reality runtime is currently not supported directly by VRED. Windows Mixed Reality headsets can only be used via StreamVR.

To change the runtime, do the following:

SteamVR

  1. In SteamVR Settings, select Show Advanced Settings.
  2. Select Developer, then Set SteamVR as OpenXR Runtime.

Oculus

  1. In the Oculus App, select Settings.
  2. Select More and General.
  3. Under OpenXR-Rutime set Oculus App as active.

Varjo

  1. In Varjo Base, select System.
  2. Scroll to compatibility and activate OpenXR.

Vive

  1. In Vive Console, select Settings.
  2. Go to Advanced.
  3. Select Vive OpenXR as current OpenXR runtime.

Managing Controller Bindings for SteamVR

For OpenXR, you can now manage your controller bindings in the SteamVR settings.

  1. Go to Settings > Manage Controller Bindings > select VREDPro from the drop-down menu.
  2. Set the active controller binding to Custom.
  3. Edit the binding.
Note:

For the customization of VRED settings to work as expected, it is important that the settings in SteamVR are reset to default (Active Controller Binding = Default). Otherwise, they will overwrite the controller binding setting in VRED

For the customization in VRED controller settings to work as expected, it is important that the SteamVR settings are reset to default (Active Controller Binding = Default). Otherwise, they will overwrite the controller bindings setting in VRED.

Tip:

To use OpenXR with SteamVR, enable the OpenXR runtime in the SteamVR settings. Select Settings > Developer, then set Current OpenXR Runtime to SteamVR. It’s also possible to use the OpenXR runtime of Oculus and Varjo Base (System > Compatibility > enable: OpenXR).

OpenXR Preferences

An OpenXR tab was added with the following options to the Virtual Reality preferences for setting controller bindings. Use them to do the following:

Important:

When changing the OpenXR controller bindings, VRED will need to restart the session. Click OK in the notification to restart the session and apply the new bindings.

Note that setting the controller bindings in VRED will only suggest these mappings to the active OpenXR runtime. The runtime can still decide to ignore these suggestions. In this case, you need to configure the mapping in the corresponding runtime. See Managing Controller Bindings for SteamVR.

Now, for each action, select its controller binding from the dropdown menu next to the action. When finished, press Apply.

The controller inputs that can be selected for an action depend on the type of action. For example, an action that just activates something, such as Pointer Show, will not work with a pose input.

Note that there are two pose inputs, position and orientation, for each controller:

Configuring a Controller

To customize the configuration of your controller buttons, do the following:

  1. In the Virtual Reality preferences, select OpenXR.

  2. Select your controller from the Controller Type drop-down menu.

  3. If you want each controller to have different bindings, enable the Left = Right checkbox; otherwise, ensure it is disabled.

  4. Open the drop-down menu next to each action and select an option.

    Tip:

    Actions can be disabled, so they are not accessing. For instructions, see Disabling an Action. Controller buttons can also be disabled. For instructions, see Disabling a Controller Button.

  5. When finished, press Apply.

Setting Independent Controllers

It is possible to set the left and right controllers independent of one another when customizing your controller bindings.

To do this, in the OpenXR tab of the Virtual Reality preferences, enable the Left = Right checkbox.

Resetting Controller Bindings

To reset all controller bindings to their default values, in the OpenXR tab of the Virtual Reality preferences, press Set to Default.

Adding Additional Controllers

You can add other controllers and customize their bindings.

  1. In the Virtual Reality preferences, select OpenXR
  2. Press Add Controller, then select a controller type from the drop-down menu.
  3. Set the controller bindings.
  4. When finished, press Apply.

Disabling an Action

To disable an action, so it is not accessible in a session, do the following:

  1. In the Virtual Reality preferences, select OpenXR.
  2. Select the desired action from the list.
  3. Open the drop-down menu next to the action and select None. Now, the action cannot be triggered during a session.

In the future, to make the action accessible, select a target from its drop-down, such as Menu Click or X Touch.

Disabling a Controller Button

Any controller button can be disabled through the OpenXR tab in the Virtual Reality preferences. In the controller bindings list, ensure the button is not assigned to an action. If it is, select another option from the action's drop-down menu.

Disabling a Controller Button