OpenVR
| OpenVR | |
|---|---|
| Information | |
| Type | Virtual Reality |
| Subtype | Head-mounted display, SDK |
| Developer | Valve |
| Operating System | Windows, Mac, Linux |
| Devices | Any |
| Release Date | April 30, 2015 |
| Website | https://github.com/ValveSoftware/openvr |
- See also: SteamVR
OpenVR is a Virtual Reality software development kit (SDK) and application programming interface (API) developed by Valve. It allows an application to access VR hardware from multiple vendors without requiring the application to have specific knowledge of the device it is targeting.[1][2] The same API is used as the default interface and runtime by Valve's SteamVR platform, which provides the underlying implementation that talks to the hardware.[2]
Valve released OpenVR publicly on April 30, 2015, initially to support development for the HTC Vive together with its motion controllers and the Lighthouse tracking system. It replaced the earlier steamvr.h API that had been part of the Steamworks SDK.[2] Because OpenVR sits between the application and the headset, a single OpenVR title can run on any supported device, and existing applications can run on newly released hardware without modification.[1]
Architecture
The OpenVR API is implemented as a set of C++ interface classes composed of pure virtual functions.[3] An application initializes the API by calling vr::VR_Init, which takes an application type (Scene, Overlay, Background or Utility) and, on success, returns a pointer to the main Template:Abbr interface; the application later calls vr::VR_Shutdown to release resources.[3]
The SDK abstracts several distinct parts of a VR system so that an application does not have to address each headset, tracking system or input device directly. The principal interfaces are:[3]
| Interface | Purpose |
|---|---|
| IVRSystem | Main interface for display, distortion, tracking, controller and event access. |
| IVRChaperone | Provides access to the chaperone soft and hard play-area bounds. |
| IVRCompositor | Lets an application render 3D content through the VR compositor. |
| IVROverlay | Lets an application render 2D content through the VR compositor. |
| IVRInput | Lets an application define and query bindable actions and action sets. |
| IVRRenderModels | Gives an application access to controller and device render models. |
| IVRScreenshots | Lets an application request and submit screenshots. |
Features
- Developers can create any application for OpenVR. The SDK is distributed under a licence with no content restriction or gatekeepers, and there is no certification process for OpenVR apps.[4]
- OpenVR apps are not required to be distributed on Steam. Developers can distribute their apps on any channel.[4]
- Lower barrier to entry for new hardware. Manufacturers can create hardware for OpenVR without Valve's explicit permission, and OpenVR allows existing apps to run on new hardware without modification.[4]
- OpenVR apps are future proof. The OpenVR runtime updates without any application changes, so apps do not need to be modified to support new hardware or software updates.[4]
- The OpenVR API and runtime were originally supported on Windows, Mac and Linux.[4] Valve ended SteamVR support for macOS on April 30, 2020, refocusing development on Windows and Linux, although legacy macOS builds remained available for existing users.[5]
Supported hardware
OpenVR is hardware-agnostic by design. Through the SteamVR runtime it supports headsets from multiple vendors, including the HTC Vive, the Oculus Rift, Windows Mixed Reality headsets and Valve's own Valve Index, among other SteamVR-compatible devices.[2] Vendors can add support for new headsets and controllers by supplying a SteamVR driver, after which existing OpenVR applications work with the new hardware without any application-side changes.[1]
Licence
The OpenVR SDK is open source and hosted on GitHub. It is distributed under the BSD 3-Clause ("New" or "Revised") License.[1][2]
Relationship to OpenXR
OpenXR is a royalty-free open standard for VR and AR developed by the Khronos Group with the goal of letting engines and developers target a single, non-proprietary API rather than porting an application to many vendor-specific SDKs.[6]
On June 25, 2020, Valve announced that it expected new features on SteamVR to appear "on the OpenXR side" rather than as new OpenVR APIs going forward, signalling a transition away from OpenVR as the platform's primary forward-looking API. At the same time Valve stated that OpenVR applications would continue to work not only on existing hardware but also on future headsets, so the move does not break compatibility for shipped titles.[6]
SteamVR version 1.16, released in February 2021, added full support for OpenXR 1.0, passing the OpenXR 1.0 conformance tests on Windows for Vulkan, OpenGL, Direct3D 11 and Direct3D 12.[7] SteamVR can act as an OpenXR runtime as well as an OpenVR runtime, so the same headset can run both older OpenVR titles and newer OpenXR titles.[7]
The OpenVR SDK continues to be maintained as of 2026; the GitHub repository reflects ongoing releases.[1] In practice OpenVR remains supported for existing and legacy applications while OpenXR has become the recommended target for new cross-platform VR development.[6][7]
References
- ↑ 1.0 1.1 1.2 1.3 1.4 "ValveSoftware/openvr: OpenVR SDK". Valve Corporation. https://github.com/ValveSoftware/openvr.
- ↑ 2.0 2.1 2.2 2.3 2.4 "OpenVR". https://en.wikipedia.org/wiki/OpenVR.
- ↑ 3.0 3.1 3.2 "API Documentation". Valve Corporation. https://github.com/ValveSoftware/openvr/wiki/API-Documentation.
- ↑ 4.0 4.1 4.2 4.3 4.4 "SVVR2015 - SteamVR & OpenVR Update". Silicon Valley Virtual Reality. https://www.youtube.com/watch?v=Zm2sLLn7Ijo.
- ↑ "Valve Ends SteamVR Support For macOS". 2020-04-30. https://www.uploadvr.com/steamvr-drops-mac-support/.
- ↑ 6.0 6.1 6.2 "Valve: Future SteamVR Features Will Be On 'OpenXR Side' As Valve Transitions From OpenVR". 2020-06-25. https://www.uploadvr.com/valve-openxr-transition-openvr/.
- ↑ 7.0 7.1 7.2 "SteamVR Update Brings Full Support for OpenXR 1.0, A Huge Step for the Open Standard". 2021-02-24. https://www.roadtovr.com/steamvr-update-brings-full-support-openxr-1-0/.