شرکت Collabora یک سرور ترکیبی wxrd را ارائه کرد که بر اساس پروتکل Wayland پیادهسازی شد و برای ایجاد دسکتاپ مبتنی بر اجزای xrdesktop در محیطهای واقعیت مجازی سهبعدی در نظر گرفته شد. اساس، کتابخانه wlroots است که توسط توسعه دهندگان محیط کاربری Sway، و سرور ترکیبی wxrc، برای استفاده در سیستم های واقعیت مجازی طراحی شده است. کد پروژه به زبان C نوشته شده و تحت مجوز MIT توزیع می شود.
برخلاف راه حلی که در ابتدا در xrdesktop پیشنهاد شده بود، wxrd به جای تطبیق مدیران ویندوز و پوستههای دسکتاپ موجود برای سیستمهای واقعیت مجازی، یک سرور ترکیبی تخصصی برای محیطهای واقعیت مجازی ارائه میدهد (پروژه xrdesktop وصلههای جداگانهای برای kwin و گنوم شل ارائه میکند که نیاز به انطباق برای هر جدید دارد. انتشار این اجزا). استفاده از wxrd به شما این امکان را می دهد که نه تنها محتویات یک دسکتاپ دو بعدی موجود را منعکس کنید، همزمان در یک نمایشگر معمولی نشان داده شده است، بلکه به طور جداگانه پنجره هایی را که به طور خاص برای یک دسکتاپ سه بعدی راه اندازی شده اند پردازش کنید (یعنی دسترسی از کلاه VR به دسکتاپ مورد استفاده در جدول سیستم فعلی، اما برای تشکیل یک محیط جداگانه برای کلاه VR).
برخلاف پروژههای مشابه Simula VR، Stardust، Motorcar و Safespaces، سرور کامپوزیت wxrd با توجه به استفاده از حداقل تعداد وابستگیها و مصرف کم منابع ایجاد شد. Wxrd همچنین به شما امکان می دهد نه تنها با برنامه های مبتنی بر پروتکل Wayland کار کنید و اجرای برنامه های X11 را با استفاده از سرور xwayland DDX امکان پذیر می کند.
از آنجایی که پسوند پروتکل Wayland برای صفحهکلیدهای مجازی در دست توسعه است، ورودی wxrd از طریق یک سیستم شبیهسازی ورودی صفحهکلید اجرا میشود که همه کاراکترهای یونیکد، از جمله emoji را از صفحهکلید مجازی ارائهشده در xrdesktop منتقل میکند. برای اجرای wxrd، به یک کارت گرافیک نیاز دارید که از API گرافیکی Vulkan و پسوند VK_EXT_image_drm_format_modifier پشتیبانی کند، که از نسخه 21.1 در Mesa پشتیبانی میشود (در اوبونتو 21.04 موجود است). استفاده از Vulkan API برای رندر کردن به پسوند VK_EXT_physical_device_drmm نیاز دارد که در Mesa 21.2 (Ubuntu 21.10) معرفی شده است.
مزایای استفاده از یک سرور ترکیبی جداگانه برای سیستم های واقعیت مجازی به جای ادغام با مدیران پنجره دو بعدی که برای نمایش دسکتاپ سنتی استفاده می شود:
- هنگامی که در یک جلسه مبتنی بر Wayland یا X11 اجرا می شود، کتابخانه wlroots پنجره ای را باز می کند که در آن می توانید به راحتی ورودی های صفحه کلید و رویدادهای ماوس را ضبط کنید و ورودی را به یک پنجره خاص در یک محیط واقعیت مجازی هدایت کنید. در آینده، آنها قصد دارند از این ویژگی برای سازماندهی ورودی نه تنها از طریق یک کنترلر VR، بلکه با استفاده از یک صفحه کلید و ماوس معمولی استفاده کنند.
- ویندوز با قاب دسکتاپ دوبعدی محدود نمی شود و می تواند اندازه دلخواه داشته باشد و فقط با حداکثر اندازه بافت پشتیبانی شده توسط سخت افزار محدود شود.
- رندر پنجره در wxrd با نرخ تازهسازی تصویر روی صفحه نمایش سهبعدی (HMD) انجام میشود، در حالی که هنگام انعکاس پنجرهها از مدیران پنجرههای معمولی، فرکانس مورد استفاده برای بهروزرسانی اطلاعات در یک نمایشگر ثابت استفاده میشود.
- فونت ها را می توان با در نظر گرفتن تراکم پیکسلی یک کلاه ایمنی سه بعدی، بدون اشاره به تراکم پیکسلی یک نمایشگر ثابت ارائه کرد.
- استفاده از wxrd در سیستم هایی که فقط هدست سه بعدی دارند و مانیتور معمولی ندارند امکان پذیر است.
معایب یک سرور کامپوزیت مجزا برای VR:
- در محیط VR، تنها برنامههایی که به طور خاص برای یک سرور ترکیبی مجزا راهاندازی شدهاند، بدون امکان انتقال یا بازتاب پنجرههایی که از قبل در دسکتاپ سنتی باز شدهاند به محیط VR نشان داده میشوند (یعنی برای ادامه کار با برنامههای باز شده در یک صفحه معمولی، شما باید در یک محیط جداگانه برای کلاه ایمنی سه بعدی راه اندازی مجدد شود).
- پشتیبانی Wayland ممکن است در اجرای Vulkan API محدود باشد. به عنوان مثال، gbm و wlroots را نمی توان با درایورهای اختصاصی NVIDIA به دلیل عدم پشتیبانی از پسوند VK_EXT_drm_format_modifier استفاده کرد.
منبع: opennet.ru