xrdesktop-projektet til brug af GNOME og KDE i virtual reality-headset

Udviklere fra Collabora præsenteret projekt xrdesktop, hvor der med støtte fra Valve udvikles et bibliotek med elementer til at interagere med traditionelle desktops inde i tredimensionelle miljøer skabt ved hjælp af 3D-briller og virtual reality-hjelme. Bibliotekskoden er skrevet i C og distribueret af under MIT-licens. Færdiglavede samlinger forberedt for Arch Linux и Ubuntu 19.04 / 18.04.

I øjeblikket har Linux allerede værktøjer til direkte output til virtual reality-headset (Vulkan-udvidelserne VK_EXT_acquire_xlib_display for X11 og VK_EXT_acquire_wl_display for Wayland), men der er ingen support på niveauet for korrekt gengivelse af vinduer i 3D-rum og synkronisering af skærmens opdateringshastighed. Målet med xrdesktop-projektet er at udvikle metoder, der vil tillade brugen af ​​klassiske grænseflader fokuseret på XNUMXD-skærmvisning og tastatur- og musstyring i virtuelle miljøer.

xrdesktop-projektet til brug af GNOME og KDE i virtual reality-headset

xrdesktop-komponenter udvider eksisterende vindues- og sammensatte administratorer til at bruge virtual reality-runtime-systemer til at gengive vinduer og desktops i virtuelle 3D-miljøer. xrdesktop fremmer ideen om at integrere i eksisterende desktop-miljøer uden behov for at køre en separat specialiseret composite manager og tillade eksisterende brugerdefinerede konfigurationer, der bruges med en almindelig skærm, at blive brugt med XNUMXD-hjelme.

Projektets arkitektur indebærer muligheden for at integrere med ethvert skrivebord, men på det nuværende udviklingstrin er komponenter til understøttelse af virtual reality-headset implementeret til KDE og GNOME. For KDE er understøttelse af 3D-hjelme implementeret gennem et Compiz-lignende plugin, og for GNOME gennem et sæt patches til GNOME Shell. Disse komponenter spejler eksisterende vinduer ind i det virtuelle miljø af 3D-hjelme i form af en separat scene eller i overlejringstilstand, hvor skrivebordsvinduer kan overlejres på andre kørende virtual reality-applikationer.

Ud over gengivelsesmotorer leverer xrdesktop komponenter til at levere navigation og input ved hjælp af specialiserede rumlige controllere såsom Valve Index og VIVE Wand. Xrdesktop bruger information fra VR-controllere til at generere regelmæssige inputhændelser, der simulerer brugen af ​​et tastatur og en mus.

xrdesktop indeholder adskillige biblioteker, der genererer vinduesteksturer til VR-runtime ved hjælp af OpenVR, samt et API-baseret system til gengivelse af et komplet skrivebord i et 3D-miljø. Da xrdesktop ikke har sin egen vindueshåndtering, er integrationsarbejde med eksisterende vinduesadministratorer påkrævet (xrdesktop kan overføres til enhver X11 eller Wayland vindueshåndtering). På grafikdriversiden kræver driften en driver, der understøtter Vulkan API og VK_KHR_external_memory-udvidelsen.

xrdesktop-projektet til brug af GNOME og KDE i virtual reality-headset

De vigtigste komponenter i xrdesktop:

  • gulkan - Glib-binding til Vulkan, der giver klasser til behandling af enheder, shaders og initialisering af teksturer fra hukommelse eller DMA-buffere;
  • gxr — API til at abstrahere programgrænseflader til udvikling af virtual reality-applikationer. I øjeblikket understøttes kun OpenVR, men understøttelse af OpenXR-standarden vil blive tilføjet i den nærmeste fremtid;
  • libinputsynth — et bibliotek til at syntetisere inputhændelser, såsom musebevægelser, klik og tastetryk, implementeret i form af backends til xdo, xi2 og Clutter;
  • xrdesktop — et bibliotek til styring af vinduer i et 3D-miljø, et sæt medfølgende widgets og backends til gengivelse af scenen;
  • kwin-effekt-xrdesktop и kdeplasma-applets-xrdesktop — et plugin til KWin til integration med KDE og en Plasma-applet til at skifte KWin til outputtilstand på en 3D-hjelm;
  • gnome-skal patchset и gnome-shell-extension-xrdesktop — et sæt patches til GNOME Shell for at integrere xrdesktop-understøttelse og en tilføjelse til at skifte output til en 3D-hjelm i GNOME Shell.

Projektet understøtter flere metoder til at organisere interaktion med skrivebordet og vinduerne i et virtuelt miljø, som kan bruges til at fange vinduer, skalere, flytte, rotere, overlejre på en kugle, forankre og skjule vinduer, bruge kontrolmenuen og samtidig styre med to hænder ved hjælp af flere controllere.

Kilde: opennet.ru

Tilføj en kommentar