Projekt xrdesktop za uporabo GNOME in KDE v slušalkah za navidezno resničnost

Razvijalci iz Collabora predstavljeno Projekt xrdesktop, v katerem se ob podpori podjetja Valve razvija knjižnica z elementi za interakcijo s tradicionalnimi namizji znotraj tridimenzionalnih okolij, ustvarjenih s pomočjo 3D-očal in čelad za navidezno resničnost. Koda knjižnice je napisana v C in distributer pod licenco MIT. Pripravljeni sklopi pripravljeni za Arch Linux и Ubuntu 19.04 / 18.04.

Linux trenutno že ima orodja za neposreden izpis v slušalke za navidezno resničnost (razširitve Vulkan VK_EXT_acquire_xlib_display za X11 in VK_EXT_acquire_wl_display za Wayland), ni pa podpore na ravni pravilnega izrisa oken v 3D prostoru in sinhronizacije frekvence osveževanja zaslona. Cilj projekta xrdesktop je razviti metode, ki bodo omogočale uporabo klasičnih vmesnikov, osredotočenih na XNUMXD zaslonski prikaz ter upravljanje s tipkovnico in miško v virtualnih okoljih.

Projekt xrdesktop za uporabo GNOME in KDE v slušalkah za navidezno resničnost

Komponente xrdesktop razširjajo obstoječe okenske in sestavljene upravitelje za uporabo izvajalnih sistemov navidezne resničnosti za upodabljanje oken in namizij v 3D virtualnih okoljih. xrdesktop promovira zamisel o integraciji v obstoječa namizna okolja brez potrebe po zagonu ločenega specializiranega sestavljenega upravljalnika in omogočanje obstoječih konfiguracij po meri, ki se uporabljajo z običajnim monitorjem, za uporabo s XNUMXD čeladami.

Arhitektura projekta pomeni zmožnost integracije s katerim koli namizjem, vendar so na trenutni stopnji razvoja komponente za podporo slušalk navidezne resničnosti implementirane za KDE in GNOME. Za KDE je podpora za 3D čelade implementirana prek vtičnika, podobnega Compizu, za GNOME pa prek nabora popravkov za GNOME Shell. Te komponente zrcalijo obstoječa okna v virtualno okolje 3D čelad v obliki ločenega prizora ali v načinu prekrivanja, v katerem je mogoče namizna okna prekriti z drugimi delujočimi aplikacijami navidezne resničnosti.

Poleg mehanizmov za upodabljanje xrdesktop ponuja komponente za zagotavljanje navigacije in vnosa z uporabo specializiranih prostorskih krmilnikov, kot sta Valve Index in VIVE Wand. Xrdesktop ustvarja redne vnosne dogodke na podlagi informacij iz krmilnikov VR, ki simulirajo uporabo tipkovnice in miške.

xrdesktop vključuje več knjižnic, ki ustvarjajo okenske teksture za izvajalno okolje VR z uporabo OpenVR, kot tudi sistem upodabljanja, ki temelji na API-ju, za celotno namizje v 3D okolju. Ker xrdesktop ne ponuja lastnega upravljalnika oken, je potrebno integracijsko delo z obstoječimi upravljalniki oken (xrdesktop je mogoče prenesti v kateri koli upravljalnik oken X11 ali Wayland). Na strani grafičnega gonilnika delovanje zahteva gonilnik s podporo za API Vulkan in razširitev VK_KHR_external_memory.

Projekt xrdesktop za uporabo GNOME in KDE v slušalkah za navidezno resničnost

Glavne komponente xrdesktop:

  • gulkan - glib binding za Vulkan, ki zagotavlja razrede za procesne naprave, shaderje in inicializacijo tekstur iz pomnilnika ali medpomnilnikov DMA;
  • gxr — API za abstrahiranje programskih vmesnikov za razvoj aplikacij navidezne resničnosti. Trenutno je podprt samo OpenVR, vendar bo podpora za standard OpenXR dodana v bližnji prihodnosti;
  • libinputsynth — knjižnica za sintetiziranje vhodnih dogodkov, kot so premikanje miške, kliki in pritiski tipk, implementirana v obliki ozadij za xdo, xi2 in Clutter;
  • xrdesktop — knjižnica za upravljanje oken v 3D okolju, nabor spremljajočih pripomočkov in ozadja za upodabljanje scene;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — vtičnik za KWin za integracijo s KDE in programček Plasma za preklop KWin v izhodni način na 3D čeladi;
  • komplet popravkov gnome-shell и gnome-shell-extension-xrdesktop — niz popravkov za GNOME Shell za integracijo podpore za xrdesktop in dodatek za preklop izhoda na 3D čelado v GNOME Shell.

Projekt podpira več metod za organiziranje interakcije z namizjem in okni v virtualnem okolju, ki jih je mogoče uporabiti za zajemanje oken, spreminjanje velikosti, premikanje, vrtenje, prekrivanje na krogli, zasidranje in skrivanje oken, uporabo nadzornega menija in hkratno upravljanje z dve roki z uporabo več krmilnikov.

Vir: opennet.ru

Dodaj komentar