Later this month, developers can start building “prototype” Quest & Rift apps with the OpenXR API instead of the Oculus API.
Just to clear up any confusion here: OpenXR is not the same thing as OpenVR. OpenVR is Valve’s API for SteamVR, entirely unrelated to OpenXR. While OpenVR works on all PC VR headsets, it doesn’t support Android headsets like Quest and due to Facebook’s policies cannot be used on Oculus Rift store apps. Valve said last year it plans to support OpenXR in SteamVR but that doesn’t appear to have happened as of yet.
The Problem Today
An API (application programming interface) allows software to interact with other software or hardware. VR developers use APIs like Facebook’s Oculus and Valve’s OpenVR to build apps. The API is often part of an SDK (software development kit), and informally these terms are often used interchangeably.
The problem with the Oculus API is that apps developed with it can only run on Oculus hardware (without hacks). In addition, for developers using a custom engine, there are actually two separate APIs between Quest and Rift.
This means that if a developer wants to support all VR headsets, they need to use multiple APIs. This can be time consuming and increase complexity.
Engines like Unity and Unreal make this easier, and both are trying to separately unify VR APIs under their own new engine subsystems, but the problem still exists.
OpenXR is an open standard for VR/AR. It was developed by a working group managed by Khronos, a non-profit industry consortium. The working group includes the major VR companies such as Facebook, Valve, Microsoft, NVIDIA, AMD, HTC, Google, Unity, and Epic.
The API allows developers to add universal VR support to their apps, so in the future any Windows OpenXR app should technically run on any PC VR headset, and any Android OpenXR app should technically run on any standalone headset.
It’s also important to note that most VR apps are built with the Unity game engine, which has not announced any plans to support OpenXR yet (Unity is a member of the consortium, though).
A few years ago, OpenXR seemed like a distant dream. But now it’s here, and soon developers will be able to develop VR apps without worrying about what hardware they’re supporting. This should shorten the time taken to develop cross platform VR apps, and may encourage developers to jump into making VR software who were originally put off by proprietary APIs.