سلسلة الاسم
XR_ANDROID_unbounded_reference_space
نوع الإضافة
إضافة مثيل
رقم الإضافة المسجَّل
468
المراجعة
1
التبعيات المتعلّقة بالإصدارات والإضافات
تاريخ آخر تعديل
2024-09-12
حالة عنوان IP
ما مِن مطالبات معروفة بعناوين IP.
المساهمون
سبنسر كوين، 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
بعد إعادة الاتصال. - لن تكون قيمة
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 لتحديد ما إذا كان جاهزًا للاستخدام.
أنواع العناصر الجديدة
أنواع الإبلاغ الجديدة
ثوابت قائمة التعداد الجديدة
تمّت إضافة ما يلي إلى التعداد XrReferenceSpaceType:
XR_REFERENCE_SPACE_TYPE_UNBOUNDED_ANDROID
عمليات التعداد الجديدة
التصاميم الجديدة
الدوالّ الجديدة
المشاكل
سجلّ الإصدارات
- المراجعة 1، 12-09-2024 (ليفانا تشين)
- الوصف الأولي للإضافة