Proiectul xrdesktop pentru utilizarea GNOME și KDE în căști de realitate virtuală

Dezvoltatori de la Collabora prezentat proiect xrdesktop, în care, cu sprijinul Valve, se dezvoltă o bibliotecă cu elemente de interacțiune cu desktop-uri tradiționale în medii tridimensionale create folosind ochelari 3D și căști de realitate virtuală. Codul bibliotecii este scris în C și distribuit de sub licență MIT. Ansambluri gata făcute pregătit pentru Arch Linux и Ubuntu 19.04 / 18.04.

În prezent, Linux are deja instrumente de ieșire directă către căștile de realitate virtuală (extensiile Vulkan VK_EXT_acquire_xlib_display pentru X11 și VK_EXT_acquire_wl_display pentru Wayland), dar nu există suport la nivelul redării corecte a ferestrelor în spațiul 3D și sincronizarea ratei de reîmprospătare a ecranului. Scopul proiectului xrdesktop este de a dezvolta metode care să permită utilizarea interfețelor clasice axate pe afișarea ecranului XNUMXD și controlul tastaturii și mouse-ului în medii virtuale.

Proiectul xrdesktop pentru utilizarea GNOME și KDE în căști de realitate virtuală

Componentele xrdesktop extind managerii de ferestre și compozite existente pentru a utiliza sistemele de rulare de realitate virtuală pentru a reda ferestre și desktop-uri în medii virtuale 3D. xrdesktop promovează ideea integrării în mediile desktop existente fără a fi nevoie să rulați un manager compozit specializat și să permită configurațiilor personalizate existente utilizate cu un monitor obișnuit să fie utilizate cu căști XNUMXD.

Arhitectura proiectului presupune abilitatea de a se integra cu orice desktop, dar în stadiul actual de dezvoltare sunt implementate componente pentru suportul căștilor de realitate virtuală pentru KDE și GNOME. Pentru KDE, suportul pentru căștile 3D este implementat printr-un plugin asemănător Compiz, iar pentru GNOME printr-un set de corecții pentru GNOME Shell. Aceste componente oglindesc ferestrele existente în mediul virtual al căștilor 3D sub forma unei scene separate sau în modul suprapunere, în care ferestrele de desktop pot fi suprapuse altor aplicații de realitate virtuală care rulează.

Pe lângă motoarele de randare, xrdesktop oferă componente pentru a oferi navigare și intrare folosind controlere spațiale specializate, cum ar fi Valve Index și VIVE Wand. Xrdesktop utilizează informații de la controlerele VR pentru a genera evenimente regulate de intrare, simulând utilizarea unei tastaturi și a unui mouse.

xrdesktop include mai multe biblioteci care generează texturi de fereastră pentru runtime VR folosind OpenVR, precum și un sistem bazat pe API pentru redarea unui desktop complet într-un mediu 3D. Deoarece xrdesktop nu oferă propriul manager de ferestre, este necesară integrarea cu managerii de ferestre existente (xrdesktop poate fi portat la orice manager de ferestre X11 sau Wayland). În ceea ce privește driverul grafic, operarea necesită un driver care acceptă API-ul Vulkan și extensia VK_KHR_external_memory.

Proiectul xrdesktop pentru utilizarea GNOME și KDE în căști de realitate virtuală

Componentele principale ale xrdesktop:

  • gulkan - glib binding pentru Vulkan, oferind clase pentru dispozitive de procesare, shadere și inițializare texturi din memorie sau buffer-uri DMA;
  • gxr — API pentru abstractizarea interfețelor programelor pentru dezvoltarea aplicațiilor de realitate virtuală. În prezent, este acceptat doar OpenVR, dar suportul pentru standardul OpenXR va fi adăugat în viitorul apropiat;
  • libinputsynth — o bibliotecă pentru sintetizarea evenimentelor de intrare, cum ar fi mișcarea mouse-ului, clicuri și apăsări de taste, implementată sub formă de backend-uri pentru xdo, xi2 și Clutter;
  • xrdesktop — o bibliotecă pentru gestionarea ferestrelor într-un mediu 3D, un set de widget-uri însoțitoare și backend-uri pentru redarea scenei;
  • kwin-efect-xrdesktop и kdeplasma-applets-xrdesktop — un plugin pentru KWin pentru integrarea cu KDE și un applet Plasma pentru comutarea KWin în modul de ieșire pe o cască 3D;
  • set de corecții gnome-shell и gnome-shell-extension-xrdesktop — un set de corecții pentru GNOME Shell pentru a integra suportul xrdesktop și un supliment pentru comutarea ieșirii la o cască 3D în GNOME Shell.

Proiectul suportă mai multe metode de organizare a interacțiunii cu desktopul și ferestrele într-un mediu virtual, care pot fi folosite pentru a captura ferestre, scala, muta, rotește, suprapune pe o sferă, andoca și ascunde ferestre, folosește meniul de control și controlează simultan cu două mâini folosind mai multe controlere.

Sursa: opennet.ru

Adauga un comentariu