XR_ANDROID_spatial_anchor_space
מחרוזת שם
XR_ANDROID_spatial_anchor_space
סוג התוסף
תוסף למכונה
מספר השלוחה הרשום
796
גרסה
1
סטטוס האישור
לא אושר
תלויות של תוספים וגרסאות
XR_EXT_spatial_anchor
תאריך השינוי האחרון
2025-09-15
סטטוס IP
אין תלונות ידועות על הפרת קניין רוחני.
שותפים ביצירת התוכן
יושנג צ'אנג, Google
קייל צ'ן, Google
לבנה צ'ן, Google
ניהב ג'יין, Google
ספנסר קווין, Google
סקירה כללית
הפונקציה xrCreateSpatialAnchorEXT שמוגדרת בתוסף XR_EXT_spatial_anchor מאפשרת לאפליקציות ליצור נקודות עיגון במרחב עם נקודת אחיזה (handle) מסוג XrSpatialEntityEXT כדי לייצג אותן. לעומת זאת, התוסף הזה יוצר עוגן מרחבי שמיוצג על ידי נקודת אחיזה של XrSpace. האפשרות הזו שימושית במקרים שבהם האפליקציה רוצה:
- משתמשים ב-xrLocateSpaces כדי לקבל את המיקום של נקודת העיגון.
- לאתר מרחבים אחרים ביחס לנקודת העיגון.
- מייצאים את העוגן באמצעות
XR_ANDROID_anchor_sharing_export. - האפליקציה הציבה עוגנים, ועכשיו היא מתמקדת רק במיקום של העוגנים (כדי לצרף תוכן וירטואלי), ולא מתמקדת ברכיבים אחרים של ישויות אחרות שזוהו באמצעות XrSpatialContextEXT ששימש ליצירת העוגן. כך האפליקציה יכולה להרוס את ההקשר המרחבי.
אי אפשר לשמור עוגנים שנוצרו באמצעות התוסף הזה באמצעות התוסף XR_ANDROID_device_anchor_persistence, ובמקום זאת האפליקציה חייבת להשתמש ב-XR_EXT_spatial_persistence_operations . סביבת זמן הריצה חייבת להחזיר את הערך XR_ERROR_VALIDATION_FAILURE מ-xrPersistAnchorANDROID אם XrPersistedAnchorSpaceInfoANDROID :: anchor נוצר באמצעות xrCreateSpatialAnchorSpaceANDROID או xrCreateSpatialAnchorSpaceFromIdANDROID .
יצירת 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 .
זמן הריצה חייב להחזיר את הערך XR_ERROR_VALIDATION_FAILURE אם XrSpatialContextEXT שהועבר אל xrCreateSpatialAnchorSpaceANDROID לא הוגדר עם XR_SPATIAL_CAPABILITY_ANCHOR_EXT .
בנוגע ליכולת הגילוי של נקודת העיגון שנוצרה על ידי xrCreateSpatialAnchorSpaceANDROID , הפסקה האחרונה במפרט של xrCreateSpatialAnchorEXT חלה.
שימוש תקין (משתמע)
- חובה להפעיל את התוסף
XR_ANDROID_spatial_anchor_spaceלפני שקוראים לפונקציה xrCreateSpatialAnchorSpaceANDROID -
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 יוצרת נקודת אחיזה (handle) מסוג XrSpace על ידי ציון XrSpatialEntityIdEXT בשדה XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId.
זמן הריצה חייב להחזיר את הערך XR_ERROR_VALIDATION_FAILURE אם XrSpatialContextEXT שהועבר אל xrCreateSpatialAnchorSpaceFromIdANDROID לא הוגדר עם XR_SPATIAL_CAPABILITY_ANCHOR_EXT .
שימוש תקין (משתמע)
- חובה להפעיל את התוסף
XR_ANDROID_spatial_anchor_spaceלפני שקוראים לפונקציה xrCreateSpatialAnchorSpaceFromIdANDROID -
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 .
זמן הריצה חייב להחזיר את הערך XR_ERROR_SPATIAL_ENTITY_ID_INVALID_EXT אם XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId הוא לא מזהה תקין של spatialContext .
זמן הריצה חייב להחזיר את הערך XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID אם XrSpatialAnchorSpaceFromIdCreateInfoANDROID ::entityId הוא לא מזהה ישות תקין של עוגן.
שימוש תקין (משתמע)
- חובה להפעיל את התוסף
XR_ANDROID_spatial_anchor_spaceלפני שמשתמשים ב-XrSpatialAnchorSpaceFromIdCreateInfoANDROID -
typeחייב להיותXR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID -
nextחייב להיותNULLאו מצביע תקין למבנה הבא בשרשרת מבנים
מחזור החיים של העוגן
ההורה של נקודת אחיזה מסוג XrSpace הוא XrSession . זה אומר שהכינוי XrSpace שמייצג את נקודת העיגון נשאר תקף גם אחרי ש-xrCreateSpatialAnchorSpaceFromIdANDROID :: spatialContext או xrCreateSpatialAnchorSpaceANDROID :: spatialContext נהרסים. יצירת XrSpace שמייצג עוגן של ישות מרחבית מאפשרת לאפליקציה להרוס את ה-XrSpatialContextEXT שהוגדר באמצעות XR_SPATIAL_CAPABILITY_ANCHOR_EXT, ועדיין להמשיך לקבל את התנוחה האחרונה של העוגן באמצעות ה-XrSpace שלו עם xrLocateSpaces, כלומר זמן הריצה חייב להמשיך לעקוב אחרי העוגן עד שכל נקודות האחיזה של 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_VERSIONהרחבת XrResult :
XR_ERROR_SPATIAL_ANCHOR_ENTITY_ID_INVALID_ANDROID
הרחבה של XrStructureType :
XR_TYPE_SPATIAL_ANCHOR_SPACE_FROM_ID_CREATE_INFO_ANDROID
בעיות
היסטוריית הגרסאות
גרסה 1, 15 בספטמבר 2025 (YuSheng Chang, Kyle Chen)
- תיאור התוסף הראשוני.