Name String
XR_ANDROID_unbounded_reference_space
एक्सटेंशन टाइप
इंस्टेंस एक्सटेंशन
रजिस्टर किया गया एक्सटेंशन नंबर
468
बदलाव
1
एक्सटेंशन और वर्शन की डिपेंडेंसी
पिछली बार बदलाव करने की तारीख
2024-09-12
आईपी स्टेटस
आईपी पर कोई दावा नहीं किया गया है.
योगदान देने वाले
स्पेंसर क्विन, Google
जेरेड फ़ाइंडर, Google
फ़ेंगताओ फ़ैन, Google
लैचलन फ़ोर्ड, Google
निहाव जैन, Google
लेवाना चेन, Google
खास जानकारी
इस एक्सटेंशन की मदद से, ऐप्लिकेशन UNBOUNDED_ANDROID
रेफ़रंस स्पेस बना सकते हैं. इस रेफ़रंस स्पेस की मदद से, दर्शक किसी जटिल परिवेश में आसानी से घूम सकता है. अक्सर, वह शुरू की जगह से कई मीटर दूर तक जा सकता है. साथ ही, दर्शक के आस-पास कोऑर्डिनेट सिस्टम को हमेशा ऑप्टिमाइज़ किया जाता है. डिवाइस, बेहतर तरीके से सीन को समझने के लिए अपने आस-पास के माहौल को ज़्यादा से ज़्यादा महसूस करता है. इसलिए, डिवाइस ट्रैकिंग को बनाए रखने के लिए, रेफ़रंस स्पेस के ऑरिजिन में बड़े बदलाव हो सकते हैं.
UNBOUNDED_ANDROID
रेफ़रंस स्पेस बनाने के लिए, ऐप्लिकेशन XrReferenceSpaceCreateInfo::referenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
को सेट कर सकता है और 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));
डिवाइस ट्रैकिंग शुरू होने पर, UNBOUNDED_ANDROID
रेफ़रंस स्पेस, हेडसेट की पोज़िशन का वर्ल्ड-लॉक किया गया ऑरिजिन सेट करता है. पिच और रोल को हटाने के लिए, इसे गुरुत्वाकर्षण के हिसाब से अलाइन किया गया है. इसमें +X को दाईं ओर, +Y को ऊपर, और -Z को आगे की ओर रखा गया है.
UNBOUNDED_ANDROID
स्पेस तब काम का होता है, जब किसी ऐप्लिकेशन को विश्व-स्तर का ऐसा कॉन्टेंट रेंडर करना हो जो एक STAGE
की सीमाओं से परे हो. उदाहरण के लिए, किसी इमारत का पूरा फ़्लोर या एक से ज़्यादा फ़्लोर.
UNBOUNDED_ANDROID
स्पेस, समय के साथ अपने ऑरिजिन में बदलाव करके, दर्शक के आस-पास स्थिरता बनाए रखता है. डिवाइस की ट्रैकिंग को बनाए रखने के लिए, ज़रूरत के हिसाब से इसमें थोड़े और ज़्यादा बदलाव किए जा सकते हैं.
- छोटे बदलावों के जवाब में, रनटाइम को XrEventDataReferenceSpaceChangePending इवेंट को सूची में नहीं जोड़ना चाहिए.
- बड़े बदलावों के जवाब में, रनटाइम को XrEventDataReferenceSpaceChangePending इवेंट को सूची में जोड़ना चाहिए. उदाहरण के लिए, ट्रैकिंग बंद होने की वजह से
UNBOUNDED_ANDROID
स्पेस में पोज़ को रीसेट किया जाता है. साथ ही, दुनिया के डिसकनेक्ट किए गए अनुमान (एक "नया मैप") पर ट्रैकिंग फिर से शुरू की जाती है. - सिस्टम, दुनिया के बारे में अपनी जानकारी को लगातार अपडेट करता रहता है और डिवाइस ट्रैकिंग में बदलाव करता रहता है. अगर किसी ऐप्लिकेशन को ट्रैकिंग रीसेट होने के बावजूद, जगह की जानकारी सेव रखने की ज़रूरत है, तो इस मामले में ऐंकर का इस्तेमाल किया जा सकता है.
स्पेस में बदलाव करने से जुड़ा इवेंट
XrEventDataReferenceSpaceChangePending स्ट्रक्चर से तय किए गए पैरामीटर के लिए, जो दुनिया के बदलाव या जगह के हिसाब से कॉन्टेंट को ऑप्टिमाइज़ करने वाले इवेंट के आधार पर दिखाए गए हैं:
typedef struct XrEventDataReferenceSpaceChangePending {
XrStructureType type;
const void* next;
XrSession session;
XrReferenceSpaceType referenceSpaceType;
XrTime changeTime;
XrBool32 poseValid;
XrPosef poseInPreviousSpace;
} XrEventDataReferenceSpaceChangePending;
पैसे चुकाकर बने सदस्यों के ब्यौरे
referenceSpaceType
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
है.changeTime
से उसXrTime
की जानकारी मिलेगी जिस दिन फिर से स्थानीय भाषा में अनुवाद पूरा हो गया.- डिसकनेक्ट होने की वजह से,
poseValid
की जगहfalse
दिखेगा. डिसकनेक्ट होने के बाद,true
दिखेगा. poseValid
केfalse
होने पर,poseInPreviousSpace
मान्य नहीं होगा.
जब व्यू, कंट्रोलर या अन्य स्पेस में UNBOUNDED_ANDROID
स्पेस के मुकाबले ट्रैकिंग में कमी आती है, तो ऐप्लिकेशन को अनुमानित या पिछली position
और orientation
वैल्यू मिलती रहती हैं. उदाहरण के लिए, ये अनुमानित पोज़, गर्दन के मॉडल के अपडेट, इनर्शियल डेड रेकिंग या आखिरी बार की गई गतिविधि के आधार पर हो सकते हैं. कोई ऐप्लिकेशन यह मान सकता है कि उसके पास
XR_SPACE_LOCATION_POSITION_VALID_BIT
और
XR_VIEW_STATE_POSITION_VALID_BIT
सेट रहेगा, लेकिन
XR_SPACE_LOCATION_POSITION_TRACKED_BIT
और
XR_VIEW_STATE_POSITION_TRACKED_BIT
को रनटाइम के दौरान मिटाया जा सकता है. इससे यह पता चलता है कि जगह की जानकारी का अनुमान लगाया गया है या यह पिछली बार मिली जानकारी है.
ट्रैकिंग वापस आने पर, रनटाइम हो सकता है कि ओरिजिन को मनमुताबिक फिर से बीच में ले आए. उदाहरण के लिए, ओरिजिन को दर्शक के हिसाब से ले जाना. कोई ऐप्लिकेशन, XrEventDataReferenceSpaceChangePending इवेंट से मिली poseValid
वैल्यू की जांच करके यह पता लगा सकता है कि वह इस्तेमाल के लिए तैयार है या नहीं.
नए ऑब्जेक्ट टाइप
फ़्लैग के नए टाइप
नई Enum Constant
XrReferenceSpaceType एनोटेशन को इनके साथ जोड़ा गया है:
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
नए Enums
नए स्ट्रक्चर
नए फ़ंक्शन
समस्याएं
वर्शन का इतिहास
- पहला बदलाव, 12-09-2024 (लेवन चेन)
- एक्सटेंशन के बारे में शुरुआती जानकारी