מחרוזת שם
XR_ANDROID_unbounded_reference_space
סוג התוסף
תוסף למכונה
מספר תוסף רשום
468
גרסה
1
תלות בתוספים ובגרסאות
תאריך השינוי האחרון
2024-09-12
סטטוס כתובת ה-IP
לא ידוע על תלונות על הפרת זכויות יוצרים בנושא כתובת IP.
שותפים ביצירת התוכן
ספנסר קווין (Spencer Quin), Google
Jared Finder, Google
Fengtao Fan, Google
Lachlan Ford, Google
Nihav Jain, Google
לבנה צ'ן, Google
סקירה כללית
התוסף הזה מאפשר לאפליקציות ליצור מרחב UNBOUNDED_ANDROID
מרומז. מרחב העזר הזה מאפשר לצופה לנוע בחופשיות בסביבה מורכבת, לעתים קרובות במרחק רב מהמקום שבו הוא התחיל, תוך אופטימיזציה מתמדת לשמירה על יציבות של מערכת הקואורדינטות ליד הצופה. ככל שהמכשיר מזהה יותר מהסביבה שלו כדי ליצור הבנה טובה יותר של הסצנה, המקור של מרחב העזר יכול לנדוד עם התאמות גדולות לפי הצורך כדי לשמור על מעקב אחר המכשיר.
כדי ליצור מרחב עזר מסוג UNBOUNDED_ANDROID
, האפליקציה יכולה להגדיר את הערך XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
למאפיין XrReferenceSpaceCreateInfo::referenceSpaceType ולהעביר אותו ל-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
יוצר מקור של מיקום האוזניות ביחס לעולם, כשהמעקב אחרי המכשיר מתחיל. הוא מיושר לפי כוח הכבידה כדי להחריג את הטיה (pitch) וסיבוב (roll), כאשר +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
אחרי החיבור מחדש.- הערך של
poseInPreviousSpace
לא יהיה תקף כאשר הערך שלposeValid
הואfalse
.
כשיש אובדן מעקב ביחס למרחב 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
יימחקו בסביבת זמן הריצה כדי לציין שהמיקום נגזר או שהוא המיקום הידוע האחרון.
כשהמעקב מתאושש, סביבת זמן הריצה עשויה למרכז את המקור באופן שרירותי, למשל להזיז את המקור כך שיתאים לצופה. אפליקציה יכולה לבדוק את הערך poseValid
שמוחזר מהאירוע XrEventDataReferenceSpaceChangePending כדי לקבוע אם היא מוכנה לשימוש.
סוגי אובייקטים חדשים
סוגי דגלים חדשים
קבועים חדשים של Enum
המניין XrReferenceSpaceType הורחב עם:
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
משתני Enum חדשים
מבנים חדשים
פונקציות חדשות
בעיות
היסטוריית הגרסאות
- גרסה 1, 12 בספטמבר 2024 (Levana Chen)
- תיאור ראשוני של התוסף