Праект xrdesktop для выкарыстання GNOME і KDE у шлемах віртуальнай рэальнасці

Распрацоўнікі з кампаніі Collabora прадставілі праект xrdesktop, у рамках якога пры падтрымцы кампаніі Valve развіваецца бібліятэка з элементамі для ўзаемадзеяння з традыцыйнымі працоўнымі сталамі ўнутры трохмерных асяродкаў, якія фармуюцца пры выкарыстанні 3D-ачкоў і шлемаў віртуальнай рэальнасці. Код бібліятэкі напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй MIT. Гатовыя зборкі падрыхтаваны для Arch Linux и Ubuntu 19.04 / 18.04.

У цяперашні час для Linux ужо маюцца сродкі для прамога вываду на шлемы віртуальнай рэальнасці (Vulkan-пашырэння VK_EXT_acquire_xlib_display для X11 і VK_EXT_acquire_wl_display для Wayland), але адсутнічаюць падтрымка на ўзроўні карэктнай адмалёўкі вокнаў у 3D. Мэтай праекту xrdesktop з'яўляецца распрацоўка метадаў, якія дазволяць выкарыстоўваць у віртуальных асяродках класічныя інтэрфейсы, арыентаваныя на выснову на двухмерным экране і кіраванне пры дапамозе клавіятуры і мышы.

Праект xrdesktop для выкарыстання GNOME і KDE у шлемах віртуальнай рэальнасці

Кампаненты xrdesktop пашыраюць наяўныя аконныя і кампазітныя менеджэры магчымасцямі для выкарыстання runtime сістэм віртуальнай рэальнасці для адмалёўкі вокнаў і працоўнага стала ў трохмерных віртуальных асяродках. У xrdesktop прасоўваецца ідэя інтэграцыі ў існуючыя дэсктоп-акружэнні без неабходнасці запуску асобнага спецыялізаванага кампазітнага мэнэджара і дазваляючы выкарыстоўваць з 3D-шлемамі ўжо наяўныя карыстацкія канфігурацыі, якія выкарыстоўваюцца са звычайным маніторам.

Архітэктура праекту мае на ўвазе магчымасць інтэграцыі з любымі працоўнымі сталамі, але на бягучым этапе распрацоўкі кампаненты для падтрымкі шлемаў віртуальнай рэальнасці рэалізаваны для KDE і GNOME. Для KDE падтрымка 3D-шлемаў рэалізаваны праз Compiz-падобную ўбудову, а для GNOME праз набор пачтаў да GNOME Shell. Паказаныя кампаненты люструюць існыя вокны ў віртуальнае асяроддзе 3D-шлемаў у форме асобнай сцэны ці ў оверлейном рэжыме, пры якім вокны працоўнага стала могуць накладвацца на іншыя запушчаныя прыкладанні віртуальнай рэальнасці.

Акрамя механізмаў адмалёўкі ў xrdesktop падаюцца кампаненты для забеспячэння навігацыі і ўводу пры дапамозе спецыялізаваных прасторавых кантролераў, такіх як Valve Index і VIVE Wand. Xrdesktop на аснове інфармацыі ад VR-кантролераў генеруе звычайныя падзеі ўводу, сімулюючы выкарыстанне клавіятуры і мышы.

У склад xrdesktop уваходзіць некалькі бібліятэк, якія фарміруюць тэкстуры вокнаў для VR runtime пры дапамозе OpenVR, а таксама заснаваная на API сістэма рэндэрынгу паўнавартаснага працоўнага стала ў 3D-акружэнні. Бо xrdesktop не падае ўласнага аконнага мэнэджара, патрабуецца правядзенне працы па інтэграцыі з існымі аконнымі мэнэджэрамі (xrdesktop можа быць партаваны для любога аконнага мэнэджара X11 або Wayland). На баку графічных драйвераў для працы патрабуецца драйвер з падтрымкай API Vulkan і пашырэнні VK_KHR_external_memory extension.

Праект xrdesktop для выкарыстання GNOME і KDE у шлемах віртуальнай рэальнасці

Асноўныя складовыя часткі xrdesktop:

  • gulkan - glib-абвязка для Vulkan, якая прадстаўляе класы для апрацоўкі прылад, шэйдараў і ініцыялізацыі тэкстур з памяці або DMA-буфераў;
  • gxr - API для абстрагавання праграмных інтэрфейсаў для распрацоўкі прыкладанняў віртуальнай рэальнасці. У цяперашні час падтрымліваецца толькі OpenVR, але хуткім часам будзе дададзеная і падтрымка стандарту OpenXR;
  • libinputsynth - бібліятэка для сінтэзу падзей уводу, такіх як рух мышы, зграі і націскі клавіш, рэалізаваная ў форме бэкэндаў для xdo, xi2 і Clutter;
  • xrdesktop - бібліятэка для кіравання вокнамі ў 3D-акружэнні, набор спадарожных віджэтаў і бэкэнды для адмалёўкі сцэны;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop - убудова да KWin для інтэграцыі з KDE і Plasma-аплет для перакладу KWin у рэжым вываду на 3D-шлем;
  • gnome-shell patchset и gnome-shell-extension-xrdesktop - Набор патчаў да GNOME Shell для інтэграцыі падтрымкі xrdesktop і дадатак для пераключэння высновы на 3D-шлем у GNOME Shell.

Праектам падтрымліваецца некалькі метадаў арганізацыі ўзаемадзеяння з працоўным сталом і вокнамі ў віртуальным асяроддзі, якія могуць ужывацца для захопу вокнаў, маштабаванні, перасоўванні, кручэнні, накладанні на сферу, замацаванні і ўтойванні вокнаў, выкарыстанні кіраўніка меню і адначасовага кіравання дзвюма рукамі з выкарыстаннем некалькіх кантролераў.

Крыніца: opennet.ru

Дадаць каментар