„Xrdesktop“ projektas, skirtas naudoti GNOME ir KDE virtualiosios realybės ausinėse

Kūrėjai iš Collabora pateiktas projektas xrdesktop, kuriame, padedant Valve, kuriama biblioteka su elementais, skirtais sąveikauti su tradiciniais staliniais kompiuteriais trimatėje aplinkoje, sukurtoje naudojant 3D akinius ir virtualios realybės šalmus. Bibliotekos kodas parašytas C ir išplatino pagal MIT licenciją. Paruošti mazgai paruoštasArch Linux и „Ubuntu“ 19.04 / 18.04.

Šiuo metu „Linux“ jau turi įrankius, skirtus tiesioginiam išėjimui į virtualiosios realybės ausines (Vulkan plėtiniai VK_EXT_acquire_xlib_display, skirti X11 ir VK_EXT_acquire_wl_display, skirti „Wayland“, tačiau nepalaikomas teisingas langų atvaizdavimas 3D erdvėje ir ekrano atnaujinimo dažnio sinchronizavimas. Projekto „xrdesktop“ tikslas – sukurti metodus, kurie leistų virtualioje aplinkoje naudoti klasikines sąsajas, orientuotas į XNUMXD ekrano rodymą ir klaviatūros bei pelės valdymą.

„Xrdesktop“ projektas, skirtas naudoti GNOME ir KDE virtualiosios realybės ausinėse

„xrdesktop“ komponentai išplečia esamas langų ir sudėtinių dalių tvarkykles, kad galėtų naudoti virtualios realybės vykdymo sistemas langams ir staliniams kompiuteriams pateikti trimatėje virtualioje aplinkoje. „xrdesktop“ skatina idėją integruotis į esamas darbalaukio aplinkas, nenaudojant atskiros specializuotos sudėtinės tvarkyklės ir leidžiant esamas pasirinktines konfigūracijas, naudojamas su įprastu monitoriumi, naudoti su 3D šalmais.

Projekto architektūra reiškia galimybę integruotis su bet kokiu darbalaukiu, tačiau dabartiniame kūrimo etape komponentai, palaikantys virtualios realybės ausines, yra įdiegti KDE ir GNOME. KDE 3D šalmų palaikymas įgyvendinamas naudojant į Compiz panašų įskiepį, o GNOME – per GNOME Shell pataisų rinkinį. Šie komponentai atspindi esamus langus į virtualią 3D šalmų aplinką atskiros scenos pavidalu arba perdangos režimu, kai darbalaukio langus galima uždėti ant kitų veikiančių virtualios realybės programų.

Be atvaizdavimo variklių, „xrdesktop“ teikia komponentų, skirtų naršyti ir įvesti naudojant specializuotus erdvinius valdiklius, tokius kaip „Valve Index“ ir „VIVE Wand“. Xrdesktop naudoja informaciją iš VR valdiklių, kad generuotų reguliarius įvesties įvykius, imituodamas klaviatūros ir pelės naudojimą.

„xrdesktop“ apima keletą bibliotekų, kurios generuoja langų tekstūras VR vykdymo laikui naudojant „OpenVR“, taip pat API pagrįstą sistemą, skirtą visam darbalaukiui atvaizduoti 3D aplinkoje. Kadangi xrdesktop nepateikia savo langų tvarkyklės, reikalingas integravimo darbas su esamomis langų tvarkyklėmis (xrdesktop gali būti perkeltas į bet kurį X11 arba Wayland langų tvarkyklę). Grafikos tvarkyklės pusėje, norint veikti, reikalinga tvarkyklė, palaikanti Vulkan API ir plėtinį VK_KHR_external_memory.

„Xrdesktop“ projektas, skirtas naudoti GNOME ir KDE virtualiosios realybės ausinėse

Pagrindiniai xrdesktop komponentai:

  • gulkanas - „Vulkan“ įrišimas, suteikiantis klases apdorojimo įrenginiams, šešėliams ir tekstūrų inicijavimui iš atminties ar DMA buferių;
  • gxr — API, skirta abstrahuoti programų sąsajas virtualios realybės programoms kurti. Šiuo metu palaikoma tik OpenVR, tačiau artimiausiu metu bus pridėtas OpenXR standarto palaikymas;
  • libinputsynth — biblioteka, skirta įvesties įvykiams, tokiems kaip pelės judėjimas, paspaudimai ir klavišų paspaudimai, sintezuoti, įdiegta xdo, xi2 ir Clutter užpakalinių programų pavidalu;
  • xrdesktop — biblioteka, skirta langams tvarkyti 3D aplinkoje, pridedamų valdiklių ir užpakalinių programų rinkinys, skirtas scenai atvaizduoti;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — KWin įskiepis, skirtas integracijai su KDE, ir Plasma programėlė, skirta KWin perjungti į išvesties režimą ant 3D šalmo;
  • gnome-shell pataisų rinkinys и gnome-shell-extension-xrdesktop – GNOME Shell pataisų rinkinys, skirtas integruoti xrdesktop palaikymą, ir priedas, skirtas perjungti išvestį į 3D šalmą GNOME Shell.

Projektas palaiko keletą metodų, kaip organizuoti sąveiką su darbalaukiu ir langais virtualioje aplinkoje, kurią galima naudoti langams užfiksuoti, mastelį perkelti, pasukti, perdengti ant sferos, prijungti ir slėpti langus, naudoti valdymo meniu ir vienu metu valdyti dvi rankos naudojant kelis valdiklius.

Šaltinis: opennet.ru

Добавить комментарий