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);

पैरामीटर की जानकारी

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_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_POSE_INVALID
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_SPATIAL_ANCHOR_ATTACHABLE_COMPONENT_NOT_FOUND_ANDROID
  • XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_VALIDATION_FAILURE

किसी मौजूदा स्पेशल ऐंकर से XrSpace बनाना

xrCreateSpatialAnchorSpaceFromIdANDROID फ़ंक्शन को इस तरह से तय किया गया है:

XrResult xrCreateSpatialAnchorSpaceFromIdANDROID(
    XrSession                                   session,
    XrSpatialContextEXT                         spatialContext,
    const XrSpatialAnchorSpaceFromIdCreateInfoANDROID* createInfo,
    XrSpace*                                    anchorSpace);

पैरामीटर की जानकारी

ऐसी स्थितियों में जहां स्पेशल ऐंकर इकाइयां पहले से मौजूद हैं (उदाहरण के लिए, पर्सिस्टेंस की वजह से), ऐप्लिकेशन इन स्पेशल ऐंकर से 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_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID
  • XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT
  • XR_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 दिखाना चाहिए.

सही इस्तेमाल (इंप्लिसिट)

ऐंकर लाइफ़साइकल

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_NAME
  • XR_ANDROID_spatial_anchor_space_SPEC_VERSION
  • XrResult को एक्सटेंड करना :

    • XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID
  • XrStructureType को एक्सटेंड करना :

    • XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID

समस्याएं

वर्शन हिस्ट्री

  • पहला संशोधन, 15-09-2025 (यूशेंग चांग, काइल चेन)

    • एक्सटेंशन का शुरुआती ब्यौरा.