使用支援的 OpenXR 擴充功能進行建構

適用的 XR 裝置
這份指南可協助您為這類 XR 裝置打造體驗。
XR 頭戴式裝置
有線 XR 眼鏡

Android XR 透過 OpenXR 1.1 規格和一長串第三方供應商擴充功能支援 OpenXR。使用這些擴充功能,您就能在開發 XR 應用程式時,享有熟悉的使用體驗。其中有些功能需要Android 執行階段權限。如要直接使用 OpenXR API 建構內容,請前往 jetpack-xr-natives 存放區,尋找所需的標頭檔案。

Android XR 供應商擴充功能

擴充功能名稱

說明

Spatial 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

這個擴充功能可追蹤實體 QR code,並解碼 QR code 資料。
權限: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_unbounded_reference_space

應用程式可透過這項擴充功能建立 XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID 參考空間。

v1

第三方擴充功能

擴充功能名稱

說明

Spatial 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

如要提供舒適的延展實境體驗,應用程式必須快速且穩定地傳送影格。

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

這個擴充功能可讓應用程式將一或多個數位動作繫結至觸控板或拇指桿,就像繫結至方向鍵一樣...

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

這項擴充功能會為互動設定檔定義新的「標準姿勢 ID」,並命名為「palm_ext」。

v1

XR_VARJO_foveated_rendering

Varjo 頭戴式裝置的螢幕中央區域提供極高的像素密度。
權限: EYE_TRACKING_FINE

v1

XR_VARJO_quad_views

這項擴充功能會將新的檢視畫面設定類型 - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO 新增至 XrViewConfigurationType...

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

這個擴充功能提供一個旗標,套用至合成層時,會反轉解讀 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. 的商標,已在中國、歐盟、日本和英國註冊為商標。