Projekt xrdesktop pro použití GNOME a KDE v náhlavních soupravách pro virtuální realitu

Vývojáři z Collabora prezentovány projekt xrddesktop, ve kterém se s podporou Valve vyvíjí knihovna s prvky pro interakci s tradičními desktopy uvnitř trojrozměrných prostředí vytvořených pomocí 3D brýlí a přileb pro virtuální realitu. Knihovní kód je napsán v C a distribuovány pod licencí MIT. Hotové sestavy připravený pro Arch Linux и Ubuntu 19.04 / 18.04.

V současné době již Linux disponuje nástroji pro přímý výstup do headsetů virtuální reality (rozšíření Vulkan VK_EXT_acquire_xlib_display pro X11 a VK_EXT_acquire_wl_display pro Wayland), chybí však podpora na úrovni správného vykreslování oken ve 3D prostoru a synchronizace obnovovací frekvence obrazovky. Cílem projektu xrdesktop je vyvinout metody, které umožní použití klasických rozhraní zaměřených na XNUMXD zobrazení obrazovky a ovládání pomocí klávesnice a myši ve virtuálních prostředích.

Projekt xrdesktop pro použití GNOME a KDE v náhlavních soupravách pro virtuální realitu

Komponenty xrdesktop rozšiřují stávající správce oken a kompozitů o použití runtime systémů virtuální reality k vykreslování oken a desktopů ve 3D virtuálních prostředích. xrdesktop podporuje myšlenku integrace do stávajících desktopových prostředí bez nutnosti spouštět samostatný specializovaný správce kompozitních materiálů a umožňuje použití stávajících vlastních konfigurací používaných s běžným monitorem s XNUMXD přilbami.

Architektura projektu předpokládá možnost integrace s jakýmkoli desktopem, ale v současné fázi vývoje jsou komponenty pro podporu náhlavních souprav pro virtuální realitu implementovány pro KDE a GNOME. Pro KDE je podpora pro 3D helmy implementována prostřednictvím pluginu podobného Compizu a pro GNOME prostřednictvím sady záplat pro GNOME Shell. Tyto komponenty zrcadlí stávající okna do virtuálního prostředí 3D přileb ve formě samostatné scény nebo v režimu překrytí, ve kterém lze okna plochy překrývat s jinými běžícími aplikacemi virtuální reality.

Kromě renderovacích enginů poskytuje xrdesktop komponenty pro poskytování navigace a vstupu pomocí specializovaných prostorových ovladačů, jako je Valve Index a VIVE Wand. Xrdesktop využívá informace z ovladačů VR ke generování pravidelných vstupních událostí a simuluje tak použití klávesnice a myši.

xrdesktop obsahuje několik knihoven, které generují textury oken pro běhové prostředí VR pomocí OpenVR, a také systém založený na API pro vykreslování plné plochy ve 3D prostředí. Vzhledem k tomu, že xrdesktop neposkytuje vlastního správce oken, je nutná integrace se stávajícími správci oken (xrdesktop lze přenést do libovolného správce oken X11 nebo Wayland). Na straně grafického ovladače operace vyžaduje ovladač, který podporuje Vulkan API a rozšíření VK_KHR_external_memory.

Projekt xrdesktop pro použití GNOME a KDE v náhlavních soupravách pro virtuální realitu

Hlavní součásti xrdesktop:

  • gulkan - vazba glib pro Vulkan, poskytující třídy pro zařízení pro zpracování, shadery a inicializaci textur z paměti nebo vyrovnávacích pamětí DMA;
  • GXR — API pro abstrahování programových rozhraní pro vývoj aplikací virtuální reality. V současné době je podporováno pouze OpenVR, ale podpora pro standard OpenXR bude přidána v blízké budoucnosti;
  • libinputsynth — knihovna pro syntézu vstupních událostí, jako je pohyb myši, kliknutí a stisknutí kláves, implementovaná ve formě backendů pro xdo, xi2 a Clutter;
  • xrddesktop — knihovna pro správu oken ve 3D prostředí, sada doprovodných widgetů a backendů pro vykreslování scény;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — plugin pro KWin pro integraci s KDE a Plasma applet pro přepínání KWin do výstupního režimu na 3D helmě;
  • patchset gnome-shell и gnome-shell-extension-xrdesktop — sada záplat pro GNOME Shell pro integraci podpory xrdesktop a doplňku pro přepínání výstupu do 3D helmy v GNOME Shell.

Projekt podporuje několik metod pro organizaci interakce s pracovní plochou a okny ve virtuálním prostředí, které lze použít k zachycení oken, jejich škálování, přesunutí, otočení, překrytí na kouli, ukotvení a skrytí oken, použití ovládací nabídky a současné ovládání pomocí dvě ruce pomocí více ovladačů.

Zdroj: opennet.ru

Přidat komentář