Представен wxrd, базиран на Wayland композитен сървър за системи за виртуална реалност

Компанията Collabora представи композитен сървър wxrd, реализиран на базата на протокола Wayland и предназначен за създаване на десктоп, базиран на компоненти xrdesktop в триизмерни среди за виртуална реалност. Основата е библиотеката wlroots, разработена от разработчиците на потребителската среда Sway, и съставният сървър wxrc, предназначен за използване в системи за виртуална реалност. Кодът на проекта е написан на C и се разпространява под лиценза на MIT.

За разлика от решението, първоначално предложено в xrdesktop, wxrd предлага специализиран композитен сървър за среди на виртуална реалност, вместо да адаптира съществуващите мениджъри на прозорци и обвивки на работния плот за VR системи (проектът xrdesktop предоставя отделни пачове за kwin и GNOME Shell, които изискват адаптиране за всеки нов освобождаване на тези компоненти). Използването на wxrd ви позволява не само да дублирате съдържанието на съществуващ двуизмерен работен плот, в същото време показан на обикновен монитор, но отделно да обработвате прозорци, специално стартирани за триизмерен работен плот (т.е. да не предоставяте достъп от VR шлема към работния плот, използван на текущата системна маса, но за формиране на отделна среда за VR шлема).

За разлика от подобни проекти Simula VR, Stardust, Motorcar и Safespaces, композитният сървър wxrd е създаден с оглед на използването на минимален брой зависимости и ниска консумация на ресурси. Wxrd също така ви позволява да работите не само с приложения, базирани на протокола Wayland, но прави възможно стартирането на X11 приложения с помощта на сървъра xwayland DDX.

Тъй като разширението на протокола Wayland за виртуални клавиатури е в процес на разработка, въвеждането в wxrd се реализира чрез система за емулация на въвеждане на клавиатура, която прехвърля всички уникод знаци, включително емотикони, от виртуалната клавиатура, предоставена в xrdesktop. За да стартирате wxrd, имате нужда от видеокарта, която поддържа графичния API на Vulkan и разширението VK_EXT_image_drm_format_modifier, поддържано в Mesa от версия 21.1 (включено в Ubuntu 21.04). Използването на API на Vulkan за рендиране изисква разширението VK_EXT_physical_device_drmm, въведено в Mesa 21.2 (Ubuntu 21.10).

Предимства на използването на отделен композитен сървър за системи за виртуална реалност вместо интегриране с 2D мениджърите на прозорци, използвани за показване на традиционен работен плот:

  • Когато се изпълнява в сесия, базирана на Wayland или X11, библиотеката wlroots отваря прозорец, в който можете лесно да улавяте въвеждане на клавиатура и събития с мишка и да пренасочвате този вход към конкретен прозорец в среда на виртуална реалност. В бъдеще те планират да използват тази функция за организиране на въвеждане не само чрез VR контролер, но и с помощта на обикновена клавиатура и мишка.
  • Windows не са ограничени от 2D рамката на работния плот и могат да бъдат с произволен размер, ограничени само от максималния размер на текстурата, поддържан от хардуера.
  • Изобразяването на прозорци в wxrd се извършва при стандартната честота на опресняване на изображението на 3D монтиран на главата дисплей (HMD), докато при дублиране на прозорци от конвенционални мениджъри на прозорци се използва честотата, използвана за актуализиране на информация на стационарен монитор.
  • Шрифтовете могат да бъдат изобразени, като се вземе предвид плътността на пикселите на 3D шлем, без да се позовава на плътността на пикселите на стационарен монитор.
  • Възможно е да използвате wxrd на системи, които имат само 3D слушалки и нямат обикновен монитор.

Недостатъци на отделен композитен сървър за VR:

  • Във VR средата се показват само приложения, специално стартирани за отделен комбиниран сървър, без възможност за прехвърляне или отразяване на прозорци, вече отворени на традиционен работен плот, към VR среда (т.е., за да продължите да работите с приложения, отворени на обикновен екран, вие ще трябва да се рестартира в отделна среда за 3D шлема).
  • Поддръжката на Wayland може да бъде ограничена при реализации на API на Vulkan. Например gbm и wlroots не могат да се използват със собствени драйвери на NVIDIA поради липса на поддръжка за разширението VK_EXT_drm_format_modifier.



Източник: opennet.ru

Добавяне на нов коментар