大多数 VR 游戏都是使用 Unity 和 Unreal 游戏引擎制作的。 Unreal 今年增加了对 OpenXR 的支持,Unity 计划明年也这样做。 本周早些时候,Facebook 在 Unity 与 Unreal 的集成中添加了一个名为 Phase Sync 的延迟减少选项。 其他引擎无法通过 Oculus SDK 获得相同的功能。 据脸书称:
相位同步将是我们 OpenXR 实现中默认的 VR 时序管理方法。 现在我们已经推出了官方 OpenXR 支持,我们鼓励本地开发人员切换并测试该功能。
这标志着 OpenXR 上第一个可用的 Oculus 功能开发学习,但不是原生 SDK。 在 Twitter 上,一位 Facebook 工程师告诉虚拟桌面开发人员 Guy Godin,OpenXR 是“未来”,如果更多功能仅限 OpenXR,请不要感到惊讶。
Valve 在 6 月份也发布了同样的公告,微软也在 10 月份效仿。
Facebook 早在 7 月份就开始接受 OpenXR 提交到其 Oculus 商店。 现在看来,它打算将其设为默认值。 目前没有计划弃用现有的 Oculus SDK。
什么是 OpenXR?
API(应用程序编程接口)允许软件与其他软件或硬件交互。 VR 开发人员使用 Facebook 的 Oculus 和 Valve 的 OpenVR 等 API 来构建应用程序 - API 是 SDK(软件开发工具包)的一部分,非正式地这些术语通常可以互换使用。
Oculus API 的问题在于游戏引擎中的api与虚拟现实系统3D素材,用它开发的应用程序只能在 Oculus 硬件上运行——尽管黑客可以让该软件在其他系统上运行。 此外,对于使用自定义引擎的开发人员来说,Quest 和 Rift 之间实际上有两个独立的 API。 这意味着如果开发人员想要支持所有 VR 耳机,他们需要使用多个 API。 这可能需要时间并增加复杂性。
OpenXR 是 VR/AR 的开放标准。 它是由 Khronos 开发的,Khronos 是管理 OpenGL 的非盈利行业联盟。 该工作组包括 Facebook、索尼、Valve、微软、HTC、NVIDIA 和 AMD 等主要 VR 公司。
OpenXR 和 OpenVR 是不同的。 这就是 Valve 的 SteamVR API。 OpenVR 适用于所有 PC VR 耳机游戏引擎中的api与虚拟现实系统,但它不支持 Quest 等 Android 耳机,并且(由于 Facebook 的政策)在 Oculus Store 应用程序中不可用。