Android XR mendukung aplikasi yang dibuat dengan OpenXR melalui dukungannya untuk spesifikasi OpenXR 1.1 dan ekstensi vendor tertentu. OpenXR adalah standar terbuka yang memungkinkan Anda menciptakan pengalaman imersif dan interaktif menggunakan serangkaian API umum di berbagai perangkat XR.
Fitur
Android XR mendukung fitur yang memungkinkan Anda membangun aplikasi yang memanfaatkan sepenuhnya kemampuan unik perangkat XR, menggunakan OpenXR. Fitur-fitur ini mencakup hal berikut.
- Framework Spatial Entity
- Fondasi terpadu untuk pemahaman adegan dan penalaran spasial. Memungkinkan aplikasi menemukan, membuat kueri, dan melacak entity spasial fisik di lingkungan (termasuk bidang, mesh 3D, kotak pembatas, gambar, penanda, dan anotasi), memfilter penemuan menggunakan batas spasial, membuat kueri arketipe entity, membuat anchor spasial yang dilampirkan ke entity, melakukan raycasting entity spasial dan mesh, serta mempertahankan entity spasial di seluruh sesi aplikasi.
- Penampung spasial
- API windowing spasial lintas platform (
XR_EXT_spatial_containerdanXR_EXT_spatial_container_self_rendering) yang memungkinkan aplikasi membuat dan merender penampung spasial 3D yang dapat ditampilkan (baik yang dibatasi maupun yang imersif) menggunakan swapchain dan lapisan komposisi OpenXR, sehingga pengguna dapat mengalami beberapa penampung spasial secara bersamaan. - Anchor Geospasial dan Geospasial
- Memungkinkan aplikasi melacak pose relatif terhadap Bumi menggunakan Layanan Pemosisian Visual (VPS) dan GPS Google, melakukan autentikasi dengan layanan Google Cloud, serta menempatkan Anchor Geospasial dan Anchor Permukaan pada lintang, bujur, dan ketinggian tertentu.
- Trackables
- Mendukung deteksi bidang, yaitu kemampuan untuk mengidentifikasi dan melacak permukaan datar dalam lingkungan, sehingga memungkinkan penempatan objek virtual dalam kaitannya dengan dunia nyata dan Anchor yang merupakan titik referensi virtual yang dapat dilampirkan ke objek atau lokasi dunia nyata, sehingga konten virtual tetap diposisikan dan diorientasikan secara akurat bahkan saat pengguna bergerak.
- Raycasting
- Teknik yang digunakan untuk menentukan titik persimpangan antara sinar virtual dan objek atau mesh dunia dalam scene, yang memfasilitasi interaksi seperti memilih dan memanipulasi elemen virtual.
- Persistensi anchor
- Kemampuan untuk menyimpan dan memulihkan anchor di beberapa sesi, sehingga memungkinkan penempatan konten virtual yang persisten dan konsisten dalam lingkungan.
- Pelacakan objek
- Kemampuan untuk melacak mouse, keyboard, dan objek fisik lainnya di dunia nyata.
- Pelacakan Gambar dan Penanda
- Kemampuan untuk mendeteksi dan melacak gambar referensi planar dan penanda fisik (seperti AprilTag dan penanda ArUco) di lingkungan.
- Pelacakan Kode QR
- Kemampuan untuk melacak Kode QR di lingkungan fisik dan mendekode datanya.
- Tekstur kedalaman
- Pembuatan peta kedalaman yang memberikan informasi tentang jarak antara kamera dan objek dalam tampilan, sehingga memungkinkan efek oklusi dan interaksi yang lebih realistis.
- Passthrough
- Kemampuan untuk memadukan rekaman kamera dunia nyata dengan konten virtual, sehingga menciptakan pengalaman mixed reality yang menggabungkan dunia fisik dan digital dengan lancar.
- Peredupan passthrough global
- Memungkinkan aplikasi menetapkan dan mengkueri tingkat peredupan passthrough global untuk memadukan konten virtual dengan lingkungan fisik, serta menerima peristiwa saat tingkat peredupan berubah.
- Feathering area pandang
- Mengekspos area perimeter yang dihaluskan yang diterapkan oleh runtime sehingga aplikasi dapat menata letak elemen UI dalam area aman yang tidak terpengaruh oleh penghalusan periferal.
- Scene meshing
- Kemampuan untuk memperoleh mesh 3D lingkungan, yang dapat digunakan untuk fisika, oklusi, dan interaksi berbasis dunia lainnya.
- Passthrough lapisan komposisi
- Memungkinkan potongan lapisan komposisi passthrough poligon, dapat digunakan untuk menghadirkan objek dunia nyata ke dalam scene.
- Pelacakan wajah
- Kemampuan untuk melacak fitur wajah pengguna dari sumber data visual dan audio, sehingga memungkinkan pembuatan avatar dan karakter virtual yang lebih realistis dan ekspresif.
- Pelacakan gerak mata
- Memberikan posisi dan orientasi mata pengguna, yang dirancang untuk membuat pose mata avatar lebih realistis.
- Pelacakan tangan
- Kemampuan untuk melacak posisi dan gerakan tangan pengguna.
- Mesh tangan
- Memberikan representasi akurat tangan pengguna sebagai mesh poli rendah. Dioptimalkan untuk pengiriman platform ke aplikasi guna memastikan Anda mendapatkan performa terbaik. Ini adalah alternatif untuk ekstensi lain yang menggunakan pose ikat dan bobot campuran.
- Pelacakan tubuh
- Memperkirakan posisi dan proporsi sendi tubuh pengguna menggunakan input pelacakan kepala dan tangan.
- Estimasi pencahayaan
- Digunakan untuk model pencahayaan (termasuk pencahayaan direksional, ambien, harmonik sferis, dan cubemap) agar sesuai dengan kondisi pencahayaan dunia nyata pengguna.
Perangkat input yang didukung
Android XR juga mendukung perangkat input berikut.
- Interaksi Tangan
- Pengenalan gestur tangan tertentu, seperti mencubit, menggeser, dan menunjuk, sehingga pengguna dapat berinteraksi dengan objek virtual menggunakan gestur dan gerakan tangan.
- Interaksi Pandangan Mata
- Kemampuan untuk melacak gerakan mata pengguna, sehingga mereka dapat memilih dan berinteraksi dengan objek virtual menggunakan pandangan mereka.
- Pengontrol Gerakan 6DoF
- Kemampuan untuk melacak posisi dan gerakan pengontrol beserta binding Dpad dan tombol untuk memicu tindakan, atau peristiwa pengarahan kursor dalam aplikasi.
- Interaksi Mouse
- Kemampuan pengguna untuk berinteraksi dengan objek melalui kursor mouse di ruang 3D
Fitur performa yang didukung
Android XR mendukung fitur terkait performa berikut.
- Foveasi yang dilacak mata
- Mengizinkan aplikasi merender konten beresolusi lebih tinggi hanya pada titik fokus mata.
- Space warp
- Menggunakan vektor kecepatan dan informasi tekstur kedalaman untuk menghasilkan frame tween yang secara efektif meningkatkan kecepatan frame yang diperlukan untuk membuat pengguna tetap tenggelam dalam pengalaman Anda
- Sintesis frame
- Menggunakan vektor gerakan dan data frame yang disediakan aplikasi untuk menyintesis frame perantara, sehingga meningkatkan kelancaran visual dan kecepatan frame.
- Metrik performa
- Menyediakan metrik performa Android XR saat runtime perangkat XR, compositor, dan aplikasi XR saat ini. Hal ini mencakup waktu render frame CPU, waktu render frame GPU, pemakaian GPU, frekuensi CPU, frame per detik, dan lainnya.
Lihat Ringkasan Fitur OpenXR untuk mengetahui daftar lengkap fitur dan ekstensi yang didukung.
Mesin yang didukung
Mesin berikut didukung untuk pengembangan OpenXR dengan Android XR.
Unity
Dukungan Unity Android XR, yang dibangun di atas OpenXR, memungkinkan developer menciptakan pengalaman menggunakan Unity 6. Pelajari lebih lanjut cara membangun aplikasi XR dengan Unity di ringkasan Unity.
Unreal Engine
Unreal Engine mendukung Android XR melalui standar OpenXR, sehingga Anda dapat menggunakan alat dan alur kerja standar di Unreal Engine 5. Pelajari lebih lanjut cara membangun aplikasi XR dengan Unreal Engine di ringkasan Unreal Engine.
Godot
Godot mendukung Android XR melalui integrasi OpenXR, sehingga Anda dapat membangun dan mengekspor aplikasi XR untuk Android menggunakan alur kerja Godot standar. Pelajari lebih lanjut cara membangun aplikasi XR dengan Godot di ringkasan Godot.
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.