OpenXR 旨在标准化各种 VR / AR 平台上的设备和应用程序之间的规范。

它由 Khronos Group 制定,Khronos Group 是一个由 VR/AR 相关公司组成的组织,下面会进行详细介绍。 微软、HTC等多家公司都参与了,Valve(SteamVR)也在2021年2月支持。

以下不同硬件平台对OpenXR的支持:

VR开发面对的痛点

VR 和 AR 最近经历了热潮,随之而来的是大量硬件和软件公司开始在该领域展开努力。虽然种类繁多,但越来越多的设备(每个设备都有自己不兼容的 API)正在增加 碎片化

  1. SDK碎片化:开发成本得不偿失

    在进行VR开发的时候,开发者们要根据不同的VR设备厂商来使用不同的SDK进行应用开发。如果没有跨平台的标准,VR应用程序,游戏和引擎必须移植到每个供应商的API。

    这意味着每个VR设备只能运行已经移植到其SDK的应用程序,结果是高昂的开发成本和令人困惑的客户限制了市场的增长。

    API 碎片化导致应用程序开发人员不得不花费大量时间、金钱和资源与各种硬件集成。即使是大团队也被迫选择他们支持的平台和设备,而对于小团队来说问题更严重。

除了开发人员之外,API 碎片化给消费者带来了问题,他们需要检查自己喜欢的硬件是否与他们希望使用的应用程序兼容,并且不确定今天的软件是否与明天的硬件兼容。

因此,目前的情况看起来像这样,应用程序开发人员利用中间件,但仍然需要做大量工作才能将他们的内容带到多个平台。简而言之,碎片化减缓了 VR/AR 设备的采用,给开发人员带来了不必要的工作,并限制了新的和创新设备获得普及的能力。

OpenXR 是 Khronos公司设定的VR行业标准,希望让所有的VR厂商们可以基于此标准进行应用开发等上层逻辑处理。 VRTK是基于最开始的Oculus、Vive等厂商做的一个开发套件,目的是让开发者们可以更方便快捷的进行应用开发(OpenXR行业标准出现之前)。 Khronos公司现在要做的是建立一个OpenXR行业标准,然后再使用新的套件进行通用的应用开发。

规范开发的两个标准:OpenXR

OpenXR 工作组相信我们可以通过标准化来帮助解决这些问题。标准将允许应用程序开发人员将更多时间花在创造令人惊叹的体验上,而将更少的时间花在让体验在无数硬件组合上发挥作用上。它还将使设备供应商能够在其平台上提供更多内容,并将使其投资面向未来。

OpenXR 标准分为两部分。

应用程序接口

openXR 定义了应用程序接口, 应用程序开发人员中间件提供者 写入该接口,用于定义和组合通用的跨平台功能。

这使应用程序开发人员能够编写一次可在任何地方运行的代码,专注于对其应用程序进行创新,并且不必为各种不同的设备支持多个接口。

设备层运行时交互

OpenXR 设备层允许 VR/AR 运行时与各种设备进行交互。

如果硬件制造商想要添加对新设备的支持,他们会实现符合设备层规范的代码,并且他们的硬件将立即与为应用层编写的应用程序兼容。

这是一个强大的架构,使每个人都能够专注于对他们来说最重要的事情。

OpenXR 标准旨在实现供应商之间丰富多样的实现差异化。来自不同供应商的运行时可能在性能和功能上有所不同,但是让这些运行时实现支持相同的标准接口会为最终用户带来更多的选择。

生态图

跨平台的VR标准通过使应用程序能够在任何VR系统上运行一次,以及访问集成在VR系统中供应用程序使用的VR设备,从而消除了行业分割。

公开支持 OpenXR 的公司

  1. 微软在 HoloLens、WMR 头显均提供 OpenXR 支持;
  2. Unity 推出 OpenXR 支持预览版;
  3. Epic 宣布虚幻引擎 5 不再支持 SteamVR、Oculus 等平台,转而支持且仅支持 OpenXR 标 准;
  4. Oculus 推荐游戏引擎使用 OpenXR;
  5. 国内厂商中华为、兆芯、Pico 等也加入 OpenXR 联盟参与标准的讨论与制定工作;

Khronos 百度百科

Khronos Group 团队成立于 2000 年 1 月 由包括 3Dlabs, ATI, Discreet, Evans & Sutherland, Intel, Nvidia, SGI 和 Sun Microsystems 在内的多家国际知名多媒体行业领导者创立 致力于发展开放标准的应用程序接口 API ,以实现在多种平台和终端设备上的富媒体创作、加速和回放。

Khronos官网地址

Khronos相关标准

OpenGL OpenGL 是行业领域中最为广泛接纳的 2D/3D 图形 API, 其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。OpenGL是独立于视窗操作系统或其它操作系统的,亦是网络透明的。在包含CAD、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,OpenGL™ 帮助程序员实现在 PC、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。

OpenKODE OpenKODE 是免授权费的、跨平台的为加速富媒体和图形应用程序而联合一组本地应用程序接口 APIs 构成的全面媒体堆栈规范标准。 OpenKODE 是媒体应用移植性 API,致力于持续地提供先进的媒体性能,从而提高本机媒体应用源移植性和降低移动平台不相容性。OpenKODE 1.0 通过联合OpenGL ES 和 OpenVG Khronos APIs 以提供艺术级的矢量 2D 和 3D加速,并形成了新的OpenKODE 核心API,提供抽象的操作系统资源,从而最小化在 Linux、Brew、Symbian、Windows Mobile、WIPI 和以实时操作系统(RTOS)为基础游戏和应用程序移植时的资源变更。 OpenKODE 的后续版本将会增加 OpenSL ES 和 OpenMAX 媒体应用程序接口APIs,用以提供完全整合图形算法处理的音频/视频加速。

OpenGL ES OpenGL ES 是免授权费的,跨平台的,功能完善的2D和3D图形应用程序接口API,它针对多种嵌入式系统专门设计 - 包括控制台、移动电话、手持设备、家电设备和汽车。它由精心定义的桌面OpenGL子集组成,创造了软件与图形加速间灵活强大的底层交互接口。OpenGL ES 包含浮点运算和定点运算系统描述以及 EGL针对便携设备的本地视窗系统规范。OpenGL ES 1.X 面向功能固定的硬件所设计并提供加速支持、图形质量及性能标准。OpenGL ES 2.X 则提供包括遮盖器技术在内的全可编程3D图形算法。OpenGL ES-SC 专为有高安全性需求的特殊市场精心打造。

OpenML OpenML 是开源的、免授权费的、跨平台的编程环境,其专为捕捉、传输、处理、显示和同步数字媒体所设计 - 包括2D/3D图形和音频/视频流。OpenML 1.0 定义了专业水准取样级别流同步;用于加速视频处理的OpenGL扩展;MLdc专业显示控制应用程序接口API及ML 针对应用程序和处理硬件间非同步媒体流的架构。

OpenVG OpenVG 是针对诸如Flash和SVG的矢量图形算法库提供底层硬件加速界面的免授权费、跨平台应用程序接口API。OpenVG 现仍处于发展阶段,其初始目标主要面向需要高质量矢量图形算法加速技术的便携手持设备,用以在小屏幕设备上实现动人心弦的用户界面和文本显示效果,并支持硬件加速以在极低的处理器功率级别下实现流畅的交互性能。

OpenMAX OpenMAX 是无授权费的,跨平台的应用程序接口API,通过使媒体加速组件能够在开发、集成和编程环节中实现跨多操作系统和处理器硬件平台,提供全面的流媒体编解码器和应用程序便携化。OpenMAX API将会与处理器一同提供,以使库和编解码器开发者能够高速有效地利用新器件的完整加速潜能 - 无需担心其底层的硬件结构。

OpenSL ES OpenSL ES 是无授权费、跨平台、针对嵌入式系统精心优化的硬件音频加速API。它为嵌入式移动多媒体设备上的本地应用程序开发者提供标准化, 高性能,低响应时间的音频功能实现方法,并实现软/硬件音频性能的直接跨平台部署,降低执行难度,促进高级音频市场的发展。

COLLADA COLLADA 是面向交互式 3D 应用程序的基于 XML 的数字资产交换方案,使 3D 创作应用程序可以自由地交换数字资产而不损失信息 - 使多种DCC和3D处理软件包可以组合成强大的工具链管道。独特的交互模式提供了广泛全面的视觉编译。COLLADA FX支持使用 OpenGL ES 着色语言创作和封装着色器,以使一流的 3D 创作工具可以有效协作创建 OpenGL / OpenGL ES 应用程序和资产。

OpenGL SC 开放标准的 OpenGL SC 高度安全 Profile 被定义为满足高安全敏感性的特殊市场,如航空工业,军事,医学和汽车业应用程序,包含D0178-B认证。它简化了高度安全认证,保证可靠性,与实时系统需求相符,并便于高度安全应用程序的继承移植。

OpenXR概念

OpenXR 是一种免版税的开放标准,可提供对增强现实 (AR) 和虚拟现实 (VR)(统称为 XR)平台和设备的高性能访问。

“OpenXR 旨在简化 AR/VR 软件开发,使应用程序能够覆盖更广泛的硬件平台,而无需移植或重写其代码,随后允许支持 OpenXR 的平台供应商访问更多应用程序。随着 OpenXR 1.0 规范的发布,AR/VR 开发人员现在可以创建真正的跨平台 XR 体验。” ——布伦特·E·因斯科 (英特尔首席 XR 架构师和 OpenXR 工作组主席)

如果没有跨平台标准,VR 和 AR 应用程序和引擎必须使用每个平台的专有 API。新的输入设备需要定制的驱动程序集成。

OpenXR 提供跨平台、高性能的直接访问跨多个平台的各种 XR 设备运行时。 OpenXR 使应用程序和引擎(包括 WebXR)能够在任何公开 OpenXR API 的系统上运行。

OpenXR体系结构

行业行情

关于OpenXR更多信息的官网介绍: https://www.khronos.org/openxr/

总结

  • 总而言之, OpenXR 是VR领域的一个重要里程碑。这个API将允许游戏和其他应用程序在各种硬件平台上轻松运行,而无需专有的SDK。
  • OpenXR 的实现是非常底层的,普通的开发者们无需仔细研究底层,只需要拿到工具类进行开发调用即可。
  • 开发者们可以基于OpenXR上层继续进行便捷的应用开发,但这同样需要一个类似VRTK的开发套件来进行。
  • VR/AR厂商们可以将自己原有的SDK向 OpenXR改造靠拢,以实现一个多平台互通的桥梁。
  • 关于OpenXR上层的开发套件目前还没找到很合适的,如果有好用的开发套件也欢迎评论区提出呀~