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

Programeri iz Collabora predstavljen nacrt xrdesktop, u kojem se, uz podršku Valvea, razvija biblioteka sa elementima za interakciju sa tradicionalnim desktopima unutar trodimenzionalnih okruženja kreiranih pomoću 3D naočara i kaciga virtuelne stvarnosti. Kôd biblioteke je napisan u C i distribuira pod MIT licencom. Gotovi sklopovi pripremljeno do Arch Linux и Ubuntu 19.04 / 18.04.

Trenutno Linux već ima alate za direktan izlaz na slušalice virtuelne stvarnosti (Vulkan ekstenzije VK_EXT_acquire_xlib_display za X11 i VK_EXT_acquire_wl_display za Wayland), ali ne postoji podrška na nivou ispravnog prikazivanja prozora u 3D prostoru i sinhronizacije brzine osvježavanja ekrana. Cilj projekta xrdesktop je razviti metode koje će omogućiti korištenje klasičnih interfejsa fokusiranih na XNUMXD prikaz ekrana i kontrolu tastature i miša u virtuelnim okruženjima.

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

Komponente xrdesktop proširuju postojeće prozore i kompozitne menadžere da koriste sisteme vremena izvršavanja virtuelne stvarnosti za renderovanje prozora i desktopa u 3D virtuelnim okruženjima. xrdesktop promoviše ideju integracije u postojeća desktop okruženja bez potrebe za pokretanjem posebnog specijalizovanog kompozitnog menadžera i omogućavajući da se postojeće prilagođene konfiguracije koje se koriste sa redovnim monitorom koriste sa XNUMXD kacigama.

Arhitektura projekta podrazumeva mogućnost integracije sa bilo kojom radnom površinom, ali u trenutnoj fazi razvoja, komponente za podršku slušalicama virtuelne realnosti su implementirane za KDE i GNOME. Za KDE, podrška za 3D šlemove implementirana je preko dodatka nalik Compizu, a za GNOME kroz set zakrpa za GNOME Shell. Ove komponente odražavaju postojeće prozore u virtuelno okruženje 3D šlemova u obliku zasebne scene ili u režimu preklapanja, u kojem se prozori radne površine mogu postaviti na druge pokrenute aplikacije virtuelne stvarnosti.

Pored mehanizama za renderovanje, xrdesktop obezbeđuje komponente za navigaciju i unos pomoću specijalizovanih prostornih kontrolera kao što su Valve Index i VIVE Wand. Xrdesktop koristi informacije iz VR kontrolera da generiše redovne ulazne događaje, simulirajući upotrebu tastature i miša.

xrdesktop uključuje nekoliko biblioteka koje generišu teksture prozora za VR runtime koristeći OpenVR, kao i sistem zasnovan na API-ju za renderovanje pune radne površine u 3D okruženju. Budući da xrdesktop ne pruža vlastiti upravitelj prozora, potreban je rad na integraciji sa postojećim upraviteljima prozora (xrdesktop se može prenijeti na bilo koji X11 ili Wayland upravitelj prozora). Na strani grafičkog drajvera, za rad je potreban drajver koji podržava Vulkan API i VK_KHR_external_memory ekstenziju.

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

Glavne komponente xrdesktop-a:

  • gulkan - glib binding za Vulkan, pružanje klasa za uređaje za obradu, shadere i inicijalizaciju tekstura iz memorije ili DMA bafera;
  • gxr — API za apstrahovanje programskih interfejsa za razvoj aplikacija virtuelne stvarnosti. Trenutno je podržan samo OpenVR, ali podrška za OpenXR standard će biti dodata u bliskoj budućnosti;
  • libinputsynth — biblioteka za sintetizaciju ulaznih događaja, kao što su pokreti miša, klikovi i pritiskanja tastera, implementirana u obliku backenda za xdo, xi2 i Clutter;
  • xrdesktop — biblioteka za upravljanje prozorima u 3D okruženju, skup pratećih widgeta i backenda za renderovanje scene;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — dodatak za KWin za integraciju sa KDE-om i Plasma applet za prebacivanje KWin-a u izlazni mod na 3D kacigi;
  • gnome-shell set zakrpa и gnome-shell-extension-xrdesktop — set zakrpa za GNOME Shell za integraciju podrške za xrdesktop i dodatak za prebacivanje izlaza na 3D kacigu u GNOME Shell-u.

Projekat podržava nekoliko metoda za organizovanje interakcije sa radnom površinom i prozorima u virtuelnom okruženju, koje se mogu koristiti za snimanje prozora, skaliranje, pomeranje, rotiranje, preklapanje na sferi, pristajanje i skrivanje prozora, korišćenje kontrolnog menija i istovremeno upravljanje sa dvije ruke koristeći više kontrolera.

izvor: opennet.ru

Dodajte komentar