XR_ANDROID_spatial_anchor_space
Name String
XR_ANDROID_spatial_anchor_space
एक्सटेंशन का टाइप
इंस्टेंस एक्सटेंशन
रजिस्टर किया गया एक्सटेंशन नंबर
796
बदलाव
1
पुष्टि की स्थिति
मंज़ूरी नहीं मिली
एक्सटेंशन और वर्शन डिपेंडेंसी
XR_EXT_spatial_anchor
पिछली बार बदलाव किए जाने की तारीख
2025-09-15
आईपी स्टेटस
बौद्धिक संपत्ति से जुड़े किसी दावे की जानकारी नहीं है.
योगदान देने वाले
युशेंग चांग, Google
काइल चेन, Google
लेवाना चेन, Google
निहाव जैन, Google
स्पेंसर क्विन, Google
खास जानकारी
XR_EXT_spatial_anchor एक्सटेंशन में तय किया गया xrCreateSpatialAnchorEXT फ़ंक्शन, ऐप्लिकेशन को XrSpatialEntityEXT हैंडल के साथ स्पेशल ऐंकर बनाने की अनुमति देता है. इसके उलट, यह एक्सटेंशन एक स्पेशल ऐंकर बनाता है, जिसे XrSpace हैंडल से दिखाया जाता है. यह उन मामलों में काम आता है जहां ऐप्लिकेशन को:
- एंकर की जगह की जानकारी पाने के लिए, xrLocateSpaces का इस्तेमाल करें.
- एंकर के हिसाब से अन्य स्पेस ढूंढें.
XR_ANDROID_anchor_sharing_exportका इस्तेमाल करके ऐंकर को एक्सपोर्ट करें.- ऐप्लिकेशन ने ऐंकर सेट कर दिए हैं और अब उसे सिर्फ़ ऐंकर की जगह की जानकारी से मतलब है, ताकि वर्चुअल कॉन्टेंट को अटैच किया जा सके. उसे ऐंकर बनाने के लिए इस्तेमाल किए गए XrSpatialContextEXT की मदद से खोजी गई किसी भी अन्य इकाई के किसी अन्य कॉम्पोनेंट से कोई मतलब नहीं है. इससे ऐप्लिकेशन को स्पेशल कॉन्टेक्स्ट को खत्म करने की अनुमति मिलती है.
इस एक्सटेंशन की मदद से बनाए गए ऐंकर, XR_ANDROID_device_anchor_persistence एक्सटेंशन का इस्तेमाल करके सेव नहीं किए जा सकते. इसके बजाय, ऐप्लिकेशन को XR_EXT_spatial_persistence_operations का इस्तेमाल करना चाहिए. अगर XrPersistedAnchorSpaceInfoANDROID :: anchor को xrCreateSpatialAnchorSpaceANDROID या xrCreateSpatialAnchorSpaceFromIdANDROID का इस्तेमाल करके बनाया गया है, तो रनटाइम को xrPersistAnchorANDROID से XR_ERROR_VALIDATION_FAILURE दिखाना चाहिए.
स्पेशल ऐंकर के लिए XrSpace बनाना
स्पेशल ऐंकर और स्पेस बनाना
xrCreateSpatialAnchorSpaceANDROID फ़ंक्शन को इस तरह से तय किया गया है:
XrResult xrCreateSpatialAnchorSpaceANDROID(
XrSession session,
XrSpatialContextEXT spatialContext,
const XrSpatialAnchorCreateInfoEXT* createInfo,
XrSpatialEntityIdEXT* anchorEntityId,
XrSpace* anchorSpace);
पैरामीटर की जानकारी
session, XrSession का हैंडल है. इसे पहले xrCreateSession की मदद से बनाया गया थाspatialContextएक XrSpatialContextEXT है, जिसे पहले xrCreateSpatialContextAsyncEXT का इस्तेमाल करके बनाया गया था.createInfo, XrSpatialAnchorCreateInfoEXT का पॉइंटर है .anchorEntityId,XrSpatialEntityIdEXTका पॉइंटर है .anchorSpace, XrSpace का पॉइंटर है.
xrCreateSpatialAnchorSpaceANDROID फ़ंक्शन, एक ऐंकर बनाता है. यह ऐंकर, XrSpatialEntityIdEXT और XrSpace हैंडल को आउटपुट करता है. xrCreateSpatialAnchorSpaceANDROID के लिए, पुष्टि करने की ज़रूरी शर्तें xrCreateSpatialAnchorEXT जैसी ही हैं.
अगर xrCreateSpatialAnchorSpaceANDROID को पास किए गए XrSpatialContextEXT को XR_SPATIAL_CAPABILITY_ANCHOR_EXT के साथ कॉन्फ़िगर नहीं किया गया है, तो रनटाइम को XR_ERROR_VALIDATION_FAILURE दिखाना चाहिए.
xrCreateSpatialAnchorSpaceANDROID से बनाए गए ऐंकर को खोजने लायक बनाने के लिए, xrCreateSpatialAnchorEXT की खास जानकारी का आखिरी पैराग्राफ़ लागू होता है.
सही इस्तेमाल (इंप्लिसिट)
- xrCreateSpatialAnchorSpaceANDROID को कॉल करने से पहले,
XR_ANDROID_spatial_anchor_spaceएक्सटेंशन चालू होना ज़रूरी है -
sessionएक मान्य XrSession हैंडल होना चाहिए -
spatialContextएक मान्य XrSpatialContextEXT हैंडल होना चाहिए -
createInfoको किसी मान्य XrSpatialAnchorCreateInfoEXT स्ट्रक्चर का पॉइंटर होना चाहिए -
anchorEntityIdकोXrSpatialEntityIdEXTवैल्यू का पॉइंटर होना चाहिए -
anchorSpaceको XrSpace हैंडल का पॉइंटर होना चाहिए -
spatialContextकोsessionसे बनाया, असाइन या वापस लाया गया होना चाहिए
रिटर्न कोड
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_POSE_INVALIDXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_SPATIAL_ANCHOR_ATTACHABLE_COMPONENT_NOT_FOUND_ANDROIDXR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXTXR_ERROR_TIME_INVALIDXR_ERROR_VALIDATION_FAILURE
किसी मौजूदा स्पेशल ऐंकर से XrSpace बनाना
xrCreateSpatialAnchorSpaceFromIdANDROID फ़ंक्शन को इस तरह से तय किया गया है:
XrResult xrCreateSpatialAnchorSpaceFromIdANDROID(
XrSession session,
XrSpatialContextEXT spatialContext,
const XrSpatialAnchorSpaceFromIdCreateInfoANDROID* createInfo,
XrSpace* anchorSpace);
पैरामीटर की जानकारी
session, XrSession का हैंडल है. इसे पहले xrCreateSession की मदद से बनाया गया थाspatialContextएक XrSpatialContextEXT है, जिसे पहले xrCreateSpatialContextAsyncEXT का इस्तेमाल करके बनाया गया था.createInfo, XrSpatialAnchorSpaceFromIdCreateInfoANDROID का पॉइंटर है.anchorSpace, XrSpace का पॉइंटर है.
ऐसी स्थितियों में जहां स्पेशल ऐंकर इकाइयां पहले से मौजूद हैं (उदाहरण के लिए, पर्सिस्टेंस की वजह से), ऐप्लिकेशन इन स्पेशल ऐंकर से XrSpace बना सकते हैं. इसके लिए, उन्हें अपनी स्पेशल इकाई आईडी उपलब्ध कराने होंगे.
xrCreateSpatialAnchorSpaceFromIdANDROID फ़ंक्शन, XrSpace हैंडल बनाता है. इसके लिए, XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId फ़ील्ड में XrSpatialEntityIdEXT देना होता है.
अगर xrCreateSpatialAnchorSpaceFromIdANDROID को पास किए गए XrSpatialContextEXT को XR_SPATIAL_CAPABILITY_ANCHOR_EXT के साथ कॉन्फ़िगर नहीं किया गया है, तो रनटाइम को XR_ERROR_VALIDATION_FAILURE दिखाना चाहिए.
सही इस्तेमाल (इंप्लिसिट)
- xrCreateSpatialAnchorSpaceFromIdANDROID को कॉल करने से पहले,
XR_ANDROID_spatial_anchor_spaceएक्सटेंशन को चालू करना ज़रूरी है -
sessionएक मान्य XrSession हैंडल होना चाहिए -
spatialContextएक मान्य XrSpatialContextEXT हैंडल होना चाहिए -
createInfoको किसी मान्य XrSpatialAnchorSpaceFromIdCreateInfoANDROID स्ट्रक्चर का पॉइंटर होना चाहिए -
anchorSpaceको XrSpace हैंडल का पॉइंटर होना चाहिए -
spatialContextकोsessionसे बनाया, असाइन या वापस लाया गया होना चाहिए
रिटर्न कोड
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROIDXR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXTXR_ERROR_VALIDATION_FAILURE
XrSpatialAnchorSpaceFromIdCreateInfoANDROID स्ट्रक्चर को इस तरह से तय किया गया है:
typedef struct XrSpatialAnchorSpaceFromIdCreateInfoANDROID {
XrStructureType type;
const void* next;
XrSpatialEntityIdEXT anchorEntityId;
} XrSpatialAnchorSpaceFromIdCreateInfoANDROID;
सदस्यों की जानकारी
type, इस स्ट्रक्चर का XrStructureType है.next,NULLहै या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर है.anchorEntityId, मौजूदा स्पेशल ऐंकर काXrSpatialEntityIdEXTहै. इससे XrSpace बनाया जाता है.
अगर XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId, spatialContext के लिए मान्य आईडी नहीं है, तो रनटाइम को XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT दिखाना चाहिए .
अगर XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId, ऐंकर के लिए मान्य इकाई आईडी नहीं है, तो रनटाइम को XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID दिखाना चाहिए.
सही इस्तेमाल (इंप्लिसिट)
- XrSpatialAnchorSpaceFromIdCreateInfoANDROID का इस्तेमाल करने से पहले,
XR_ANDROID_spatial_anchor_spaceएक्सटेंशन चालू करना ज़रूरी है -
typeकी वैल्यूXR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROIDहोनी चाहिए -
nextNULLया स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर होना चाहिए
ऐंकर लाइफ़साइकल
XrSpace हैंडल का पैरंट, XrSession होता है. इसका मतलब है कि ऐंकर को दिखाने वाला XrSpace हैंडल, xrCreateSpatialAnchorSpaceFromIdANDROID :: spatialContext या xrCreateSpatialAnchorSpaceANDROID :: spatialContext के खत्म होने के बाद भी मान्य रहता है. स्पेशल एंटिटी ऐंकर को दिखाने के लिए XrSpace बनाने से, ऐप्लिकेशन XR_SPATIAL_CAPABILITY_ANCHOR_EXT के साथ कॉन्फ़िगर किए गए XrSpatialContextEXT को खत्म कर सकता है.हालांकि, इसके लिए xrLocateSpaces के साथ XrSpace का इस्तेमाल करके, ऐंकर की नई पोज़िशन की जानकारी मिलती रहनी चाहिए. इसका मतलब है कि रनटाइम को तब तक ऐंकर को ट्रैक करना चाहिए, जब तक उसे दिखाने वाले सभी XrSpace हैंडल खत्म नहीं हो जाते.
कोड का उदाहरण
XrSpace के तौर पर स्पेशल ऐंकर बनाएं
यहां दिए गए कोड के उदाहरण से पता चलता है कि स्पेशल ऐंकर कैसे बनाया जाता है और उसे XrSpace के तौर पर कैसे दिखाया जाता है.
XrSpatialEntityIdEXT spatialAnchorEntityId;
XrSpace spatialAnchorSpace {XR_NULL_HANDLE}; // XrSpace handle of anchor
// Spatial anchor create info
XrSpatialAnchorCreateInfoEXT createInfo{
.type = XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_EXT,
.baseSpace = localSpace,
.time = predictedDisplayTime,
.pose = {{0, 0, 0, 1}, {1, 1, 1}},
};
// Create spatial anchor using the new API
CHK_XR(xrCreateSpatialAnchorSpaceANDROID(session, spatialContext, &createInfo, &spatialAnchorEntityId, &spatialAnchorSpace));
// ...
ऐंकर इकाई आईडी से XrSpace बनाएं
यहां दिए गए उदाहरण में, पहले से मौजूद ऐंकर इकाई आईडी से XrSpace बनाने का तरीका बताया गया है.
XrSpace anchorSpace = XR_NULL_HANDLE;
// Spatial anchor from XrSpace create info
XrSpatialAnchorSpaceFromIdCreateInfoANDROID createInfoFromId{
.type = XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID,
.anchorEntityId = spatialAnchorEntityId,
};
// Create XrSpace handle from spatial anchor ID
CHK_XR(xrCreateSpatialAnchorSpaceFromIdANDROID(session, spatialContext, &createInfoFromId, &anchorSpace));
// ...
नए निर्देश
नए स्ट्रक्चर
नए Enum कॉन्सटेंट
XR_ANDROID_SPATIAL_ANCHOR_SPACE_EXTENSION_NAMEXR_ANDROID_spatial_anchor_space_SPEC_VERSIONXrResult को एक्सटेंड करना :
XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID
XrStructureType को एक्सटेंड करना :
XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID
समस्याएं
वर्शन हिस्ट्री
पहला संशोधन, 15-09-2025 (यूशेंग चांग, काइल चेन)
- एक्सटेंशन का शुरुआती ब्यौरा.