Collabora ettevõtte arendajad projekt , mille raames arendab Valve'i toetusel teek, mis sisaldab elemente traditsiooniliste töölaua interaktsioonide jaoks kolmemõõtmelistes keskkondades, mis luuakse 3D-prillide ja virtuaalreaalsuse peakomplektide kasutamisega. Teegi kood on kirjutatud C keeles ja MIT litsentsi all. Valmis kogumikud kuna ja .
Praegu on Linuxile juba olemas vahendid otsevirtuaarsete peakomplektide väljundiks (Vulkani laiendused VK_EXT_acquire_xlib_display X11 jaoks ja VK_EXT_acquire_wl_display Waylandi jaoks), kuid puudub tugi, mis tagaks akende korrektse joonistamise 3D-ruumis ja ekraani värskendussageduse sünkroniseerimise. Projekti xrdesktop eesmärk on arendada meetodeid, mis võimaldavad kasutada virtuaalses keskkonnas klassikalisi liideseid, mis on suunatud kahe mõõtmelise ekraani väljundile ja klaviatuuri ning hiire abil juhtimisele.
xrdesktopi komponendid laiendavad olemasolevate akna- ja komposiitide haldurite võimalusi, et kasutada virtuaalreaalsuse süsteemide jooksutamiseks akende ja töölaua renderdamiseks kolmemõõtmelistes virtuaalsetes keskkondades. xrdesktop edendab idee integreerimisest olemasolevatesse töölauakeskkondadesse ilma eraldi spetsiaalse komposiitide halduri käivitamiseta, võimaldades 3D-peakomplektide kasutamist juba olemasolevates kasutajakoonfiguraatsioonides, mis on mõeldud tavalise monitoriga.
Projekti arhitektuur võimaldab integreerimist mistahes töölauakeskkondadega, kuid praeguses arendusetapis on virtuaalreaalsuse peakomplektide toetamiseks komponendid rakendatud KDE-le ja GNOME-le. KDE-le on 3D-peakomplektide tugi rakendatud Compiz-laadse plugina kaudu, GNOME-le aga GNOME Shelli jaoks mõeldud pakettide komplekti kaudu. Sellised komponendid peegeldavad olemasolevaid aknaid virtuaalsesse 3D-peakomplekti keskkonda kas eraldi stseenina või ülekatte režiimis, kus töölaua aknad võivad kattuda teiste virtuaalreaalsuse rakendustega.
Lisaks renderdamismehhanismidele pakub xrdesktop komponente navigeerimiseks ja sisestamiseks spetsialiseeritud ruumiliste kontrollerite, nagu Valve Index ja VIVE Wand, abil. Xrdesktop genereerib VR-kontrolleritelt saadud teabe põhjal tavalisi sisendite sündmusi, simuleerides klaviatuuri ja hiire kasutamist.
Xrdesktop sisaldab mitmeid teeke, mis формируют akna tekstuurid VR runtime jaoks OpenVR abil, samuti 3D-keskkonnas täieliku töölaua renderdamise süsteemi, mis põhineb API-l. Kuna xrdesktop ei paku oma aknahaldurit, on vaja integreerida see olemasolevate aknahalduritega (xrdesktop võib olla portitud igasuguse X11 või Waylandi aknahalduri jaoks). Graafikadraiverite küljes on nõutav draiver, mis toetab API Vulcanit ja laiendust VK_KHR_external_memory.
Xrdesktopi peamised koostisosad:
- — glib-mähis Vulkanile, mis pakub klasse seadmete, shaderite töötlemiseks ja tekstuuride initsialiseerimiseks mälust või DMA-puffritest;
- — API rakenduste arendamiseks, mis abstraheerib programmiliideseid virtuaalses reaalsuses. Praegu toetatakse ainult OpenVR-i, kuid peagi lisandub ka OpenXR standardi tugi;
- — teek sisendisündmuste sünteesimiseks, nagu hiire liikumine, klõpsud ja klahvivajutused, rakendatud backendidena xdo, xi2 ja Clutter jaoks;
- — teek akende haldamiseks 3D-keskkonnas, komplekt kaasnevaid vidinaid ja backendid stseeni renderdamiseks;
- ja — KWin plugin, et integreeruda KDE-ga ja Plasma vidin 3D-peakomplekti väljundirežiimi lülitamiseks KWin-is;
- ja — GNOME Shelli jaoks mõeldud plaastrite kogum xrdesktop toe integreerimiseks ja lisand, mis võimaldab GNOME Shellis 3D-peakomplektile välja lülituda.
Projekt toetab mitmeid meetodeid töötava laua ja akende haldamiseks virtuaalses keskkonnas, mida saab kasutada akende jäädvustamiseks, suurendamiseks, liigutamiseks, pööramiseks, sfääri peale panemiseks, akende kinnitamiseks ja varjamiseks, juhtmenüü kasutamiseks ning kahe käega samaaegselt kontrollimiseks, kasutades mitmeid kontrollerid.








Allikas: opennet.ru
