Projekt xrdesktop na používanie GNOME a KDE v headsetoch pre virtuálnu realitu

Vývojári z Collabora predložené projekt xrddesktop, v ktorej sa s podporou Valve vyvíja knižnica s prvkami na interakciu s tradičnými desktopmi v rámci trojrozmerných prostredí vytvorených pomocou 3D okuliarov a prilieb pre virtuálnu realitu. Kód knižnice je napísaný v jazyku C a distribuovaný pod licenciou MIT. Hotové zostavy pripravené pre Arch Linux и Ubuntu 19.04 / 18.04.

V súčasnosti už Linux disponuje nástrojmi na priamy výstup do headsetov virtuálnej reality (rozšírenia Vulkan VK_EXT_acquire_xlib_display pre X11 a VK_EXT_acquire_wl_display pre Wayland), chýba však podpora na úrovni správneho vykresľovania okien v 3D priestore a synchronizácie obnovovacej frekvencie obrazovky. Cieľom projektu xrdesktop je vyvinúť metódy, ktoré umožnia využitie klasických rozhraní zameraných na zobrazovanie XNUMXD obrazovky a ovládanie klávesnicou a myšou vo virtuálnych prostrediach.

Projekt xrdesktop na používanie GNOME a KDE v headsetoch pre virtuálnu realitu

Komponenty xrdesktop rozširujú existujúcich správcov okien a kompozitov o používanie runtime systémov virtuálnej reality na vykresľovanie okien a desktopov v 3D virtuálnych prostrediach. xrdesktop podporuje myšlienku integrácie do existujúcich desktopových prostredí bez potreby spúšťania samostatného špecializovaného správcu kompozitných materiálov a umožňuje použitie existujúcich vlastných konfigurácií používaných s bežným monitorom s XNUMXD prilbami.

Architektúra projektu predpokladá možnosť integrácie s akýmkoľvek desktopom, ale v súčasnej fáze vývoja sú komponenty na podporu náhlavných súprav virtuálnej reality implementované pre KDE a GNOME. Pre KDE je podpora pre 3D prilby implementovaná prostredníctvom pluginu podobného Compizu a pre GNOME prostredníctvom sady záplat pre GNOME Shell. Tieto komponenty zrkadlia existujúce okná do virtuálneho prostredia 3D prilieb vo forme samostatnej scény alebo v režime prekrytia, v ktorom môžu byť okná pracovnej plochy superponované na iné spustené aplikácie virtuálnej reality.

Okrem vykresľovacích modulov xrdesktop poskytuje komponenty na poskytovanie navigácie a vstupu pomocou špecializovaných priestorových ovládačov, ako sú Valve Index a VIVE Wand. Xrdesktop využíva informácie z ovládačov VR na generovanie pravidelných vstupných udalostí, ktoré simulujú používanie klávesnice a myši.

xrdesktop obsahuje niekoľko knižníc, ktoré generujú textúry okien pre runtime VR pomocou OpenVR, ako aj systém založený na API na vykresľovanie celej pracovnej plochy v 3D prostredí. Keďže xrdesktop neposkytuje vlastného správcu okien, vyžaduje sa integračná práca s existujúcimi správcami okien (xrdesktop je možné preniesť do ľubovoľného správcu okien X11 alebo Wayland). Na strane grafického ovládača si prevádzka vyžaduje ovládač, ktorý podporuje Vulkan API a rozšírenie VK_KHR_external_memory.

Projekt xrdesktop na používanie GNOME a KDE v headsetoch pre virtuálnu realitu

Hlavné komponenty xrdesktop:

  • gulkan - glib väzba pre Vulkan, ktorá poskytuje triedy pre zariadenia na spracovanie, shadery a inicializáciu textúr z pamäte alebo vyrovnávacích pamätí DMA;
  • gxr — API na abstrahovanie programových rozhraní na vývoj aplikácií virtuálnej reality. V súčasnosti je podporovaný iba OpenVR, ale podpora pre štandard OpenXR bude pridaná v blízkej budúcnosti;
  • libinputsynth — knižnica na syntetizovanie vstupných udalostí, ako je pohyb myši, kliknutia a stlačenia klávesov, implementovaná vo forme backendov pre xdo, xi2 a Clutter;
  • xrddesktop — knižnica na správu okien v 3D prostredí, sada sprievodných widgetov a backendov na vykreslenie scény;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — plugin pre KWin pre integráciu s KDE a Plasma applet na prepnutie KWin do výstupného režimu na 3D prilbe;
  • gnome-shell patchset и gnome-shell-extension-xrdesktop — sada záplat pre GNOME Shell na integráciu podpory xrdesktop a doplnku na prepínanie výstupu do 3D prilby v GNOME Shell.

Projekt podporuje niekoľko metód organizácie interakcie s pracovnou plochou a oknami vo virtuálnom prostredí, pomocou ktorých je možné okná zachytávať, meniť ich mierku, presúvať, otáčať, prekrývať guľu, ukotvovať a skrývať okná, používať ovládacie menu a súčasne ovládať pomocou dve ruky pomocou viacerých ovládačov.

Zdroj: opennet.ru

Pridať komentár