توسعه با OpenXR

دستگاه‌های XR واجدشرایط
این راهنمایی به شما کمک می‌کند برای این نوع دستگاه‌های واقعیت گسترده تجربه بسازید.
هدست‌های واقعیت گسترده
عینک واقعیت گسترده سیمی

 

نشان‌واره نوشتاری OpenXR

Android XR از برنامه‌های ساخته‌شده با OpenXR ازطریق پشتیبانی خود از مشخصات OpenXR 1.1 و افزونه‌های فروشنده منتخب پشتیبانی می‌کند. ‫OpenXR یک استاندارد باز است که به شما امکان می‌دهد بااستفاده از مجموعه‌ای مشترک از میاناهای برنامه‌سازی کاربردی در طیف گسترده‌ای از دستگاه‌های واقعیت گسترده، تجربه‌های فراگیر و تعاملی ایجاد کنید.

ویژگی‌ها

Android XR از ویژگی‌هایی پشتیبانی می‌کند که به شما امکان می‌دهد بااستفاده از OpenXR برنامه‌هایی بسازید که از قابلیت‌های منحصربه‌فرد دستگاه‌های XR نهایت استفاده را ببرند. این ویژگی‌ها شامل موارد زیر است.

چارچوب نهاد فضایی
پایه‌ای یکپارچه برای درک صحنه و استدلال فضایی. برنامه‌ها را قادر می‌سازد تا موجودیت‌های فضایی فیزیکی را در محیط (ازجمله صفحه‌ها، مش‌های سه‌بعدی، جعبه‌های مرزی، تصاویر، نشانگرها، و حاشیه‌نویسی‌ها) کشف، پُرسمان، و ردیابی کنند، کشف را بااستفاده از مرزهای فضایی فیلتر کنند، کهن‌الگوهای موجودیت را پُرسمان کنند، لنگرهای فضایی متصل به موجودیت‌ها را ایجاد کنند، موجودیت فضایی و پرتوتابی مش را انجام دهند، و موجودیت‌های فضایی را در جلسه‌های برنامه حفظ کنند.
ظروف فضایی
یک میانای برنامه‌سازی کاربردی پنجره‌بندی فضایی چندسکویی (XR_EXT_spatial_container و XR_EXT_spatial_container_self_rendering) که به برنامه‌ها امکان می‌دهد بااستفاده از زنجیره‌های تعویض OpenXR و لایه‌های ترکیب، محفظه‌های فضایی سه‌بعدی قابل‌نمایش (هم محدود و هم فراگیر) ایجاد و پرداز کنند، و به کاربران اجازه می‌دهد چند محفظه فضایی را به‌طور هم‌زمان تجربه کنند.
لنگرهای زمین‌مکانی و زمین‌مکانی
برنامه‌ها را قادر می‌سازد تا بااستفاده از «سرویس موقعیت‌یابی بصری» (VPS) و GPS متعلق به Google، ژست‌های مرتبط با زمین را ردیابی کنند، با سرویس‌های Google Cloud اصالت‌سنجی کنند، و «لنگرهای جغرافیایی» و «لنگرهای سطحی» را در عرض‌های جغرافیایی، طول‌های جغرافیایی، و ارتفاع‌های خاص قرار دهند.
قابل‌ردیابی
از تشخیص سطح پشتیبانی می‌کند که توانایی شناسایی و ردیابی سطوح صاف در محیط است و امکان قرار دادن اشیای مجازی را در ارتباط با دنیای واقعی فراهم می‌کند، و از لنگرها پشتیبانی می‌کند که نقاط مرجع مجازی هستند که می‌توانند به اشیا یا مکان‌های دنیای واقعی متصل شوند تا محتوای مجازی حتی با حرکت کاربر در اطراف، به‌طور دقیق در موقعیت و جهت خود باقی بماند.
پرتواندازی
تکنیکی که برای تعیین نقطه تقاطع بین یک پرتو مجازی و اشیا یا مش‌های جهانی در صحنه استفاده می‌شود و تعاملاتی مانند انتخاب و دستکاری عناصر مجازی را تسهیل می‌کند.
پایداری لنگر
قابلیت ذخیره و بازیابی لنگرها در چندین جلسه، که امکان قرار دادن پایدار و یکپارچه محتوای مجازی را در محیط فراهم می‌کند.
ردگیری اشیا
امکان ردیابی موشواره، صفحه‌کلید، و دیگر اشیای فیزیکی در دنیای واقعی.
ردگیری تصویر و نشانگر
توانایی تشخیص و ردیابی تصاویر مرجع مسطح و نشانگرهای فیزیکی (مانند AprilTags و نشانگرهای ArUco) در محیط.
ردیابی رمزینه پاسخ‌سریع
امکان ردیابی رمزینه‌های پاسخ‌سریع در محیط فیزیکی و رمزگشایی داده‌های آن‌ها.
بافت‌های عمق
تولید نقشه‌های عمق که اطلاعاتی درباره فاصله بین دوربین و اشیاء موجود در صحنه ارائه می‌دهند و جلوه‌های انسداد و تعامل واقع‌گرایانه‌تری را ممکن می‌سازند.
دریچه
توانایی ترکیب فیلم دوربین دنیای واقعی با محتوای مجازی، ایجاد تجربه واقعیت ترکیبی که به‌طور یکپارچه دنیای فیزیکی و دیجیتال را ترکیب می‌کند.
کم‌نور کردن سراسری نمای بیرونی
به برنامه‌ها اجازه می‌دهد سطح کم‌نور شدن سراسری را تنظیم و جستجو کنند تا محتوای مجازی با محیط فیزیکی ترکیب شود، و وقتی سطح کم‌نور شدن تغییر می‌کند، رویدادها را دریافت کنند.
محو کردن ناحیه نمایش
ناحیه محیطی محوشده را که توسط زمان اجرا اعمال شده است نشان می‌دهد تا برنامه‌ها بتوانند عناصر میانای کاربر را در ناحیه امنی که تحت‌تأثیر محو شدن محیطی قرار نگرفته است بچینند.
مش‌بندی صحنه
توانایی به‌دست آوردن مش سه‌بعدی از محیط که می‌تواند برای فیزیک، انسداد، و دیگر تعاملات آگاه از جهان استفاده شود.
انتقال لایه ترکیب‌بندی
امکان برش لایه ترکیب‌بندی عبور چندضلعی را فراهم می‌کند، می‌تواند برای آوردن اشیای دنیای واقعی به صحنه استفاده شود.
ردیابی چهره
توانایی ردیابی ویژگی‌های چهره کاربر از منابع داده‌های دیداری و شنیداری، که امکان ایجاد چهرک‌ها و شخصیت‌های مجازی واقع‌گرایانه‌تر و گویاتر را فراهم می‌کند.
ردگیری چشم
موقعیت و جهت چشم کاربر را ارائه می‌دهد که برای واقعی‌تر کردن حالت چشم چهرک‌ها طراحی شده است.
ردیابی دست
امکان ردیابی موقعیت و حرکت دست‌های کاربر.
شبکه توری دست
نمایش دقیقی از دست‌های کاربر به‌صورت مش چندضلعی کم ارائه می‌دهد. برای ارسال از پلاتفرم به برنامه بهینه‌سازی شده است تا مطمئن شویم بهترین عملکرد ممکن را دریافت می‌کنید. این افزونه جایگزینی برای افزونه‌های دیگر است که از حالت اتصال و وزن‌های ترکیبی استفاده می‌کنند.
ردگیری بدن
موقعیت و تناسب مفاصل بدن کاربر را بااستفاده از ورودی‌های ردیابی سر و دست تخمین می‌زند.
برآورد نور
برای مدل‌های نورپردازی (ازجمله نورپردازی جهت‌دار، محیطی، هارمونیک کروی، و مکعبی) استفاده می‌شود تا با شرایط نورپردازی دنیای واقعی کاربر مطابقت داشته باشد.

دستگاه‌های ورودی پشتیبانی‌شده

Android XR از دستگاه‌های ورودی زیر نیز پشتیبانی می‌کند.

تعامل با دست
تشخیص اشاره‌های خاص دست، مانند نیشگون گرفتن، تند کشیدن، و اشاره کردن، که به کاربران امکان می‌دهد بااستفاده از اشاره‌ها و حرکات دست با اشیای مجازی تعامل داشته باشند.
تعامل با نگاه چشم
توانایی ردیابی حرکات چشم کاربر، که به او اجازه می‌دهد با نگاه کردن، اشیای مجازی را انتخاب کند و با آن‌ها تعامل داشته باشد.
کنترل‌کننده‌های حرکتی 6DoF
امکان ردیابی موقعیت و حرکت کنترل‌کننده‌ها به‌همراه اتصال دکمه‌ها و پد جهت‌دار برای راه‌اندازی کنش‌ها یا رویدادهای نگه داشتن نشانگر در برنامه.
تعامل با موشواره
توانایی کاربران برای تعامل با اشیاء ازطریق اشاره‌گر موشواره در فضای سه‌بعدی

ویژگی‌های عملکردی پشتیبانی‌شده

Android XR از ویژگی‌های مرتبط با عملکرد زیر پشتیبانی می‌کند.

کانون‌سازی با ردگیری چشم
به برنامه اجازه می‌دهد محتوای با وضوح بالاتر را فقط در نقطه کانونی چشم‌ها ارائه دهد.
پیچش فضا
از بردارهای سرعت و اطلاعات بافت عمق برای تولید فریم‌های میانی استفاده می‌کند که به‌طور مؤثری نرخ فریم موردنیاز برای غوطه‌ور نگه داشتن کاربران در تجربه‌هایتان را افزایش می‌دهد
ترکیب قاب
از بردارهای حرکتی و داده‌های فریم ارائه‌شده توسط برنامه برای ترکیب کردن فریم‌های میانی استفاده می‌کند و روان بودن بصری و نرخ فریم را بهبود می‌بخشد.
سنجه‌های عملکرد
سنجه‌های عملکرد Android XR را در زمان اجرای دستگاه XR فعلی، ترکیب‌کننده، و برنامه XR ارائه می‌دهد. این سنجه‌ها شامل زمان فریم واحد پردازش مرکزی (CPU)، زمان فریم واحد پردازش گرافیکی (GPU)، استفاده از واحد پردازش گرافیکی (GPU)، فرکانس واحد پردازش مرکزی (CPU)، فریم در ثانیه، و موارد دیگر می‌شود.

برای مشاهده فهرست کامل ویژگی‌ها و افزونه‌های پشتیبانی‌شده، به نمای کلی ویژگی OpenXR مراجعه کنید.

موتورهای پشتیبانی‌شده

موتورهای زیر برای توسعه OpenXR با Android XR پشتیبانی می‌شوند.

Unity

پشتیبانی Unity از Android XR که برپایه OpenXR ساخته شده است به توسعه‌دهندگان امکان می‌دهد تا بااستفاده از Unity 6 تجربه‌هایی ایجاد کنند. درباره ساختن برنامه‌های XR با Unity در نمای کلی Unity بیشتر بدانید.

Unreal Engine

Unreal Engine از Android XR ازطریق استاندارد OpenXR پشتیبانی می‌کند و به شما امکان می‌دهد از ابزارها و گردش‌های کاری استاندارد در Unreal Engine 5 استفاده کنید. در نمای کلی Unreal Engine، درباره ساختن برنامه‌های XR با Unreal Engine بیشتر بدانید.

Godot

‫Godot ازطریق ادغام OpenXR از Android XR پشتیبانی می‌کند و به شما امکان می‌دهد برنامه‌های XR را برای Android بااستفاده از گردش کار استاندارد Godot بسازید و صادر کنید. برای کسب اطلاعات بیشتر درباره ساختن برنامه‌های واقعیت گسترده با Godot، به نمای کلی Godot مراجعه کنید.


‫OpenXR™‎ و نشان‌واره OpenXR علامت‌های تجاری متعلق به The Khronos Group Inc. ‎ هستند و به‌عنوان علامت تجاری در چین، اتحادیه اروپا، ژاپن، و پادشاهی متحد (UK) ثبت شده‌اند.