String Nama
XR_ANDROID_unbounded_reference_space
Jenis Ekstensi
Ekstensi instance
Registered Extension Number
468
Revisi
1
Dependensi Ekstensi dan Versi
Tanggal Terakhir Diubah
2024-09-12
Status IP
Tidak ada klaim IP yang diketahui.
Kontributor
Spencer Quin, Google
Jared Finder, Google
Fengtao Fan, Google
Lachlan Ford, Google
Nihav Jain, Google
Levana Chen, Google
Ringkasan
Ekstensi ini memungkinkan aplikasi membuat ruang referensi
UNBOUNDED_ANDROID
. Ruang referensi ini memungkinkan penampil bergerak bebas melalui lingkungan
yang kompleks, sering kali beberapa meter dari tempat mereka memulai, sambil selalu mengoptimalkan
stabilitas sistem koordinat di dekat penampil. Saat perangkat mendeteksi lebih banyak
lingkungan untuk membangun pemahaman scene yang lebih baik, asal
ruang referensi dapat menyimpang dengan penyesuaian besar sesuai kebutuhan untuk mempertahankan
pelacakan perangkat.
Untuk membuat ruang referensi UNBOUNDED_ANDROID
, aplikasi dapat menetapkan
XrReferenceSpaceCreateInfo::referenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
dan meneruskan ke
xrCreateReferenceSpace.
XrInstance instance; // previously initialized
XrSession session; // previously initialized
XrPosef pose; // previously initialized
// Use the new reference space type in the create info struct
XrReferenceSpaceCreateInfo createInfo = {
.type = XR_REFERENCE_SPACE_CREATE_INFO;
.next = nullptr;
.referenceSpaceType = XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID;
.poseInReferenceSpace = pose;
}
XrSpace referenceSpace;
CHK_XR(xrCreateReferenceSpace(session, &createInfo, &referenceSpace));
// After usage
CHK_XR(xrDestroySpace(referenceSpace));
Ruang referensi UNBOUNDED_ANDROID
menetapkan asal posisi headset yang terkunci di dunia saat pelacakan perangkat dimulai. Sensor ini selaras dengan gravitasi untuk
mengecualikan pitch dan roll, dengan +X ke kanan, +Y ke atas, dan -Z ke depan.
Ruang UNBOUNDED_ANDROID
berguna saat aplikasi perlu merender
konten skala dunia yang melampaui batas satu STAGE
, misalnya, seluruh lantai atau beberapa lantai bangunan.
Ruang UNBOUNDED_ANDROID
mempertahankan stabilitas di dekat penampil dengan menyesuaikan
asalnya dari waktu ke waktu. Fitur ini dapat melakukan penyesuaian sedikit dan besar sesuai
kebutuhan untuk mempertahankan pelacakan perangkat.
- Runtime tidak boleh mengantrekan peristiwa XrEventDataReferenceSpaceChangePending sebagai respons terhadap penyesuaian kecil.
- Runtime harus mengantrekan peristiwa
XrEventDataReferenceSpaceChangePending sebagai respons terhadap
penyesuaian besar. Misalnya, pose dalam ruang
UNBOUNDED_ANDROID
direset karena kehilangan pelacakan dan pelacakan diaktifkan kembali pada estimasi dunia yang terputus ("peta baru"). - Sistem ini terus memperbarui pemahamannya tentang dunia dan menyesuaikan pelacakan perangkat. Jika aplikasi memerlukan lokasi yang dipertahankan terlepas dari reset pelacakan, anchor dapat digunakan dalam hal ini.
Peristiwa perubahan ruang referensi
Untuk parameter yang ditentukan oleh struktur XrEventDataReferenceSpaceChangePending yang ditampilkan pada peristiwa relokasi yang mengoptimalkan atau mengubah dunia:
typedef struct XrEventDataReferenceSpaceChangePending {
XrStructureType type;
const void* next;
XrSession session;
XrReferenceSpaceType referenceSpaceType;
XrTime changeTime;
XrBool32 poseValid;
XrPosef poseInPreviousSpace;
} XrEventDataReferenceSpaceChangePending;
Deskripsi Anggota
referenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
.changeTime
akan mewakiliXrTime
saat relokasi selesai.poseValid
akan menjadifalse
karena estimasi terputus atautrue
setelah terhubung kembali.poseInPreviousSpace
tidak akan valid jikaposeValid
adalahfalse
.
Saat tampilan, pengontrol, atau ruang lain mengalami kehilangan pelacakan relatif terhadap
ruang UNBOUNDED_ANDROID
, aplikasi dapat terus menerima nilai position
dan orientation
yang disimpulkan
atau yang diketahui terakhir. Pose yang disimpulkan ini dapat,
misalnya, didasarkan pada pembaruan model leher, dead reckoning inersia, atau
posisi yang diketahui terakhir. Aplikasi dapat mengasumsikan bahwa aplikasi akan terus menetapkan
XR_SPACE_LOCATION_POSITION_VALID_BIT
dan
XR_VIEW_STATE_POSITION_VALID_BIT
, tetapi
XR_SPACE_LOCATION_POSITION_TRACKED_BIT
dan
XR_VIEW_STATE_POSITION_TRACKED_BIT
dapat dihapus oleh runtime untuk menunjukkan
bahwa posisi disimpulkan atau diketahui terakhir dengan cara ini.
Saat pelacakan dipulihkan, runtime dapat memusatkan ulang origin secara arbitrer, misalnya memindahkan origin agar bertepatan dengan penampil. Aplikasi
dapat memeriksa nilai poseValid
yang ditampilkan dari
peristiwa XrEventDataReferenceSpaceChangePending untuk menentukan apakah nilai tersebut siap
digunakan.
Jenis Objek Baru
Jenis Tanda Baru
Konstanta Enum Baru
Enumerasi XrReferenceSpaceType diperluas dengan:
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
Enum Baru
Struktur Baru
Fungsi Baru
Masalah
Histori Versi
- Revisi 1, 12-09-2024 (Levana Chen)
- Deskripsi ekstensi awal