Android XR supports OpenXR1 through the OpenXR 1.1 specification and a long list of third party vendor extensions. Using these extensions offers you that familiar experience when developing for XR. Some of these capabilities require Android runtime permissions.
Android XR Vendor Extensions
Extension Name |
Description |
---|---|
Allows the application to obtain the position and orientation of the user's eyes, which is designed to make eye pose and status representation for avatars more realistic. This extension should not be used for other eye tracking purposes. For interaction, |
|
Allows the app to project passthrough textures onto arbitrary geometry through an additional composition layer. This extension requires |
|
Exposes raw and smooth depth for occlusion, hit tests, and other specific tasks that make use of accurate scene geometry, such as counterfeit face detection. Provides a low resolution depth texture and confidence of a scene from the current camera/eye poses. This extension requires |
|
Allows the application to persist, retrieve, and unpersist anchors on the current device, across applications and device sessions. This extension requires |
|
Allows the application to get weights of blend shapes and render facial expressions in XR experiences. This extension requires |
|
Enables hand tracking inputs represented as a dynamic hand mesh. This extension is intended to provide vertex and index buffers for the mesh of a personalized representation of the user's hands. For tracking hand joints |
|
Estimates the environmental lighting (including spherical harmonics) of a user's current environment. This extension allows the application to request data representing the lighting of the real-world environment around the headset. This information can be used when rendering virtual objects to light them under the same conditions as the scene they're placed in. This extension requires |
|
This extension introduces a new interaction profile specifically designed for mouse devices to input through the OpenXR action system. Allows for commonly used action poses for user mouse profiles, including both mouse devices and trackpad devices. This is designed for interacting with objects through a mouse pointer in 3D space. For example, using a virtual laser pointer to aim at a virtual button on the wall is an interaction suited to the "aim" pose. |
|
Provides enabled, initializing, or disabled states for the passthrough camera. |
|
This extension provides APIs to enumerate and query various performance metrics counters of the current XR device, compositor and XR application. |
|
This extension allows the application to perform raycasts against trackables in the environment. This extension requires |
|
This extension allows the application to access trackables such as planes from the physical environment, and create anchors attached to a trackable. This extension requires |
|
Provides support for tracking physical objects such as keyboard and mouse in a scene. This extension requires |
|
Provides an unbounded reference space that can be used to build better scene understanding over time. This reference space enables the viewer to move freely through a complex environment, often many meters from where they started, while always optimizing for coordinate system stability near the viewer. |
Other Supported Extensions
The following additional extensions are also supported. Information is located on external sites.
XR_EXT_debug_utils
XR_EXT_dpad_binding
XR_EXT_eye_gaze_interaction
*XR_EXT_hand_tracking
*XR_EXT_hand_interaction
XR_EXT_palm_pose
XR_EXT_performance_settings
XR_EXT_uuid
XR_FB_composition_layer_depth_test
XR_FB_display_refresh_rate
XR_FB_foveation
XR_FB_foveation_configuration
XR_FB_foveation_vulkan
XR_FB_hand_tracking_aim
*XR_FB_space_warp
XR_KHR_android_create_instance
XR_KHR_android_surface_swapchain
XR_KHR_android_thread_settings
XR_KHR_binding_modification
XR_KHR_composition_layer_color_scale_bias
XR_KHR_composition_layer_cube
XR_KHR_composition_layer_cylinder
XR_KHR_composition_layer_depth
XR_KHR_composition_layer_equirect2
XR_KHR_convert_timespec_time
XR_KHR_loader_init
XR_KHR_loader_init_android
XR_KHR_opengl_es_enable
XR_KHR_swapchain_usage_input_attachment_bit
XR_KHR_vulkan_enable2
XR_META_vulkan_swapchain_create_info
XR_MND_headless
-
OpenXR™ and the OpenXR logo are trademarks owned by The Khronos Group Inc. and are registered as a trademark in China, the European Union, Japan and the United Kingdom. ↩