Компания Collabora представила выпуск проекта Monado 0.2, нацеленного на создание открытой реализации стандарта OpenXR. Monado предоставляет runtime, полностью соответствующий требованиям OpenXR, который может использоваться для организации работы с виртуальной и дополненной реальности на смартфонах, планшетах, ПК и любых других устройствах. Стандарт OpenXR подготовлен консорциумом Khronos и определяет универсальный API для создания приложений виртуальной и дополненной реальности, а также набор прослоек для взаимодействия с оборудованием, абстрагирующим особенности конкретных устройств. Код проекта написан на языке Си и распространяется под свободной лицензией Boost Software License 1.0, совместимой с GPL.
Среди добавленных улучшений:
- В композитном сервере появилась поддержка многослойной отрисовки, позволяющей приложениям размещать несколько структур XrCompositionLayerProjection и XrCompositionLayerQuad. Работа с несколькими слоями важна для приложений, использующих четыре слоя для отрисовки пользовательских интерфейсов, а также является базисом для дальнейшей поддержки приложений с наложенным поверх сцены интерфейсом, таких как xrdesktop или Pluto VR.
- Комнозитный сервер и драйверы вынесены в отдельные сервисные процессы. Ведётся работа по предоставлению возможности подключения нескольких приложений OpenXR к одному экземпляру сервиса Monado и их одновременной визуализации при помощи расширения XR_EXTX_overlay.
- Обеспечена поддержка контроллеров Vive Wand и Valve Index и их использования для управления движением с тремя степенями свободы (3DOF, перемещение по трём направлениям). В ближайшие месяцы планируется добавить поддержку шести степеней свободы (6DOF, вперёд/назад, вверх/вниз, влево/вправо, рыскание, тангаж, крен), используя систему отслеживания Lighthouse.
- Добавлена поддержка Bluetooth LE, которая задействована в драйвере для Google Daydream 3DOF Controller.
- Добавлен драйвер arduino для экспериментов при создании собственных контроллеров;
- В основной состав интегрирован драйвер открытой системы отслеживания позиции libsurvive.
- В отладочном интерфейсе пользователя появилась поддержка пользовательских графиков, которые в текущем виде задействованы для визуализации нагрузки на CPU при отрисовке.
- В monado-gui реализована поддержка хранения настроек в каталогах $XDG_CONFIG_HOME/monado и $HOME/.config/monado. Добавлена возможность настройки стереокамер с интерфейсом USB для PSMV (PlayStation Move) и PSVR (PlayStation VR).
- Переработана система сборки. Добавлен PPA-репозиторий для Ubuntu с пакетами Monado, OpenXR-SDK и udev-правилами xr-hardware.
- Добавлена поддержка запуска сервиса monado-service при помощи активации через сокет в systemd.
Состав платформы:
- Движок пространственного зрения (отслеживание объектов, определение поверхностей, реконструкция мешей, распознавание жестов, отслеживания движения глаз);
- Движок для отслеживания персонажа (гиростабилизатор, предсказание движений, контроллеры, оптическое отслеживание движений через камеру, отслеживание позиции на основе данных от VR-шлема);
- Композитный сервер (режим прямого вывода, проброс видео, корректировка линз, композитинг, формирование рабочего пространства для одновременно работы с несколькими приложениями);
- Движок взаимодействия (симуляция физических процессов, набор виджетов и тулкит для приложений виртуальной реальности);
- Инструментарий (калибровка оборудования, установка границ перемещения).
Основные возможности:
- Драйвер для шлемов виртуальной реальности HDK (OSVR Hacker Developer Kit) и PlayStation VR HMD, а также для контроллеров PlayStation Move и Razor Hydra.
- Возможность использования оборудования, поддерживаемого проектом OpenHMD.
- Драйвер для очков дополненной реальности North Star.
- Драйвер для системы отслеживания позиции Intel RealSense T265.
- Набор udev-правил для настройки доступа к устройствам виртуальной реальности без получения полномочий root.
- Компоненты для отслеживания движения с фреймворком для фильтрации и потоковой передачи видео.
- Система отслеживания персонажа с шестью степенями свободы (6DoF, вперёд/назад, вверх/вниз, влево/вправо, рыскание, тангаж, крен) для контроллеров PSVR и PS Move.
- Модули для интеграции с графическими API Vulkan и OpenGL.
- Безэкранный режим (Headless).
- Управление пространственным взаимодействием и точкой обзора.
- Базовая поддержка синхронизации кадров и ввода информации (действий).
- Готовый композитный сервер, поддерживающий прямой вывод на устройство, минуя системный X-сервер. Предоставляются шейдеры для Vive и Panotools. Имеется поддержка проекционных слоёв.
Источник: http://www.opennet.ru/opennews/art.shtml?num=53049