使用 OpenXR 进行开发

适用的 XR 设备
本指南可帮助您为以下类型的 XR 设备打造优质体验。
扩展现实头戴设备
有线扩展现实眼镜

 

OpenXR 文字徽标

Android XR 支持 OpenXR 1.1 规范和部分供应商扩展,因此支持使用 OpenXR 构建的应用。OpenXR 是一项开放标准,可让您使用一组通用 API 在各种 XR 设备上打造沉浸式互动体验。

功能

Android XR 支持各种功能,让您能够使用 OpenXR 构建充分利用 XR 设备独特功能的应用。这些功能包括:

空间实体框架
场景理解和空间推理的统一基础。使应用能够发现、查询和跟踪环境中的物理空间实体(包括平面、3D 网格、边界框、图片、标记和注释),使用空间边界过滤发现结果,查询实体原型,创建附加到实体的空间锚点,执行空间实体和网格光线投射,以及在应用会话之间持久保存空间实体。
空间容器
一个跨平台空间窗口 API(XR_EXT_spatial_container 和 XR_EXT_spatial_container_self_rendering),使应用能够使用 OpenXR 交换链和合成层创建和渲染可显示的三维空间容器(有界和沉浸式),从而让用户能够同时体验多个空间容器。
地理空间和地理空间锚点
使应用能够使用 Google 的视觉定位服务 (VPS) 和 GPS 跟踪相对于地球的姿态,通过 Google Cloud 服务进行身份验证,并在特定的纬度、经度和海拔高度放置地理空间锚点和表面锚点。
可跟踪对象
支持平面检测,即识别和跟踪环境中的平坦表面的能力,从而能够相对于现实世界放置虚拟对象;以及锚点,即可以附加到现实世界对象或位置的虚拟参考点,以便即使在用户四处移动时,虚拟内容也能保持准确的位置和方向。
光线投射
一种用于确定虚拟光线与场景中的对象或世界网格之间的交点的技术,有助于实现选择和操纵虚拟元素等互动。
锚点持久性
能够在多个会话中保存和恢复锚点,从而在环境中持久且一致地放置虚拟内容。
对象跟踪
能够跟踪现实世界中的鼠标、键盘和其他实体对象。
图片和标记跟踪
能够检测和跟踪环境中的平面参考图片和物理标记(例如 AprilTag 和 ArUco 标记)。
二维码跟踪
能够跟踪物理环境中的二维码并解码其数据。
深度纹理
生成深度图,提供有关相机与场景中对象之间距离的信息,从而实现更逼真的遮挡和互动效果。
透传 (Passthrough)
能够将现实世界的摄像头画面与虚拟内容融合,打造出无缝结合物理世界和数字世界的混合现实体验。
全局透视调暗
允许应用设置和查询全局透视调光级别,以将虚拟内容与物理环境融合,并在调光级别发生变化时接收事件。
视口羽化
公开由运行时应用的羽化边界区域,以便应用可以在不受外围羽化影响的安全区域内布局界面元素。
场景网格化
能够获取环境的 3D 网格,可用于物理、遮挡和其他世界感知互动。
合成层直通
允许使用多边形透视合成层切口,可用于将现实世界中的对象引入场景。
面部跟踪
能够从视觉和音频数据源跟踪用户面部特征,从而创建更逼真、更具表现力的头像和虚拟角色。
眼动追踪
提供用户眼睛的位置和方向,旨在让虚拟形象的眼部姿势更加逼真。
手部追踪
能够跟踪用户手部的位置和动作。
手部网格
以低多边形网格的形式准确呈现用户的手部。针对平台到应用的交付进行了优化,确保您获得尽可能出色的性能。这是使用绑定姿势和混合权重的其他扩展程序的替代方案。
身体追踪
使用头部和手部追踪输入来估算用户的身体关节位置和比例。
光线估测
用于光照模型(包括定向、环境、球谐函数和立方体贴图光照),以匹配用户的真实光照条件。

支持的输入设备

Android XR 还支持以下输入设备。

手部互动
识别特定的手势,例如捏合、滑动和指向,使用户能够通过手势和手部动作与虚拟对象进行互动。
眼动追踪交互
能够跟踪用户的眼球运动,让用户能够通过注视来选择虚拟对象并与之互动。
6DoF 运动控制器
能够跟踪控制器的位置和移动,以及用于触发操作或应用内悬停事件的方向键和按钮绑定。
鼠标互动
用户能够通过 3D 空间中的鼠标指针与对象互动

支持的性能功能

Android XR 支持以下与性能相关的功能。

眼动追踪注视点渲染
允许应用仅在眼睛焦点处呈现更高分辨率的内容。
空间扭曲
使用速度矢量和深度纹理信息生成补间帧,从而有效提高帧速率,让用户沉浸在您的体验中
帧合成
使用应用提供的运动矢量和帧数据来合成中间帧,从而提高视觉流畅度和帧速率。
性能指标
在当前 XR 设备、合成器和 XR 应用的运行时提供 Android XR 性能指标。这包括 CPU 帧时间、GPU 帧时间、GPU 利用率、CPU 频率、每秒帧数等。

如需查看受支持功能和扩展程序的完整列表,请参阅 OpenXR 功能概览。

支持的引擎

以下引擎支持使用 Android XR 进行 OpenXR 开发。

Unity

Android XR 的 Unity 支持基于 OpenXR 构建,可让开发者使用 Unity 6 打造体验。如需详细了解如何使用 Unity 构建 XR 应用,请参阅 Unity 概览。

Unreal Engine

Unreal Engine 通过 OpenXR 标准支持 Android XR,让您可以在 Unreal Engine 5 中使用标准工具和工作流。如需详细了解如何使用 Unreal Engine 构建 XR 应用,请参阅 Unreal Engine 概览。

Godot

Godot 通过其 OpenXR 集成支持 Android XR,让您可以使用标准 Godot 工作流构建和导出适用于 Android 的 XR 应用。如需详细了解如何使用 Godot 构建 XR 应用,请参阅 Godot 概览。


OpenXR™ 和 OpenXR 徽标是 The Khronos Group Inc. 拥有的商标,并在中国、欧盟、日本和英国注册为商标。