Mem-build dengan ekstensi OpenXR yang didukung

Perangkat XR yang kompatibel
Panduan ini membantu Anda membangun pengalaman untuk jenis perangkat XR ini.
Headset XR
Kacamata XR Berkabel

Android XR mendukung OpenXR melalui spesifikasi OpenXR 1.1 dan daftar panjang ekstensi vendor pihak ketiga. Menggunakan ekstensi ini akan memberi Anda pengalaman yang sudah dikenal saat mengembangkan untuk XR. Beberapa kemampuan ini memerlukan izin runtime Android. Jika Anda ingin membangun langsung di OpenXR API, Anda dapat menemukan file header yang diperlukan di repositori jetpack-xr-natives.

Ekstensi Vendor Android XR

Nama ekstensi

Deskripsi

Versi Spatial API

XR_ANDROID_anchor_sharing_export

Anchor yang dibuat oleh aplikasi melalui XR_ANDROID_trackables, XR_EXT_spatial_anchor, dan XR_ANDROID_spatial_anchor_space terikat ke sesi tertentu sehingga tidak terlihat oleh aplikasi lain. Ekstensi ini memungkinkan aplikasi berbagi anchor dengan aplikasi lain yang sedang berjalan.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_body_tracking

Menggunakan IK untuk menentukan posisi tubuh berdasarkan posisi kepala dan tangan.

Izin: BODY_TRACKING

v2

XR_ANDROID_composition_layer_passthrough_mesh

Untuk perangkat yang mendukung beberapa mode penggabungan lingkungan.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_depth_texture

Ekstensi ini memungkinkan aplikasi meminta peta kedalaman lingkungan dunia nyata di sekitar headset dan mengkueri resolusi kedalaman yang didukung saat pembuatan.

Izin: SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_device_anchor_persistence

Ekstensi ini memungkinkan aplikasi untuk dipertahankan.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_enumerate_system_extension_properties

Ekstensi ini memungkinkan aplikasi menentukan ekstensi mana yang didukung oleh konfigurasi sistem saat ini.

v3

XR_ANDROID_eye_tracking

Ekstensi ini memungkinkan aplikasi mendapatkan posisi dan orientasi mata pengguna, serta status pelacakan gerak mata.

Izin: EYE_TRACKING_FINE

v1

XR_ANDROID_face_tracking

Ekstensi ini memungkinkan aplikasi mendapatkan bobot bentuk campuran dan merender ekspresi wajah dalam pengalaman XR.

Izin: FACE_TRACKING

v1

XR_ANDROID_face_tracking_data_source

Ekstensi ini memungkinkan aplikasi mendapatkan data pelacakan wajah dari beberapa sumber data.

Izin: FACE_TRACKING, RECORD_AUDIO

v3

XR_ANDROID_geospatial

Ekstensi ini menyediakan pelacakan Geospasial untuk Geospatial API Google.

Izin: ACCESS_FINE_LOCATION

v4

XR_ANDROID_geospatial_anchor

Ekstensi ini menyediakan Anchor Geospasial dan Anchor Permukaan yang diposisikan dalam ruang relatif terhadap Bumi pada lintang, bujur, dan ketinggian tertentu.

Izin: ACCESS_FINE_LOCATION

v4

XR_ANDROID_global_passthrough_dimming

Ekstensi ini memungkinkan aplikasi menetapkan dan mengkueri tingkat peredupan passthrough global serta menerima peristiwa saat tingkat peredupan berubah.

v4

XR_ANDROID_google_cloud_auth

Ekstensi ini memungkinkan penggunaan ekstensi berbasis Google Cloud dengan mengizinkan aplikasi memberikan kredensial autentikasi untuk Google Cloud API.

v4

XR_ANDROID_hand_mesh

Ekstensi ini memungkinkan input pelacakan gerak tangan yang direpresentasikan sebagai mesh tangan dinamis.

Izin: HAND_TRACKING

v1

XR_ANDROID_light_estimation

Ekstensi ini memungkinkan aplikasi meminta data yang merepresentasikan pencahayaan lingkungan dunia nyata di sekitar headset.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_light_estimation_cubemap

Ekstensi ini dibuat berdasarkan ekstensi XR_ANDROID_light_estimation dasar.

Izin: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_mouse_interaction

Ekstensi ini menyediakan XrPath untuk mendapatkan input mouse dan menentukan satu pose tindakan yang umum digunakan untuk profil mouse pengguna, termasuk perangkat mouse dan perangkat trackpad.

v1

XR_ANDROID_passthrough_camera_state

Kamera passthrough mungkin memerlukan waktu untuk memulai dan mungkin tidak langsung tersedia.

v1

XR_ANDROID_performance_metrics

Ekstensi ini menyediakan API untuk menghitung dan mengkueri berbagai penghitung metrik performa perangkat XR saat ini.

v1

XR_ANDROID_raycast

Ekstensi ini memungkinkan aplikasi melakukan raycast terhadap objek yang dapat dilacak di lingkungan.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_recommended_resolution

Ekstensi ini memungkinkan runtime memberi tahu aplikasi saat resolusi yang direkomendasikan berubah.

v1

XR_ANDROID_recommended_settings

Lingkungan default pengguna dapat: berada dalam berbagai status menggunakan kombinasi mode penggabungan dan modalitas input.

v1

XR_ANDROID_scene_meshing

Ekstensi ini dimaksudkan untuk menyediakan mesh yang kira-kira mewakili objek fisik di lingkungan pengguna.

Izin: SCENE_UNDERSTANDING_FINE

v1

XR_ANDROID_spatial_anchor_space

Fungsi xrCreateSpatialAnchorEXT yang ditentukan dalam ekstensi XR_EXT_spatial_anchor memungkinkan aplikasi membuat anchor spasial dengan handle XrSpatialEntityEXT untuk merepresentasikannya.

Sebaliknya, ekstensi ini membuat anchor spasial yang direpresentasikan oleh handle XrSpace.

Izin: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_annotation_tracking

Ekstensi ini menyediakan kemampuan pelacakan anotasi untuk ekstensi XR_EXT_spatial_entity guna melacak berbagai anotasi dalam scene. Hal ini memungkinkan aplikasi menempatkan overlay pada objek fisik atau virtual yang ditentukan oleh referensi runtime.

Izin: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_component_subsumed_by

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan menyediakan komponen baru untuk XR_SPATIAL_CAPABILITY_PLANE_TRACKING_EXT guna mengekspos XrSpatialEntityIdEXT yang mencakup entity saat ini.

Izin: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_discovery_bounds

Ekstensi ini menambahkan definisi untuk batas spasial yang memungkinkan aplikasi memfilter entity spasial yang ditemukan.

Izin: SCENE_UNDERSTANDING_COARSE

v4

XR_ANDROID_spatial_discovery_raycast

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan menyediakan fungsi raycast untuk kemampuan spasial yang ada.

Izin: SCENE_UNDERSTANDING_FINE

v3

XR_ANDROID_spatial_entity_bound_anchor

Ekstensi ini memungkinkan aplikasi membuat dan memasang anchor ke entity spasial.

Izin: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_spatial_object_tracking

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan menentukan kemampuan spasial untuk melacak serangkaian objek fisik yang telah ditentukan sebelumnya tanpa memerlukan set data input dari aplikasi.

Izin: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables

Ekstensi ini memungkinkan aplikasi mengakses objek yang dapat dilacak dari lingkungan fisik.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_image

Ekstensi ini memungkinkan pelacakan gambar planar seperti yang ditentukan oleh kumpulan gambar referensi input.

Izin: SCENE_UNDERSTANDING_COARSE

v3

XR_ANDROID_trackables_marker

Ekstensi ini memungkinkan pelacakan penanda fisik.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_object

Ekstensi ini memungkinkan pelacakan objek fisik.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_trackables_qr_code

Ekstensi ini memungkinkan pelacakan kode QR fisik dan decoding data kode QR.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_ANDROID_unbounded_reference_space

Ekstensi ini memungkinkan aplikasi membuat ruang referensi XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID.

v1

XR_ANDROID_viewport_feathering

Ekstensi ini mengekspos area bergradasi yang diterapkan oleh runtime sehingga aplikasi dapat menata letak elemen UI dalam area aman.

v4

Ekstensi pihak ketiga

Nama ekstensi

Deskripsi

Versi Spatial API

XR_MND_headless

Beberapa aplikasi mungkin perlu mengakses perangkat interaksi XR tanpa menampilkan konten gambar apa pun di layar.

v1

XR_KHR_binding_modification

Ekstensi ini menambahkan struktur opsional yang dapat disertakan pada rantai XrInteractionProfileSuggestedBinding::next yang diteruskan ke xrSuggestInteractionProfileBindings untuk menentukan informasi tambahan guna mengubah perilaku binding default.

v1

XR_EXT_debug_utils

Karena sifat antarmuka OpenXR, hanya ada sedikit informasi error yang tersedia bagi developer dan aplikasi.

v1

XR_EXT_hand_tracking

Ekstensi ini memungkinkan aplikasi menemukan setiap sendi input pelacakan gerak tangan.

Izin: HAND_TRACKING

v1

XR_EXT_performance_settings

Ekstensi ini menentukan API bagi aplikasi untuk memberikan petunjuk performa ke runtime dan bagi runtime untuk mengirimkan notifikasi terkait performa kembali ke aplikasi. Hal ini memungkinkan kedua belah pihak untuk mencapai kompromi yang sesuai antara performa CPU dan GPU yang diperlukan, keberlanjutan termal, dan pengalaman pengguna yang baik dan konsisten selama sesi.

v1

XR_FB_display_refresh_rate

Di platform yang mendukung penyesuaian kecepatan refresh layar secara dinamis.

v1

XR_FB_swapchain_update_state

Ekstensi ini memungkinkan aplikasi mengubah dan mengkueri status tertentu yang dapat diubah yang terkait dengan swapchain.

v1

XR_FB_foveation

Foveasi dalam konteks XR adalah teknik rendering yang memungkinkan area gambar di dekat titik fokus atau fovea mata ditampilkan dalam resolusi yang lebih tinggi daripada area di sekitarnya.

v1

XR_FB_foveation_configuration

Di HMD Facebook, developer dapat membuat profil foveasi yang dihasilkan oleh runtime untuk properti optik dan performa.

v1

XR_FB_foveation_vulkan

API grafis Vulkan memerlukan gambar untuk diterapkan ke swapchain guna menerapkan pola foveation.

v1

XR_FB_space_warp

Ekstensi ini memberikan dukungan untuk mengaktifkan teknologi space warp pada aplikasi.

v1

XR_KHR_opengl_es_enable

Ekstensi ini harus disediakan oleh runtime yang mendukung aplikasi yang menggunakan OpenGL ES API untuk rendering.

v1

XR_KHR_android_create_instance

Saat aplikasi membuat objek XrInstance di sistem Android.

v1

XR_KHR_android_surface_swapchain

Aktivitas umum di XR adalah melihat streaming gambar.

v1

XR_KHR_android_thread_settings

Agar XR nyaman, aplikasi harus mengirimkan frame dengan cepat dan konsisten.

v1

XR_KHR_composition_layer_color_scale_bias

Skala dan bias warna diterapkan ke warna lapisan selama komposisi, setelah konversinya ke representasi alfa yang dipramultiplikasi.

v1

XR_KHR_composition_layer_cube

Ekstensi ini menambahkan jenis lapisan tambahan yang memungkinkan pengambilan sampel langsung dari cubemap.

v1

XR_KHR_composition_layer_cylinder

Ekstensi ini menambahkan jenis lapisan tambahan tempat runtime XR harus memetakan tekstur yang berasal dari swapchain ke bagian dalam silinder. Hal ini dapat dibayangkan seperti tampilan layar televisi melengkung bagi penonton.

v1

XR_KHR_composition_layer_depth

Ekstensi ini menentukan jenis lapisan tambahan yang memungkinkan aplikasi mengirimkan gambar kedalaman beserta gambar warna di lapisan proyeksi.

v1

XR_KHR_composition_layer_equirect

Ekstensi ini menambahkan jenis lapisan tambahan tempat runtime XR harus memetakan gambar berkode equirectangular yang berasal dari swapchain ke bagian dalam bola.

v1

XR_KHR_composition_layer_equirect2

Ekstensi ini menambahkan jenis lapisan tambahan tempat runtime XR harus memetakan gambar berkode equirectangular yang berasal dari swapchain ke bagian dalam bola.

Ekstensi ini menggunakan parameterisasi yang berbeda, yang lebih sesuai dengan formulasi XR_KHR_composition_layer_cylinder, tetapi secara fungsional setara dengan XR_KHR_composition_layer_equirect.

v1

XR_KHR_convert_timespec_time

Ekstensi ini menyediakan dua fungsi untuk mengonversi antara waktu monotonik timespec dan XrTime.

v1

XR_KHR_vulkan_enable

Ekstensi ini memungkinkan penggunaan API grafis Vulkan dalam runtime OpenXR.

v1

XR_KHR_vulkan_enable2

Ekstensi ini memungkinkan penggunaan API grafis Vulkan dalam runtime OpenXR.

v1

XR_KHR_loader_init

Di beberapa platform, sebelum pemuatan dapat terjadi, loader harus diinisialisasi dengan parameter khusus platform.

v1

XR_KHR_loader_init_android

Di Android, beberapa implementasi loader memerlukan aplikasi untuk memberikan informasi tambahan saat inisialisasi.

v1

XR_KHR_swapchain_usage_input_attachment_bit

Ekstensi ini memungkinkan aplikasi menentukan bahwa image swapchain harus dibuat sedemikian rupa sehingga dapat digunakan sebagai lampiran input. Saat penulisan, bit ini hanya memengaruhi swapchain Vulkan.

v1

XR_EXT_dpad_binding

Ekstensi ini memungkinkan aplikasi mengikat satu atau beberapa tindakan digital ke trackpad atau thumbstick seolah-olah itu adalah dpad dengan menentukan jalur komponen tambahan untuk menyarankan binding.

v1

XR_EXT_uuid

Ekstensi ini menentukan ID Unik Universal yang mengikuti RFC 4122.

v1

XR_FB_composition_layer_depth_test

Ekstensi ini memungkinkan komposisi lapisan yang diuji kedalamannya.

v1

XR_EXT_eye_gaze_interaction

Ekstensi ini menyediakan XrPath untuk mendapatkan input pandangan mata dari pelacak mata guna mengaktifkan interaksi pandangan mata.

Izin: EYE_TRACKING_FINE

v1

XR_EXT_hand_interaction

Ekstensi ini menentukan empat pose tindakan yang umum digunakan untuk semua profil interaksi tangan pengguna, termasuk perangkat pelacakan gerak tangan dan perangkat pengontrol gerakan.

v1

XR_KHR_visibility_mask

Ekstensi ini mendukung penyediaan mask gambar per tampilan untuk aplikasi.

v1

XR_META_foveation_eye_tracked

Rendering foveated dengan pelacakan gerak mata merender kepadatan piksel yang lebih rendah di area periferal pandangan pengguna.

Izin: EYE_TRACKING_FINE

v1

XR_FB_hand_tracking_aim

Ekstensi XR_EXT_hand_tracking menyediakan daftar pose sendi tangan yang mewakili konfigurasi saat ini dari tangan yang dilacak. Ekstensi ini menambahkan lapisan pengenalan gestur yang digunakan oleh sistem.

Izin: HAND_TRACKING

v1

XR_EXT_palm_pose

Ekstensi ini menentukan "ID pose standar" baru untuk profil interaksi, yang bernama "palm_ext".

v1

XR_VARJO_foveated_rendering

Headset Varjo memberikan tampilan kepadatan piksel yang sangat tinggi di area tengah layar.

Izin: EYE_TRACKING_FINE

v1

XR_VARJO_quad_views

Ekstensi ini menambahkan jenis konfigurasi tampilan baru - XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO ke XrViewConfigurationType yang dapat ditampilkan oleh xrEnumerateViewConfigurations untuk menunjukkan bahwa runtime mendukung 4 area pandang.

v1

XR_META_vulkan_swapchain_create_info

Dengan ekstensi ini, aplikasi berbasis Vulkan dapat meneruskan VkImageCreateFlags atau VkImageUsageFlags tambahan dengan merantai struktur XrVulkanSwapchainCreateInfoMETA ke XrSwapchainCreateInfo saat memanggil xrCreateSwapchain.

v1

XR_FB_hand_tracking_mesh

Ekstensi XR_EXT_hand_tracking menyediakan daftar pose sendi tangan, tetapi tidak menyediakan mekanisme untuk merender mesh tangan yang berkulit.

Izin: HAND_TRACKING

v1

XR_FB_composition_layer_image_layout

Ekstensi ini tidak menentukan jenis lapisan komposisi baru.

v1

XR_KHR_maintenance1

XR_KHR_maintenance1 menambahkan kumpulan fitur minor yang sengaja dihilangkan atau diabaikan dari rilis OpenXR 1.0 asli.

v1

XR_FB_composition_layer_settings

Ekstensi ini memungkinkan aplikasi meminta penggunaan opsi pemrosesan seperti penajaman atau super-sampling pada lapisan komposisi.

v1

XR_KHR_locate_spaces

Ekstensi ini memperkenalkan fungsi xrLocateSpacesKHR.

v1

XR_EXT_local_floor

Spesifikasi OpenXR inti berisi dua jenis ruang referensi yang terkunci di dunia XrSpace di XrReferenceSpaceType.

v1

XR_EXT_spatial_marker_tracking

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan memungkinkan aplikasi mendeteksi serta melacak penanda di lingkungannya.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_persistence

Ekstensi ini memungkinkan aplikasi menemukan dan menghubungkan entity spasial di seluruh sesi aplikasi.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_anchor

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan memungkinkan aplikasi membuat anchor spasial.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_plane_tracking

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan menentukan kemampuan spasial pelacakan bidang untuk framework entity spasial.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_entity

Ekstensi ini memperkenalkan konsep dan dasar-dasar untuk pemahaman scene dan penalaran spasial di OpenXR.

v1

XR_EXT_future

Dalam sistem XR, ada operasi tertentu yang berjalan lama dan tidak dapat diselesaikan secara wajar dalam loop frame normal.

v1

XR_FB_color_space

Perangkat XR mungkin menggunakan ruang warna yang berbeda dari banyak monitor yang digunakan dalam pengembangan.

v1

XR_EXT_composition_layer_inverted_alpha

Ekstensi ini menyediakan flag yang, saat diterapkan ke lapisan komposisi, akan membalikkan interpretasi nilai alfa dalam gambar swapchain lapisan.

v1

XR_EXT_spatial_entity_archetypes

Fungsi xrQuerySpatialComponentDataEXT menawarkan cara bagi aplikasi untuk mengkueri entity dan data komponen menggunakan filter jenis komponen yang harus ada pada entity. Ekstensi ini memperkenalkan konsep arketipe (kombinasi komponen unik) sehingga aplikasi dapat membaca semua data komponen untuk semua entity tanpa duplikasi.

v4

XR_EXT_frame_synthesis

Ekstensi ini memberikan dukungan untuk mengaktifkan sintesis frame pada aplikasi berdasarkan data tambahan yang disediakan aplikasi.

v3

XR_QCOM_trackables_image_operations

Menyediakan operasi pelacakan gambar Qualcomm untuk objek yang dapat dilacak.

v3

XR_QCOM_trackables_qr_code_operations

Menyediakan operasi pelacakan kode QR Qualcomm untuk objek yang dapat dilacak.

v3

XR_EXT_user_presence

Ekstensi ini memperkenalkan peristiwa baru untuk memberi tahu saat sistem mendeteksi perubahan kehadiran pengguna.

v3

XR_KHR_extended_struct_name_lengths

Ekstensi ini memperluas ukuran nama struct maksimum dan menyediakan fungsi baru untuk mengakses nama baru yang diperluas ini.

v3

XR_EXT_hand_tracking_data_source

Ekstensi ini menambah ekstensi XR_EXT_hand_tracking.

v4

XR_EXT_spatial_container_self_rendering

Ekstensi ini menjelaskan "rendering mandiri" dalam konteks penampung spasial.

v4

XR_EXT_spatial_container

Ekstensi ini menentukan class baru entity yang dapat ditampilkan.

v4

XR_EXT_spatial_persistence_operations

Ekstensi ini memungkinkan aplikasi mempertahankan dan membatalkan persistensi entity spasial di seluruh sesi.

Izin: SCENE_UNDERSTANDING_COARSE

v1

XR_EXT_spatial_mesh_tracking

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan menentukan kemampuan spasial untuk melacak mesh segitiga lingkungan.

Izin: SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_spatial_object_tracking

Ekstensi ini dibuat berdasarkan XR_EXT_spatial_entity dan menentukan kemampuan spasial untuk melacak sekumpulan objek yang telah ditentukan tanpa memerlukan set data input dari aplikasi.

Izin: SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_spatial_image_tracking

Ekstensi ini menyediakan kemampuan pelacakan gambar untuk ekstensi XR_EXT_spatial_entity.

Izin: SCENE_UNDERSTANDING_COARSE

v4

XR_EXT_interaction_profile_battery_state_display

XR_EXT_interaction_profile_battery_state_display menyediakan mekanisme bagi aplikasi untuk mengkueri runtime guna mendapatkan informasi status baterai untuk perangkat yang digunakan dengan profil interaksi.

v3

XR_FB_composition_layer_secure_content

Ekstensi ini tidak menentukan jenis lapisan komposisi baru.

v4


OpenXR™ dan logo OpenXR adalah merek dagang yang dimiliki oleh The Khronos Group Inc. dan terdaftar sebagai merek dagang di China, Uni Eropa, Jepang, dan Inggris Raya.