OpenXR:一种开放式免版税 API 标准,助力混合现实设备开发?

2025-10-26 22:12:05 3阅读

OpenXR 徽标

OpenXR 是来自 Khronos 的一种开放式免版税 API 标准,它对涵盖混合现实的各种设备提供引擎本机访问。

你可在桌面上的 HoloLens 2 或 Windows Mixed Reality 沉浸式 VR 头戴显示设备上使用 OpenXR 进行开发。 如果你无法访问头戴显示设备,可以改用 HoloLens 2 仿真器或 Windows Mixed Reality 模拟器。

为什么使用 OpenXR?

借助 OpenXR,可以构建适用于全息设备(如 HoloLens 2)和沉浸式 VR 设备(如用于台式电脑的 Windows Mixed Reality 头戴显示设备)的引擎。 使用 OpenXR,只需编写一次代码,即可在各种硬件平台上移植。

OpenXR API 使用加载程序将应用程序直接连接到头戴显示设备的本机平台支持。 最终用户可以获得最高性能和最低延迟,无论他们使用的是 Windows Mixed Reality 还是任何其他头戴显示设备。

什么是 OpenXR?

OpenXR API 提供核心姿势预测、帧计时和空间输入功能,你需要构建可面向全息和沉浸式设备的引擎。

若要了解 OpenXR API,请查看 OpenXR 1.0 规范、API 参考和快速参考指南。 有关详细信息,请查看 Khronos OpenXR 页面。

若要面向 HoloLens 2 的完整功能集,还可以使用跨供应商和特定于供应商的 OpenXR 扩展。这些功能支持清晰手部跟踪、眼动跟踪、空间映射和空间定位点等功能。 有关详细信息,请参阅 。

OpenXR 本身并不是一个混合现实引擎。 但是,OpenXR 使 Unity 和 Unreal 等引擎只需编写一次可移植代码,然后即可访问用户的全息设备或沉浸式设备的本机平台功能,无论该平台是由哪个供应商构建的。

蓝图

OpenXR 规范定义了一种扩展机制,使运行时实现者能够公开除基本 OpenXR 1.0 规范中定义的核心功能之外。

有三种类型的 OpenXR 扩展:

Windows Mixed Reality OpenXR 运行时支持一组 MSFT 和 EXT 扩展,这些扩展将全套 HoloLens 2 功能引入 OpenXR 应用程序:

功能区域扩展可用性

系统 + 会话

OpenXR 1.0 核心规范:

、 、、

参考空间(视图、本地、场地)

OpenXR 1.0 核心规范:

视图配置(单声道、立体声)

OpenXR 1.0 核心规范:

交换链 + 帧计时

OpenXR 1.0 核心规范:

合成层

(投影、四面体)

OpenXR 1.0 核心规范:

输入和触觉

OpenXR 1.0 核心规范:

Direct3D 11/12 集成

已发布的官方 KHR 扩展:

已发布的 MSFT 扩展:

空间定位点

已发布的 MSFT 扩展:

MSFT在运行时 108 中发布的扩展:(仅 HoloLens 2)

手动交互

(手柄/瞄准姿势、隔空敲击、抓取)

仅限 HoloLens 2

已发布的 MSFT 扩展:

手部清晰度 + 手部网格

仅限 HoloLens 2

已发布的 EXT 扩展:

已发布的 MSFT 扩展:

眼睛凝视

仅限 HoloLens 2

已发布的 EXT 扩展:

仅限 HoloLens 2

已发布的 MSFT 扩展:

运动控制器交互配置文件

(Samsung Odyssey 和 HP Reverb G2)

运行时 103 中发布的 MSFT 扩展:

运行时 104 中发布的 MSFT 扩展:

场景理解(平面、网格)

仅限 HoloLens 2

运行时 106 中发布的 MSFT 扩展:

场景标记(QR 码)

仅限 HoloLens 2

MSFT 在运行时 113 中发布的扩展:

运行时 106 中发布的 MSFT 扩展:

与其他混合现实 SDK 互操作

(例如 QR)

已发布的 MSFT 扩展:

与 UWP CoreWindow API 互操作

(例如与键盘/鼠标互操作)

运行时 103 中发布的 MSFT 扩展:

具有旧版混合现实 WinRT API 的互操作

(例如 SpatialAnchorTransferManager)

运行时 105 中发布的 MSFT 扩展:

其他跨供应商扩展

已发布的官方 KHR 扩展:

已发布的 EXT 扩展:

尽管其中一些扩展刚开始可能是特定供应商的 MSFT 扩展,但 Microsoft 和其他 OpenXR 运行时供应商正在通力合作,为其中许多功能领域设计跨供应商的 EXT 或 KHR 扩展。 跨供应商扩展使为跨运行时供应商移植的这些功能编写的代码与核心规范一样。

可在何处使用 OpenXR?

使用混合现实头戴显示设备的用户正在玩我的世界的屏幕截图

我的世界的新 RenderDragon 引擎已使用 OpenXR 构建其桌面 VR 支持!

Microsoft 一直与 Unity 和 Epic Games 合作,确保混合现实的未来是开放的,不仅适用于 HoloLens 2,而且适用于所有电脑 VR,包括 HP 新推出的 Reverb G2 头戴显示设备。 OpenXR 为当今发售的主要游戏(如我的世界和 Microsoft Flight Simulator)提供跨供应商 VR 支持。 有关 HoloLens(第一代)开发的详细信息,请参阅发行说明。

若要了解如何在 Unity、Unreal Engine 或你自己的引擎中开始使用 OpenXR,请继续阅读!

Unity 中的 OpenXR

Microsoft 目前建议用于 HoloLens 2 和 Windows Mixed Reality 开发的 Unity 配置是带有 Mixed Reality OpenXR 插件的 Unity 2020.3 LTS。 此插件包括对 OpenXR 扩展的支持,这些扩展可的完整功能,包括手/眼跟踪、空间定位点和 HP Reverb G2 控制器。 MRTK-Unity 从 开始支持 OpenXR。 有关 Unity 2020 和 OpenXR 入门的详细信息,请参阅选择 Unity 版本和 XR 插件。

如果要针对 HoloLens(第 1 代)进行开发,则需要继续使用 具有旧版 WinRT API 后端的 Unity 2019.4 LTS 。 若要在 Unity 2019 应用中使用新的 HP Reverb G2 控制器,请参阅 HP Reverb G2 输入文档。

从 Unity 2021.3 LTS 开始,OpenXR 是唯一支持面向 HoloLens 2 和 Windows 混合现实头戴显示设备的 Unity 后端。

Unreal Engine 中的 OpenXR

Unreal Engine 4.23 是第一个提供 OpenXR 1.0 预览支持的主要游戏引擎版本! 现在,在 Unreal Engine 4.26 中,通过 Unreal Engine 的内置 OpenXR 支持提供对 HoloLens 2、Windows 混合现实 和其他桌面 VR 头戴显示设备的支持。 Unreal Engine 4.26 还支持 Microsoft的 OpenXR 扩展插件。 这可实现手动交互和 HP Reverb G2 控制器支持,从而点的完整功能集。 Unreal Engine 4.26 如今可在 Epic Games Launcher 上使用,MRTK-Unreal 0.12 支持 OpenXR 项目。

使用 OpenXR 进行本机开发

你可在桌面上的 HoloLens 2 或 Windows Mixed Reality 沉浸式 VR 头戴显示设备上使用 OpenXR 进行开发。 如果你无法访问头戴显示设备,可以改用 HoloLens 2 仿真器或 Windows Mixed Reality 模拟器。

若要开始为 HoloLens 2 或 Windows Mixed Reality VR 头戴显示设备开发 OpenXR 应用程序,请参阅如何开始使用 OpenXR 开发。

有关 OpenXR API 的所有主要组件的教程,以及目前使用 OpenXR 的实际应用程序的示例,请观看这段 60 分钟的演练视频:

另请参阅

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。