使用受支持的 OpenXR 扩展构建

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

Android XR 通过 OpenXR 1.1 规范和一长串第三方供应商扩展程序来支持 OpenXR。使用这些扩展程序可让您在为 XR 开发时获得熟悉的体验。其中一些功能需要 Android 运行时权限。如果您希望直接基于 OpenXR API 进行构建,可以在 jetpack-xr-natives 代码库中找到所需的头文件。

Android XR 供应商扩展程序

扩展程序名称

说明

空间 API 版本

XR_ANDROID_anchor_sharing_export

使用 XR_ANDROID_trackables 的应用创建的锚点与特定会话相关联,因此其他会话无法看到这些锚点。

v1

XR_ANDROID_body_tracking

使用 IK 根据头部和手部位置确定身体位置。
权限Body Tracking

v2

XR_ANDROID_composition_layer_passthrough_mesh

适用于支持多种环境混合模式的设备。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_depth_texture

此扩展程序允许应用请求头戴式设备周围真实环境的深度地图,并查询…
权限SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_device_anchor_persistence

此扩展程序允许应用保持运行状态。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_enumerate_system_extension_properties

此扩展程序允许应用确定当前系统配置支持哪些扩展程序。

v3

XR_ANDROID_eye_tracking

此扩展程序可让应用获取用户眼睛的位置和方向,以及眼动追踪状态。
权限EYE_TRACKING_FINE

v1

XR_ANDROID_face_tracking

此扩展程序可让应用获取混合形状的权重,并在 XR 体验中呈现面部表情。
权限FACE_TRACKING

v1

XR_ANDROID_face_tracking_data_source

此扩展程序可让应用从多个数据源获取面部追踪数据。
权限FACE_TRACKINGRECORD_AUDIO

v3

XR_ANDROID_hand_mesh

此扩展程序可实现以动态手部网格表示的手部追踪输入。
权限HAND_TRACKING

v1

XR_ANDROID_light_estimation

此扩展程序允许应用请求表示头戴式耳机周围真实世界环境光照的数据。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_light_estimation_cubemap

此扩展程序基于基本的 XR_ANDROID_light_estimation 扩展程序构建。
权限SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_mouse_interaction

此扩展程序提供了一个用于获取鼠标输入的 XrPath,并为用户鼠标配置文件定义了一个常用操作姿势…

v1

XR_ANDROID_passthrough_camera_state

透视摄像头可能需要一段时间才能启动,因此可能无法立即使用。

v1

XR_ANDROID_performance_metrics

此扩展程序提供了一些 API,用于枚举和查询当前 XR 设备的各种性能指标计数器。

v1

XR_ANDROID_raycast

此扩展程序能让应用针对环境中的可跟踪对象执行光线投射。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_recommended_resolution

此扩展程序允许运行时在建议的分辨率发生变化时通知应用。

v1

XR_ANDROID_recommended_settings

用户的默认环境可以:使用混合模式和输入模态的组合处于各种状态。

v1

XR_ANDROID_scene_meshing

此扩展程序旨在提供大致表示用户环境中物理对象的网格。

v1

XR_ANDROID_spatial_anchor_space

XR_EXT_spatial_anchor 扩展程序中定义的 xrCreateSpatialAnchorEXT 函数允许应用创建空间…
权限SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_annotation_tracking

此扩展程序为 <<XR_EXT_spatial_entity>> 扩展程序提供注释跟踪功能,以跟踪各种…
权限SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_component_subsumed_by

此扩展程序基于 XR_EXT_spatial_entity 构建,并为 XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT 提供了一个新组件,以…
权限SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_discovery_raycast

此扩展程序基于 XR_EXT_spatial_entity 构建,并为现有的空间功能提供光线投射功能。
权限SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_entity_bound_anchor

此扩展程序能让应用创建锚点并将其附着到空间实体。
权限SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_object_tracking

此扩展程序基于 XR_EXT_spatial_entity 构建,并定义了用于跟踪一组预定义的物理…
权限SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables

此扩展程序能让应用访问物理环境中的可跟踪对象。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_image

此扩展程序可实现对平面图像的跟踪,具体由一组输入参考图像指定。
权限SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables_marker

此扩展程序可实现实体标记跟踪。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_object

此扩展程序可实现实体对象跟踪。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_qr_code

此扩展程序可实现实体二维码跟踪和二维码数据解码。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_unbounded_reference_space

此扩展程序允许应用创建 XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID 参考空间。

v1

第三方扩展程序

扩展程序名称

说明

空间 API 版本

XR_MND_headless

某些应用可能需要访问 XR 互动设备,但不会在显示屏上显示任何图像内容。

v1

XR_KHR_binding_modification

此扩展程序添加了一个可选结构,可包含在传递的 XrInteractionProfileSuggestedBinding::next 链中…

v1

XR_EXT_debug_utils

由于 OpenXR 接口的性质,开发者和应用可用的错误信息非常少。

v1

XR_EXT_hand_tracking

此扩展程序可让应用定位手部追踪输入的各个关节。
权限HAND_TRACKING

v1

XR_EXT_performance_settings

此扩展程序定义了一个 API,供应用向运行时提供性能提示,并供运行时向应用发送…

v1

XR_FB_display_refresh_rate

在支持动态调整显示屏刷新率的平台上。

v1

XR_FB_swapchain_update_state

此扩展程序使应用能够修改和查询与交换链关联的特定可变状态。

v1

XR_FB_foveation

在 XR 方面,凹凸渲染是一种渲染技术,可让图像中靠近人眼焦点或中央凹的区域…

v1

XR_FB_foveation_configuration

在 Facebook HMD 上,开发者可以创建由运行时生成的用于光学属性和性能的注视点渲染配置文件。

v1

XR_FB_foveation_vulkan

Vulkan 图形 API 要求将图像应用于交换链,以应用注视点渲染模式。

v1

XR_FB_space_warp

此扩展程序提供支持,以在应用上启用空间扭曲技术。

v1

XR_KHR_opengl_es_enable

支持使用 OpenGL ES API 进行渲染的应用的运行时必须提供此扩展。

v1

XR_KHR_android_create_instance

当应用在 Android 系统上创建 XrInstance 对象时。

v1

XR_KHR_android_surface_swapchain

XR 中的常见活动是查看图像流。

v1

XR_KHR_android_thread_settings

为了让 XR 体验舒适,应用必须快速且稳定地传送帧。

v1

XR_KHR_composition_layer_color_scale_bias

在合成期间,颜色比例和偏差会在图层颜色转换为预乘 alpha 表示形式后应用于该颜色。

v1

XR_KHR_composition_layer_cube

此扩展程序添加了一个额外的图层类型,可直接从立方体贴图中进行采样。

v1

XR_KHR_composition_layer_cylinder

此扩展程序添加了一个额外的图层类型,其中 XR 运行时必须将源自交换链的纹理映射到内部…

v1

XR_KHR_composition_layer_depth

此扩展程序定义了一种额外的图层类型,允许应用在…中提交深度图像以及彩色图像

v1

XR_KHR_composition_layer_equirect

此扩展程序添加了一个额外的图层类型,其中 XR 运行时必须将源自…

v1

XR_KHR_composition_layer_equirect2

此扩展程序添加了一个额外的图层类型,其中 XR 运行时必须将源自…

v1

XR_KHR_convert_timespec_time

此扩展程序提供两个函数,用于在 timespec 单调时间和 XrTime 之间进行转换。

v1

XR_KHR_vulkan_enable

此扩展程序可在 OpenXR 运行时中使用 Vulkan 图形 API。

v1

XR_KHR_vulkan_enable2

此扩展程序可在 OpenXR 运行时中使用 Vulkan 图形 API。

v1

XR_KHR_loader_init

在某些平台上,加载程序必须先使用平台专属参数进行初始化,然后才能进行加载。

v1

XR_KHR_loader_init_android

在 Android 上,某些加载器实现需要应用在初始化时提供额外信息。

v1

XR_KHR_swapchain_usage_input_attachment_bit

此扩展程序使应用能够指定应以某种方式创建交换链图片,以便这些图片可用作…

v1

XR_EXT_dpad_binding

此扩展程序允许应用将一个或多个数字操作绑定到触控板或拇指杆,就像绑定到 D-pad 一样…

v1

XR_EXT_uuid

此扩展程序定义了遵循 RFC 4122 的通用唯一标识符。

v1

XR_FB_composition_layer_depth_test

此扩展程序可实现经过深度测试的图层合成。

v1

XR_EXT_eye_gaze_interaction

此扩展程序提供了一个 XrPath,用于从眼动追踪器获取眼动追踪输入,以实现眼动追踪互动。
权限EYE_TRACKING_FINE

v1

XR_EXT_hand_interaction

此扩展程序为所有用户手部互动配置文件定义了四种常用的动作姿势,包括手部追踪…

v1

XR_KHR_visibility_mask

此扩展程序支持为应用提供每个视图的绘制遮罩。

v1

XR_META_foveation_eye_tracked

眼动追踪凹凸透镜渲染技术可在用户目光的周边区域渲染较低的像素密度。
权限EYE_TRACKING_FINE

v1

XR_FB_hand_tracking_aim

XR_EXT_hand_tracking 扩展程序提供了一系列手部关节姿势,这些姿势表示了…
权限HAND_TRACKING

v1

XR_EXT_palm_pose

此扩展程序为互动配置文件定义了一个新的“标准姿势标识符”,名为“palm_ext”。

v1

XR_VARJO_foveated_rendering

Varjo 头戴式耳机在显示屏的中心区域提供极高的像素密度显示。
权限EYE_TRACKING_FINE

v1

XR_VARJO_quad_views

此扩展程序向 XrViewConfigurationType 添加了新的视图配置类型 - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO…

v1

XR_META_vulkan_swapchain_create_info

借助此扩展程序,基于 Vulkan 的应用可以通过以下方式传递额外的 VkImageCreateFlags 或 VkImageUsageFlags…

v1

XR_FB_hand_tracking_mesh

XR_EXT_hand_tracking 扩展程序提供了一系列手部关节姿势,但没有用于渲染蒙皮手部网格的机制。
权限HAND_TRACKING

v1

XR_FB_composition_layer_image_layout

此扩展程序未定义新的合成层类型。

v1

XR_KHR_maintenance1

XR_KHR_maintenance1 添加了一系列有意从原始规范中遗漏或忽略的次要功能…

v1

XR_FB_composition_layer_settings

此扩展程序允许应用请求在…上使用锐化或超采样等处理选项

v1

XR_KHR_locate_spaces

此扩展程序引入了 xrLocateSpacesKHR 函数。

v1

XR_EXT_local_floor

核心 OpenXR 规范在 XrReferenceSpaceType 中包含两种世界锁定参考空间 XrSpace 类型。

v1

XR_EXT_spatial_marker_tracking

此扩展程序基于 XR_EXT_spatial_entity 构建,可让应用检测和跟踪环境中的标记。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_persistence

此扩展程序可让应用发现并关联不同应用会话中的空间实体。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_anchor

此扩展程序基于 XR_EXT_spatial_entity 构建,可让应用创建空间锚点。
权限SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_plane_tracking

此扩展程序基于 XR_EXT_spatial_entity 构建,并为空间实体框架定义了平面跟踪空间功能。

v1

XR_EXT_spatial_entity

此扩展程序介绍了 OpenXR 中场景理解和空间推理的概念和基础。

v1

XR_EXT_future

在 XR 系统中,某些操作需要长时间运行,无法在正常的帧循环中合理完成。

v1

XR_FB_color_space

XR 设备使用的色彩空间可能与开发中使用的许多显示器不同。

v1

XR_EXT_composition_layer_inverted_alpha

此扩展程序提供了一个标志,当应用于合成层时,该标志会反转…

v1

XR_EXT_frame_synthesis

此扩展服务提供支持,以根据应用提供的额外数据在应用上实现帧合成。

v3

XR_QCOM_trackables_image_operations

为可追踪对象提供 Qualcomm 图像跟踪操作。

v3

XR_QCOM_trackables_qr_code_operations

v3

XR_EXT_user_presence

此扩展程序引入了一个新事件,用于在系统检测到用户状态发生变化时进行通知。

v3

XR_KHR_extended_struct_name_lengths

此扩展程序可扩大结构体名称的最大大小,并提供一个新函数来访问这些新的扩展名称。

v3

XR_EXT_interaction_profile_battery_state_display

XR_EXT_interaction_profile_battery_state_display 提供了一种机制,供应用向运行时查询电池状态…

v3


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