XR_ANDROID_unbounded_reference_space پسوند OpenXR

رشته نام

XR_ANDROID_unbounded_reference_space

نوع پسوند

پسوند نمونه

شماره برنامه افزودنی ثبت شده

468

تجدید نظر

1

وابستگی های افزونه و نسخه

OpenXR 1.0

آخرین تاریخ اصلاح

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 (لوانا چن)
    • توضیحات پسوند اولیه