What an amazing ride! Earlier this year, Microsoft and Oculus started shipping conformant OpenXR runtimes to all customers, with SteamVR and HTC previewing OpenXR support soon after. Since then, we’ve seen wide adoption of OpenXR across the industry: from the new RenderDragon engine in Minecraft to the WebXR implementation in Edge and Chrome – from Babylon Native to Blender 2.83.
With OpenXR, you can build engines and apps that target HoloLens 2 with the same API that you use to target PC VR headsets, including Windows Mixed Reality headsets, Oculus Rift headsets and (currently in developer preview) SteamVR headsets. OpenXR lets engines write code once that’s then portable across hardware platforms from a wide range of VR and AR vendors.
Microsoft has been working with Unity and Epic Games to ensure the future of mixed reality is open, not just for HoloLens 2, but across the full breadth of PC VR, including HP’s new Reverb G2 headset. For more information on developing for HoloLens (1st gen), see the release notes.
To learn how you can get started with OpenXR in Unity, Unreal Engine or your own engine, read on!
OpenXR in Unity
Today, the supported Unity development path for HoloLens 2, HoloLens (1st gen) and Windows Mixed Reality headsets is Unity 2019 LTS with the existing WinRT API backend. If you’re targeting the new HP Reverb G2 controller in a Unity 2019 app, see our HP Reverb G2 input docs.
Starting with Unity 2020 LTS, Unity will ship an OpenXR backend that supports HoloLens 2 and Windows Mixed Reality headsets. This includes support for the OpenXR extensions that light up the full capabilities of HoloLens 2 and Windows Mixed Reality headsets, including hand/eye tracking, spatial anchors and HP Reverb G2 controllers. A preview version of Unity’s OpenXR package will be available later this year. MRTK-Unity support for OpenXR is currently under development in the mrtk_development branch and will be available alongside that OpenXR preview package.
Starting in Unity 2021, OpenXR will then graduate to be the only supported Unity backend for targeting HoloLens 2 and Windows Mixed Reality headsets.
OpenXR in Unreal Engine
As of Unreal Engine 4.23, full support for HoloLens 2 and Windows Mixed Reality headsets are available through the Windows Mixed Reality (WinRT) plugin.
Unreal Engine 4.23 was also the first major game engine release to ship preview support for OpenXR 1.0! Now in Unreal Engine 4.26, support for HoloLens 2, Windows Mixed Reality and other desktop VR headsets will be available through Unreal Engine’s built-in OpenXR plugin. Unreal Engine 4.26 will also ship with its first set of OpenXR extension plugins enabling hand interaction and HP Reverb G2 controller support, lighting up the full feature set of HoloLens 2 and Windows Mixed Reality headsets. Unreal Engine 4.26 is available in preview today on the Epic Games Launcher, with the official release coming later this year. MRTK-Unreal support for OpenXR will be available alongside that release as well.
OpenXR in other engines
If you’re building your own DirectX engine for HoloLens 2, Windows Mixed Reality or other PC VR headsets, we recommend using the OpenXR API. HoloLens 2 and Windows Mixed Reality will continue to support apps that target our previous WinRT APIs as well, although new features may not be available in these APIs.