Xrdesktop projekts GNOME un KDE izmantošanai virtuālās realitātes austiņās

Izstrādātāji no Collabora uzrādīts projekts xrdesktop, kurā ar Valve atbalstu tiek izstrādāta bibliotēka ar elementiem mijiedarbībai ar tradicionālajiem galddatoriem trīsdimensiju vidēs, kas izveidotas, izmantojot 3D brilles un virtuālās realitātes ķiveres. Bibliotēkas kods ir rakstīts C un izplata saskaņā ar MIT licenci. Gatavie mezgli sagatavots par Arch Linux и Ubuntu 19.04 / 18.04.

Pašlaik Linux jau ir rīki tiešai izvadei uz virtuālās realitātes austiņām (Vulkan paplašinājumi VK_EXT_acquire_xlib_display priekš X11 un VK_EXT_acquire_wl_display priekš Wayland), taču nav atbalsta pareizas logu renderēšanas 3D telpā un ekrāna atsvaidzes intensitātes sinhronizācijas līmenī. Projekta xrdesktop mērķis ir izstrādāt metodes, kas ļaus izmantot klasiskās saskarnes, kas vērstas uz XNUMXD ekrāna displeju un tastatūras un peles vadību virtuālajā vidē.

Xrdesktop projekts GNOME un KDE izmantošanai virtuālās realitātes austiņās

xrdesktop komponenti paplašina esošos logu un saliktos pārvaldniekus, lai izmantotu virtuālās realitātes izpildlaika sistēmas, lai renderētu logus un galddatorus 3D virtuālajā vidē. xrdesktop veicina ideju par integrāciju esošās darbvirsmas vidēs bez nepieciešamības palaist atsevišķu specializētu kompozītmateriālu pārvaldnieku un ļaujot esošās pielāgotās konfigurācijas, ko izmanto ar parastu monitoru, izmantot ar XNUMXD ķiverēm.

Projekta arhitektūra paredz iespēju integrēties ar jebkuru darbvirsmu, taču pašreizējā izstrādes stadijā komponenti, kas atbalsta virtuālās realitātes austiņas, ir ieviesti KDE un GNOME. KDE 3D ķiveru atbalsts tiek īstenots, izmantojot Compiz līdzīgu spraudni, un GNOME, izmantojot GNOME Shell ielāpu komplektu. Šīs sastāvdaļas atspoguļo esošos logus 3D ķiveru virtuālajā vidē atsevišķa ainas veidā vai pārklājuma režīmā, kurā darbvirsmas logus var uzklāt uz citām darbojošām virtuālās realitātes lietojumprogrammām.

Papildus renderēšanas dzinējiem, xrdesktop nodrošina komponentus, kas nodrošina navigāciju un ievadi, izmantojot specializētus telpiskos kontrollerus, piemēram, Valve Index un VIVE Wand. Xrdesktop izmanto informāciju no VR kontrolleriem, lai ģenerētu regulārus ievades notikumus, simulējot tastatūras un peles lietošanu.

Xrdesktop ietver vairākas bibliotēkas, kas ģenerē logu faktūras VR izpildlaikam, izmantojot OpenVR, kā arī uz API balstīta sistēma pilnas darbvirsmas renderēšanai 3D vidē. Tā kā xrdesktop nenodrošina savu logu pārvaldnieku, ir nepieciešams integrācijas darbs ar esošajiem logu pārvaldniekiem (xrdesktop var portēt uz jebkuru X11 vai Wayland logu pārvaldnieku). Grafikas draivera pusē darbībai ir nepieciešams draiveris, kas atbalsta Vulkan API un paplašinājumu VK_KHR_external_memory.

Xrdesktop projekts GNOME un KDE izmantošanai virtuālās realitātes austiņās

Galvenās xrdesktop sastāvdaļas:

  • gulkan - glib iesiešana Vulkan, nodrošinot klases apstrādes ierīcēm, ēnotājiem un tekstūru inicializāciju no atmiņas vai DMA buferiem;
  • gxr — API programmu saskarņu abstrahēšanai virtuālās realitātes lietojumprogrammu izstrādei. Pašlaik tiek atbalstīts tikai OpenVR, bet tuvākajā nākotnē tiks pievienots atbalsts OpenXR standartam;
  • libinputsynth — bibliotēka ievades notikumu, piemēram, peles kustības, klikšķu un taustiņsitienu, sintezēšanai, kas ieviesta xdo, xi2 un Clutter aizmugursistēmu veidā;
  • xrdesktop — bibliotēka logu pārvaldībai 3D vidē, pavadošo logrīku un aizmugurprogrammu komplekts ainas renderēšanai;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — KWin spraudnis integrācijai ar KDE un Plasma sīklietotne KWin pārslēgšanai uz izvades režīmu uz 3D ķiveres;
  • gnome-shell ielāpu komplekts и gnome-shell-extension-xrdesktop — ielāpu komplekts GNOME Shell, lai integrētu xrdesktop atbalstu, un papildinājums izvades pārslēgšanai uz 3D ķiveri GNOME Shell.

Projekts atbalsta vairākas metodes mijiedarbības organizēšanai ar darbvirsmu un logiem virtuālajā vidē, ko var izmantot, lai tvertu logus, mērogotu, pārvietotu, pagrieztu, pārklātu uz sfēras, dokstatu un paslēptu logus, izmantotu vadības izvēlni un vienlaikus vadītu ar divas rokas, izmantojot vairākus kontrolierus.

Avots: opennet.ru

Pievieno komentāru