OpenXR 1.1 将多个扩展整合到核心 OpenXR 规范中,以减少碎片并简化高级 XR 应用程序的开发。
The Khronos® Group宣布立即推出 OpenXR™ 1.1 规范。此版本改进了广泛采用的 OpenXR 开放 API 标准,用于高性能、跨平台访问 VR、AR 和混合现实 (MR)(统称为 XR 平台和设备)。 OpenXR 1.1 将广泛使用的 API 扩展整合到核心规范中以减少碎片,并添加新功能以简化更强大、更高效的 XR 应用程序的开发。
特别是,OpenXR 1.1 整合了多个供应商对关键功能的扩展,以减少跨多个平台的应用程序代码的差异,同时仍然保持灵活性和可扩展性,以在快速增长和发展的市场中促进创新。 OpenXR 工作组将专注于管理一系列扩展,以开发新功能并寻求反馈,同时主动将经过验证的技术集成到核心规范中,为开发人员提供强大的跨平台 XR 功能。
如今,大多数主要 XR 平台已转向使用 OpenXR 来公开当前和未来的设备功能。具有符合 OpenXR 实现的供应商包括 Acer、ByteDance、Canon、HTC、Magic Leap、Meta、Microsoft、Sony、XREAL、Qualcomm、Valve、Varjo 和 Collabora 的 Monado 开源运行时。 OpenXR 还受到所有主要游戏和渲染引擎的支持,包括 Autodesk VRED、Blender、Godot、NVIDIA 的 Omniverse、StereoKit、Unreal Engine 和 Unity。
OpenXR 1.1 规范可以在Khronos 网站和 GitHub OpenXR 注册表上找到。
升级至 OpenXR 1.1 核心规范的扩展
OpenXR 将以前通过扩展提供的以下功能集成到核心规范中。
- Local Floor(从 XR_EXT_local_floor 升级)提供了一个新的参考空间,具有重力对齐的世界锁定原点,用于站立比例内容,只需按一下按钮即可将其重新置于当前用户位置,无需校准过程。它还内置了估计的楼层高度。有关本地层功能及其对开发人员的价值的更多详细信息,请参阅这篇博客文章。
- 具有注视点渲染的立体(从 XR_VARJO_quad_views 升级)提供了主视图配置,可跨多个图形渲染 API 为 XR 头显实现眼动追踪注视点渲染或固定注视点渲染。它的使用特别有利于高效渲染高像素数显示器,这会给 GPU 带来沉重的负载。原始供应商扩展已在 Unity、Unreal 中原生采用,最近还被 NVIDIA Omniverse 采用。
- Grip Surface(从 XR_EXT_palm_pose 升级)提供了一个标准姿势标识符,无论手部位置是直接跟踪还是从物理控制器的位置和方向推断,该标识符都能可靠地锚定相对于用户的物理手的视觉内容。
- XrUuid(从 XR_EXT_uuid 升级)提供了一种通用数据类型来保存遵循 IETF RFC 4122的通用唯一标识符。
- xrLocateSpaces(及其相应的扩展等效项 XR_KHR_locate_spaces)提供了定位空间函数,通过使应用程序能够在填充“结构数组”(AoS) 的单个函数调用中定位空间数组,而不是通过仅限于为每个函数调用定位一个空间。
功能增强
除了整合扩展之外,OpenXR 1.1 还为开发人员提供了一系列新功能和说明,包括:
交互配置文件改进
简化动作系统编程。开发人员现在可以利用这些新标准:
- 交互配置文件路径:OpenXR 1.1 核心规范中添加了 13 个新交互配置文件,其中大部分由供应商扩展提升
- 标准标识符:包括thumb_resting_surfaces、stylus、trigger_curl和trigger_slide
- 标准组件:增加邻近度
- 输出路径:haptic_trigger 和 haptic_thumb
基础知识
OpenXR 1.1 的改进为开发人员提供了一组扩展的通用工具,用于构建增强的 XR 体验:
- XrDuration:澄清负持续时间的行为
- 事件轮询:阐明轮询的运行时和应用程序行为
- 两次调用惯用法:“缓冲区大小”的精确解释
- 新结构:添加了无 alpha 通道的颜色 (XrColor3f)、矩形棱柱 (XrExtent3Df)、定向球体 (XrSpheref)、定向盒子 (XrBoxf) 和平截头体 (XrFrustum)
新错误代码
新的错误代码 XR_ERROR_INSUFFICIENT PERMISSIONS 和 XR_ERROR_DEPENDENCY_NOT_ENABLED 有助于应用程序调试(请参阅 xr.xml)。
规范细化
OpenXR 1.1 提供了对规范意图的更清晰的解释,同时消除了歧义,并加强了规范语言的精确性。受影响的章节包括:
- 空间:OpenXR 1.1 添加了参考空间的链接,以便在文本中轻松识别它们。它还增强了运行时和应用程序开发人员的规范语言
- 渲染:XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT 已弃用,因为它未在任何运输运行时中使用
- 输入:删除了“默认绑定”的提及,并阐明了读取输入操作状态的时序要求
- 附录:更新的贡献者列表
- 版本:新章节显示版本之间的升级扩展
“OpenXR 1.1 标志着这一开放标准发展的一个重要里程碑,该标准已在整个 XR 行业得到广泛采用。OpenXR 1.0 提供了基线功能,并为通过扩展试验新功能奠定了基础。现在,工作组正在转向管理常规核心规范更新平衡了发布新功能的灵活性与整合成熟技术的需求,以减少碎片并实现真正的跨平台应用程序可移植性。通过简化开发同时促进创新,我们的目标是使开发人员能够专注于创建突破性的沉浸式跨平台应用程序。 OpenXR 1.1 体现了工作组和扩展 XR 社区的集体奉献精神,以完善和推进 OpenXR 标准,同时响应快速发展的生态系统的动态需求。” OpenXR 工作组主席 Alfredo Muniz 表示。
一致性测试套件增强功能
OpenXR 一致性测试套件 (CTS) 可在GitHub上免费获取,包括已集成到 OpenXR 1.1 核心规范中的功能的更新和增强,从而能够在所有一致性平台上实现一致的实施。开发版本已发布,并且将在第二季度提供用于一致性提交的批准版本。
OpenXR 路线图并呼吁社区反馈
OpenXR 工作组欢迎并鼓励 XR 开发者社区就其使用 OpenXR 的体验提供反馈。此类反馈对于确定 OpenXR 路线图上未来开发的优先级至关重要,以便满足开发人员不断变化的现实需求。例如,工作组目前正在探索多个功能领域,例如将手部跟踪扩展到包括全身跟踪,以及增强对空间实体的处理,以提供在高级空间计算应用程序中与用户环境进行交互的标准化方法。
请通过OpenXR Discord频道、OpenXR 论坛或GitHub 问题跟踪器提供 OpenXR 反馈。
来源:khronos