Projekt xrdesktop za korištenje GNOME-a i KDE-a u slušalicama za virtualnu stvarnost

Programeri iz Collabore predstavljeni projekt xrdesktop, u kojem se uz podršku Valvea razvija biblioteka s elementima za interakciju s tradicionalnim stolnim računalima unutar trodimenzionalnih okruženja kreiranih pomoću 3D naočala i kaciga za virtualnu stvarnost. Kod knjižnice napisan je u C i distribuira pod licencom MIT-a. Gotovi sklopovi pripremljeni za Arch Linux и Ubuntu 19.04 / 18.04.

Trenutno Linux već ima alate za izravan izlaz u slušalice virtualne stvarnosti (Vulkan ekstenzije VK_EXT_acquire_xlib_display za X11 i VK_EXT_acquire_wl_display za Wayland), ali nema podrške na razini ispravnog renderiranja prozora u 3D prostoru i sinkronizacije brzine osvježavanja ekrana. Cilj projekta xrdesktop je razviti metode koje će omogućiti korištenje klasičnih sučelja usmjerenih na XNUMXD ekranski prikaz te upravljanje tipkovnicom i mišem u virtualnim okruženjima.

Projekt xrdesktop za korištenje GNOME-a i KDE-a u slušalicama za virtualnu stvarnost

xrdesktop komponente proširuju postojeće prozore i kompozitne upravitelje za korištenje sustava virtualne stvarnosti za prikaz prozora i desktopa u 3D virtualnim okruženjima. xrdesktop promiče ideju integracije u postojeća desktop okruženja bez potrebe za pokretanjem zasebnog specijaliziranog kompozitnog upravitelja i dopušta da se postojeće prilagođene konfiguracije koje se koriste s običnim monitorom koriste s XNUMXD kacigama.

Arhitektura projekta podrazumijeva mogućnost integracije s bilo kojom radnom površinom, ali u trenutnoj fazi razvoja komponente za podršku slušalicama virtualne stvarnosti implementirane su za KDE i GNOME. Za KDE, podrška za 3D kacige implementirana je kroz dodatak sličan Compizu, a za GNOME kroz skup zakrpa za GNOME Shell. Ove komponente zrcale postojeće prozore u virtualno okruženje 3D kaciga u obliku zasebne scene ili u načinu preklapanja, u kojem se prozori radne površine mogu nadograditi na druge pokrenute aplikacije virtualne stvarnosti.

Uz mehanizme za renderiranje, xrdesktop pruža komponente za pružanje navigacije i unosa pomoću specijaliziranih prostornih kontrolera kao što su Valve Index i VIVE Wand. Xrdesktop koristi informacije iz VR kontrolera za generiranje redovitih ulaznih događaja, simulirajući korištenje tipkovnice i miša.

xrdesktop uključuje nekoliko biblioteka koje generiraju teksture prozora za VR runtime koristeći OpenVR, kao i sustav temeljen na API-ju za renderiranje cijele radne površine u 3D okruženju. Budući da xrdesktop ne nudi vlastiti upravitelj prozora, potreban je rad na integraciji s postojećim upraviteljima prozora (xrdesktop se može prenijeti na bilo koji upravitelj prozora X11 ili Wayland). Na strani grafičkog upravljačkog programa, za rad je potreban upravljački program s podrškom za Vulkan API i proširenje VK_KHR_external_memory.

Projekt xrdesktop za korištenje GNOME-a i KDE-a u slušalicama za virtualnu stvarnost

Glavne komponente xrdesktopa:

  • gulkan - glib vezanje za Vulkan, pružanje klasa za uređaje za obradu, shadere i inicijaliziranje tekstura iz memorije ili DMA međuspremnika;
  • gxr — API za apstrahiranje programskih sučelja za razvoj aplikacija virtualne stvarnosti. Trenutno je podržan samo OpenVR, ali podrška za OpenXR standard bit će dodana u bliskoj budućnosti;
  • libinputsynth — knjižnica za sintetiziranje ulaznih događaja, kao što su pokreti miša, klikovi i pritisci tipki, implementirana u obliku pozadine za xdo, xi2 i Clutter;
  • xrdesktop — knjižnica za upravljanje prozorima u 3D okruženju, skup popratnih widgeta i pozadina za renderiranje scene;
  • kwin-efekt-xrdesktop и kdeplasma-applets-xrdesktop — dodatak za KWin za integraciju s KDE-om i Plasma applet za prebacivanje KWina u izlazni način rada na 3D kacigi;
  • gnome-shell patchset и gnome-shell-extension-xrdesktop — skup zakrpa za GNOME Shell za integraciju podrške za xrdesktop i dodatak za prebacivanje izlaza na 3D kacigu u GNOME Shell.

Projekt podržava nekoliko metoda za organiziranje interakcije s radnom površinom i prozorima u virtualnom okruženju, koje se mogu koristiti za snimanje prozora, skaliranje, pomicanje, rotiranje, preklapanje na sferi, usidrenje i skrivanje prozora, korištenje kontrolnog izbornika i istovremeno upravljanje s dvije ruke koristeći više kontrolera.

Izvor: opennet.ru

Dodajte komentar