رشته نام
XR_ANDROID_unbounded_reference_space
نوع پسوند
پسوند نمونه
شماره برنامه افزودنی ثبت شده
468
تجدید نظر
1
وابستگی های افزونه و نسخه
آخرین تاریخ اصلاح
12-09-2024
وضعیت IP
هیچ ادعای IP شناخته شده ای وجود ندارد.
مشارکت کنندگان
اسپنسر کوین، گوگل
جارد فایندر، گوگل
فن فنگتائو، گوگل
لاچلان فورد، گوگل
نیهاو جین، گوگل
لوانا چن، گوگل
نمای کلی
این برنامه افزودنی به برنامه های کاربردی اجازه می دهد تا یک فضای مرجع 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
یک مبدأ قفل جهانی موقعیت هدست را تعیین می کند. با گرانش تراز شده است تا pitch and 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
پس از اتصال مجدد خواهد بود. - وقتی
poseValid
false
باشدposeInPreviousSpace
معتبر نخواهد بود.
هنگامی که نماها، کنترلکنندهها یا فضاهای دیگر نسبت به فضای 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
فهرست های جدید
ساختارهای جدید
توابع جدید
مسائل
تاریخچه نسخه
- بازبینی 1، 12/09/2024 (لوانا چن)
- توضیحات پسوند اولیه