OpenXR for Snapdragon Spaces
What is OpenXR?
OpenXR is an industry-wide standard for VR & AR. Just as there are graphic APIs (e.g. OpenGL, OpenGL-ES, or Vulkan) to create to unified graphics standards, OpenXR is a standard that allows content developers to target AR or VR. The Khronos Group maintains OpenXR along with the considerable efforts of OpenXR's many members. OpenXR APIs are gaining support on many available and upcoming XR devices, working to make application development easier and more consistent using consolidated, open APIs.
The OpenXR API provides the core pose prediction, frame timing, and spatial input functionality needed to build an engine that can target both holographic and immersive devices. If you wish to learn more about the OpenXR API, check out the Khronos Groups’ OpenXR, the OpenXR specification, the API reference, or the quick reference guide.
Is OpenXR a new development platform?
OpenXR is not a platform or engine for mixed reality. Instead OpenXR consists of standardized APIs to enable game engines like Unity, Unreal, etc. to produce portable code which access the native hardware platform’s XR features. For more on OpenXR development through game engines, check out the Unity OpenXR plugin and Epic OpenXR plug-in as well.
Why OpenXR?
Abstracted APIs like OpenGL and OpenXR allow you to target the API, while the hardware vendor supplies the wrapper around unique hardware interfaces. Focus on developing content vs worrying about hardware compatibility. Standards like OpenXR are designed with stability and ongoing support in mind, a benefit of open standards. This means newer hardware should continue to support these APIs over time.
Can new features be added to OpenXR?
OpenXR supports extensions above the core API, you can query for these features which are optionally supported by hardware platforms. For example, hand-tracking is an extension feature that not all XR headsets may initially support. To enable these extension features, an application can check for hardware support at run-time. Some of the current types of OpenXR extensions include:
- Hand tracking
- Eye tracking
- Hand gestures
- Controller support
- Debug overlays
- Record/playback hooks
How does Snapdragon Spaces leverage OpenXR?
Snapdragon Spaces provides the Snapdragon Spaces Services application, which is an OpenXR compliant runtime, and various OpenXR extensions with sample applications to show usage. To get started visit the Snapdragon Spaces Developer portal.