Ad dizesi
XR_ANDROID_unbounded_reference_space
Uzantı Türü
Örnek uzatma
Kayıtlı Uzatma Numarası
468
Düzeltme
1
Uzantı ve Sürüm Bağımlılıkları
Son Değiştirilme Tarihi
2024-09-12
IP Durumu
Bilinen IP hak talepleri yok.
Katkıda bulunanlar
Spencer Quin, Google
Jared Finder, Google
Fengtao Fan, Google
Lachlan Ford, Google
Nihav Jain, Google
Levana Chen, Google
Genel Bakış
Bu uzantı, uygulamaların UNBOUNDED_ANDROID
referans alanı oluşturmasına olanak tanır. Bu referans alanı, izleyicinin karmaşık bir ortamda genellikle başladığı yerden çok metre uzaktayken bile özgürce hareket etmesine olanak tanır. Bu sırada izleyicinin yakınındaki koordinat sistemi kararlılığı için her zaman optimizasyon yapılır. Cihaz, daha iyi bir sahne anlayışı oluşturmak için ortamını daha fazla algıladıkça referans alanının orijini, cihaz takibini sürdürmek için gerektiğinde büyük ayarlamalar ile kayabilir.
Uygulama, UNBOUNDED_ANDROID
referans alanı oluşturmak için XrReferenceSpaceCreateInfo::referenceSpaceType değerini XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
ayarlayabilir ve xrCreateReferenceSpace işlevine iletebilir.
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));
UNBOUNDED_ANDROID
referans alanı, cihaz izleme başladığında kulaklığın konumunun dünyaya kilitlenmiş bir orijinini oluşturur. +X sağa, +Y yukarı ve -Z öne bakacak şekilde, eğim ve yuvarlanma hariç tutulacak şekilde yerçekimi ile hizalanır.
UNBOUNDED_ANDROID
alanı, bir uygulamanın tek bir STAGE
sınırlarının ötesine geçen dünya ölçeğinde içerik oluşturması gerektiğinde (ör. bir binanın tüm katları veya birden fazla katı) kullanışlıdır.
UNBOUNDED_ANDROID
alanı, orijinini zaman içinde ayarlayarak izleyiciye yakın bir yerde sabit kalır. Cihaz izlemeyi sürdürmek için gerektiğinde küçük ve büyük ayarlamalar yapabilir.
- Çalışma zamanı, küçük düzenlemelere yanıt olarak XrEventDataReferenceSpaceChangePending etkinliğini sıraya almamalıdır.
- Çalışma zamanı, büyük düzenlemelere yanıt olarak XrEventDataReferenceSpaceChangePending etkinliğini sıraya koymalıdır. Örneğin,
UNBOUNDED_ANDROID
alanındaki duruş, izleme kaybı nedeniyle sıfırlanır ve izleme, dünyanın bağlantısı kesilmiş bir tahmininde ("yeni harita") yeniden kurulur. - Sistem, dünyayı algılama şeklini sürekli olarak günceller ve cihaz takibini düzenler. Bir uygulama, izleme sıfırlamalarından bağımsız olarak kalıcı bir konum gerektiriyorsa bu durumda bir ankraj kullanılabilinir.
Referans alanı değiştirme etkinliği
Dünyayı değiştirme veya yeniden yerelleştirme etkinliklerini optimize etme işlemlerinde döndürülen XrEventDataReferenceSpaceChangePending yapısıyla tanımlanan parametreler için:
typedef struct XrEventDataReferenceSpaceChangePending {
XrStructureType type;
const void* next;
XrSession session;
XrReferenceSpaceType referenceSpaceType;
XrTime changeTime;
XrBool32 poseValid;
XrPosef poseInPreviousSpace;
} XrEventDataReferenceSpaceChangePending;
Üye Açıklamaları
referenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
.changeTime
, yeniden yerelleştirmenin tamamlandığıXrTime
değerini temsil eder.poseValid
, bağlantısı kesilmiş tahmin nedeniylefalse
olur veya yeniden bağlandıktan sonratrue
olur.poseValid
false
olduğundaposeInPreviousSpace
geçerli olmaz.
Görünümler, denetleyiciler veya diğer alanlar UNBOUNDED_ANDROID
alanına göre izleme kaybı yaşadığında uygulamalar, position
ve orientation
değerlerini tahmin edilen veya bilinen son değerlerle almaya devam edebilir. Bu türden tahmin edilen duruşlar, örneğin boyun modeli güncellemelerini, eylemsiz seyrüsefer hesaplamalarını veya bilinen son konumu temel alabilir. Bir uygulama, XR_SPACE_LOCATION_POSITION_VALID_BIT
ve XR_VIEW_STATE_POSITION_VALID_BIT
değerlerinin ayarlanmaya devam edeceğini varsayabilir ancak XR_SPACE_LOCATION_POSITION_TRACKED_BIT
ve XR_VIEW_STATE_POSITION_TRACKED_BIT
, konumun bu şekilde tahmin edildiğini veya bilinen son konum olduğunu belirtmek için çalışma zamanında temizlenebilir.
İzleme kurtarıldığında çalışma zamanı, kaynağı keyfi olarak yeniden merkeze alabilir (ör. kaynağı izleyiciyle aynı hizada olacak şekilde taşıyabilir). Bir uygulama, kullanıma hazır olup olmadığını belirlemek için XrEventDataReferenceSpaceChangePending etkinliğinden döndürülen poseValid
değerini kontrol edebilir.
Yeni Nesne Türleri
Yeni İşaret Türleri
Yeni Enum Constants
XrReferenceSpaceType dizini aşağıdakilerle genişletildi:
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
Yeni Sıralamalar
Yeni Yapılar
Yeni İşlevler
Sorunlar
Sürüm Geçmişi
- Düzeltme 1, 12.09.2024 (Levana Chen)
- İlk uzantı açıklaması