Разработчики компании Collabora представили проект xrdesktop, в котором при поддержке Valve библиотека разрабатывается с элементами для взаимодействия с традиционными рабочими столами в трехмерных средах тренировались в 3D-очках и шлемах виртуальной реальности. Код библиотеки написан на языке C и распространяется по лицензии MIT. Готовые сборки готовы для Arch Linux и Ubuntu 19.04 и 18.04.
В настоящее время в Linux уже есть средства для прямого создания гарнитур виртуальной реальности (расширения Vulkan VK_EXT_acquire_xlib_display для X11 и VK_EXT_acquire_wl_display для Wayland), но отсутствует поддержка правильного уровня прорисовки окон в трехмерном пространстве и синхронизации частоты обновления экрана.
О Xrdesktop
Целью проекта xrdesktop является разработка методов, позволяющих использовать классические интерфейсы в виртуальных средах., ориентированный на вывод на двухмерный экран и управление с помощью клавиатуры и мыши.
Компоненты xrdesktop расширяют доступные оконные и составные менеджеры с возможностью использования среды выполнения систем виртуальной реальности для визуализации окон и рабочего стола в трехмерных виртуальных средах.
В xrdesktopпродвигается идея интеграции в существующие настольные среды без необходимости запуска специализированного композитного администратора. разделить и разрешить использование существующих пользовательских настроек, используемых с обычным монитором, с 3D-шлемами.
Архитектура проекта подразумевает возможность интеграции с любым рабочим столом, но на текущем этапе разработки реализованы компоненты для поддержки гарнитур виртуальной реальности для KDE и Gnome.
Для KDE поддержка 3D-шлемов реализована через плагин, подобный Compiz, а для GNOME - через набор пакетов для GNOME Shell.
Эти компоненты отражают существующие окна в виртуальной среде 3D-шлемов в виде отдельной сцены или в режиме наложения, в котором окна рабочего стола могут накладываться на другие запущенные приложения виртуальной реальности.
Помимо механизмов представительства, xrdesktop предоставляет компоненты для поддержки навигации и ввода с помощью специализированных пространственных контроллеров.
хрдесктоп, на основе информации от контроллеров VR генерирует входные события обычные, имитирующие использование клавиатуры и мыши.
Xrdesktop включает несколько библиотек которые создают текстуры окон для среды выполнения VR с помощью OpenVR, а также системы на основе API для рендеринга всего рабочего стола в 3D-среде.
Поскольку xrdesktop не предоставляет собственного оконного менеджера, требуется работа по интеграции с существующими оконными менеджерами (xrdesktop может быть перенесен на любой оконный менеджер X11 или Wayland).
Основные компоненты xrdesktop:
гулкан: привязка glib для Vulkan, которая предоставляет классы для устройств обработки, шейдеров и инициализации текстур из памяти или буферов DMA.
гхр: - это API для абстрагирования программных интерфейсов для разработки приложений виртуальной реальности. В настоящее время поддерживается только OpenVR, но скоро будет добавлена поддержка стандарта OpenXR.
либинпутсинт: - это библиотека для синтеза событий ввода, таких как движение мыши, щелчки и нажатия клавиш, реализованная в виде бэкэндов для xdo, xi2 и Clutter.
xrрабочий стол: библиотека для управления окнами в 3D-среде, набор связанных виджетов и бэкэндов для рендеринга сцены.
kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop: плагин KWin для интеграции KDE и плазменный апплет для перевода KWin в режим вывода на 3D-шлеме.
Набор патчей gnome-shell и расширение gnome-shell-xrdesktop: представляет собой набор патчей для Gnome для интеграции поддержки xrdesktop и плагина для изменения вывода на 3D-шлем в Gnome Shell.
Проект поддерживает различные методы организации взаимодействия рабочего стола и окон в виртуальной среде, которые можно использовать для захвата окон, масштабирования, перемещения, поворота, наложения на сферу, упорядочивания и скрытия окон, использования меню управления и одновременного управления двумя руками. с использованием нескольких контроллеров.
Будьте первым, чтобы комментировать