OpenXR
Developer(s) | Khronos Group |
---|---|
Stable release | 1.0
/ July 29, 2019 |
Type | Virtual reality and augmented reality API |
Website | www |
OpenXR is an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices.[1] It is developed by a working group managed by the Khronos Group consortium. OpenXR was announced by the Khronos Group on February 27, 2017 during GDC 2017.[2][3][4] A provisional version of the standard was released on March 18, 2019 to enable developers and implementers to provide feedback on it.[1] On July 29, 2019, OpenXR 1.0 was released to the public by Khronos Group at SIGGRAPH 2019.[5]
Reviewers of the 0.90 provisional release considered that the aim of OpenXR was to "Solve AR/VR Fragmentation".[6]
Architecture
The standard aims to eventually provide two components: an API aimed for application developers, and a device layer aimed for the virtual reality or augmented reality hardware, presenting an abstraction interface with the device itself.[7]
The fundamental elements of this API are:
XrSpace
: a representation of the 3D spaceXrInstance
: a representation of the OpenXR runtime- System and
XrSystemId
: a representation of the devices, including the Virtual reality or Augmented reality devices and controllers XrActions
: used to handle user inputsXrSession
: represents the interaction session between the application and the user
API Layers
The 1.0 API allows with the OpenXR runtimes to support devices by implementing specific Device Layer plugins.[8][9][6]
The way a Device Layer is intended to work is by intercepting OpenXR functions from Layers above. For example a Validation Layer for a specific runtime can check that the API is used correctly before sending the API calls to the hardware.[10]
Runtimes
The currently released OpenXR Runtimes are:
- Microsoft Runtime for Windows Mixed Reality, released in July 2019[11]
- Collabora Monado Runtime for GNU/Linux, with a first release in August 2019[12]
- Oculus Runtime for Oculus Rift, with a preview release in September 2019[13]
Virtual Reality | |||||||
---|---|---|---|---|---|---|---|
AIO | Mobile | PC | Console | ||||
Company | Samsung | Valve | Microsoft | Sony | |||
OS | Android | Android | Android | Windows | Linux/Windows | Windows | PlayStation 4 |
Hardware | Oculus Go | Daydream | GearVR | Oculus Rift | SteamVR | Windows Mixed Reality | PSVR |
Augmented Reality | ||||
---|---|---|---|---|
AIO | Mobile | |||
Company | Microsoft | Magic Leap | Apple | |
OS | Windows | Android | iOS/iPadOS | Android |
Hardware | HoloLens | ML1 | ARKit | ARCore |
Roadmap
In March 2017, the Khronos Group tentatively planned to release the first version of the API in late 2018.[14] The API was released in March 2019 as a provisional release, with a plugin device interface being planned for post-1.0 releases.[8][9][15] In July 29, 2019, OpenXR 1.0 was released to the public by Khronos Group.[5]
Contributors
The following companies are listed by Khronos as public supporters of OpenXR:[9]
- AMD
- Antilatency
- ARM Holdings
- AREA
- DisplayLink
- Collabora
- Epic Games
- HP
- HTC
- Huawei Technologies
- Imagination Technologies
- Intel Corporation
- LG Electronics
- Logitech
- LunarG
- Magic Leap
- MediaTek
- Microsoft
- Mozilla
- Nokia
- Nvidia
- Oculus VR
- PicoVR
- Pluto VR
- Qualcomm
- Razer Inc.
- Samsung Electronics
- Sensics
- Sony Interactive Entertainment
- Tobii Technology
- Unity Technologies
- Valve
- Varjo
- VeriSilicon
- VIA Alliance Semiconductor Co., Ltd.[16]
- zSpace
See also
References
- ^ a b "Khronos Releases OpenXR 0.90 Provisional Specification for High-performance Access to AR and VR Platforms and Devices". Khronos.org. Khronos Group. March 19, 2020. Retrieved 19 March 2020.
- ^ "Khronos Reveals API Updates & New Working Groups at GDC". Khronos Group. 2017-02-27. Retrieved 2017-03-08.
The Khronos Virtual Reality Initiative announced in December is making rapid progress in designing an open standard for portable Virtual Reality and Augmented Reality apps and devices. Today, Khronos releases the official name of the standard: OpenXR
- ^ "Khronos Bolsters VR, AR, MR Markets With OpenXR Working Group, API Updates, More". Tom's Hardware. 2017-02-27. Retrieved 2017-03-08.
- ^ "GDC 2017: Khronos Group Unveils VR/AR Standard OpenXR". UploadVR. 2017-02-27. Retrieved 2017-03-09.
- ^ a b "Khronos Releases OpenXR 1.0 Specification Establishing a Foundation for the AR and VR Ecosystem". The Khronos Group. 2019-07-29. Retrieved 2019-07-31.
- ^ a b "OpenXR 0.90 Aims to Solve AR/VR Fragmentation". InfoQ. 2019-03-23. Retrieved 2019-06-20.
With Monday's release of the OpenXR provisional specification, Khronos' open source working group wants to create a world where developers can code their VR/AR experience for a single API, with the confidence that the resulting application will work on any OpenXR-compliant headset.
- ^ "The OpenXR Working Group is Here!". Khronos Group. 2017-02-27. Retrieved 2017-03-08.
The OpenXR standard comes in two parts. First, the Application Interface, which application developers and middleware providers write to, and which serves to define and combine common, cross-platform functionality(...)Next, the Device Layer allows VR/AR runtimes to interface with various devices
- ^ a b Larabel, Michael (18 March 2019). "OpenXR 0.90 Released For AR/VR Standard - Monado Is An Open-Source Implementation". Phoronix. Retrieved 19 March 2020.
- ^ a b c "OpenXR Overview". Khronos.org. Khronos Group. Archived from the original on 18 March 2019. Retrieved 19 March 2020.
OpenXR 1.0 is focused on enabling cross-platform applications. Optional device plugin interface will be supported post V1.0
- ^ "API Layers". Khronos.org. Khronos Group. Retrieved 2020-05-03.
OpenXR is designed to be a layered API, which means that a user or application may insert API layers between the application and the runtime implementation. These API layers provide additional functionality by intercepting OpenXR functions from the layer above and then performing different operations than would otherwise be performed without the layer. In the simplest cases, the layer simply calls the next layer down with the same arguments, but a more complex layer may implement API functionality that is not present in the layers or runtime below it.
- ^ "OpenXR now available on the Microsoft Store for Windows Mixed Reality". windowscentral.com. 2019-07-23. Retrieved 2020-01-05.
- ^ "What's new in OpenXR 1.0 & Monado?". Collabora. 2019-08-02. Retrieved 2020-01-05.
- ^ "Oculus Rift Has Hidden Preliminary Support For OpenXR". uploadvr.com. 2019-09-13. Retrieved 2020-01-05.
- ^ "A Chat With Khronos President Neil Trevett About Vulkan, OpenXR, SPIR-V In 2017". Phoronix. 2017-03-08. Retrieved 2017-03-09.
With regard to their OpenXR effort for an industry standard VR, we won't see the fruit of this work until next year. Currently, the tentative target appears to be for holiday 2018 but we may see some companies showing off efforts earlier in the calendar year
- ^ "How OpenXR could glue virtual reality's fragmenting market together". Ars Technica. 2019-03-19. Retrieved 2019-06-20.
OpenXR includes a set of abstractions that define how XR hardware platforms expose their runtime systems in a standard way so software developers can more easily make their AR/VR software run on hardware from different vendors. OpenXR covers aspects of AR/VR systems such as application lifecycle, rendering, tracking, frame timing, and input. This means for example that OpenXR could make it easier to support Samsung Gear VR, Oculus, and Steam VR devices within the same app.
- ^ "Zhaoxin". en.wikichip.org. Retrieved 2018-08-07.
Zhaoxin (Shanghai Zhaoxin Semiconductor Co., Ltd., also goes by VIA Alliance Semiconductor Co., Ltd.)