xrdesktop-prosjektet for bruk av GNOME og KDE i virtual reality-headset

Utviklere fra Collabora presentert prosjekt xrdesktop, der det, med støtte fra Valve, utvikles et bibliotek med elementer for samhandling med tradisjonelle skrivebord i tredimensjonale miljøer laget ved hjelp av 3D-briller og virtual reality-hjelmer. Bibliotekkoden er skrevet i C og distribuert av under MIT-lisens. Ferdige sammenstillinger forberedt for Arch Linux и Ubuntu 19.04 / 18.04.

Foreløpig har Linux allerede verktøy for direkte utgang til virtual reality-headset (Vulkan-utvidelsene VK_EXT_acquire_xlib_display for X11 og VK_EXT_acquire_wl_display for Wayland), men det er ingen støtte på nivået for korrekt gjengivelse av vinduer i 3D-rom og synkronisering av skjermens oppdateringsfrekvens. Målet med xrdesktop-prosjektet er å utvikle metoder som vil tillate bruk av klassiske grensesnitt fokusert på XNUMXD-skjermvisning og tastatur- og muskontroll i virtuelle miljøer.

xrdesktop-prosjektet for bruk av GNOME og KDE i virtual reality-headset

xrdesktop-komponenter utvider eksisterende vindu- og komposittbehandlere til å bruke virtuell virkelighet kjøretidssystemer for å gjengi vinduer og skrivebord i virtuelle 3D-miljøer. xrdesktop fremmer ideen om å integrere i eksisterende skrivebordsmiljøer uten å måtte kjøre en separat spesialisert komposittbehandling og tillate at eksisterende tilpassede konfigurasjoner brukt med en vanlig skjerm kan brukes med XNUMXD-hjelmer.

Prosjektets arkitektur innebærer muligheten til å integrere med hvilket som helst skrivebord, men på det nåværende utviklingsstadiet er komponenter for å støtte virtuelle virkelighetshodesett implementert for KDE og GNOME. For KDE er støtte for 3D-hjelmer implementert gjennom en Compiz-lignende plugin, og for GNOME gjennom et sett med patcher for GNOME Shell. Disse komponentene speiler eksisterende vinduer inn i det virtuelle miljøet til 3D-hjelmer i form av en separat scene eller i overleggsmodus, der skrivebordsvinduer kan legges over andre virtuelle virkelighetsapplikasjoner.

I tillegg til å gjengi motorer, tilbyr xrdesktop komponenter for å gi navigasjon og input ved hjelp av spesialiserte romkontrollere som Valve Index og VIVE Wand. Xrdesktop bruker informasjon fra VR-kontrollere for å generere vanlige inngangshendelser, som simulerer bruken av et tastatur og en mus.

xrdesktop inkluderer flere biblioteker som genererer vindusteksturer for VR-kjøringen ved hjelp av OpenVR, samt et API-basert system for å gjengi et komplett skrivebord i et 3D-miljø. Siden xrdesktop ikke har sin egen vindusbehandler, kreves integreringsarbeid med eksisterende vindusbehandlere (xrdesktop kan porteres til hvilken som helst X11- eller Wayland-vindusbehandler). På grafikkdriversiden krever driften en driver som støtter Vulkan API og utvidelsen VK_KHR_external_memory.

xrdesktop-prosjektet for bruk av GNOME og KDE i virtual reality-headset

Hovedkomponentene til xrdesktop:

  • gulkan - Glib-binding for Vulkan, gir klasser for prosessering av enheter, shadere og initialisering av teksturer fra minne eller DMA-buffere;
  • gxr — API for å abstrahere programgrensesnitt for utvikling av virtual reality-applikasjoner. Foreløpig støttes kun OpenVR, men støtte for OpenXR-standarden vil bli lagt til i nær fremtid;
  • libinputsynth — et bibliotek for å syntetisere input-hendelser, som musebevegelser, klikk og tastetrykk, implementert i form av backends for xdo, xi2 og Clutter;
  • xrdesktop — et bibliotek for å administrere vinduer i et 3D-miljø, et sett med tilhørende widgets og backends for gjengivelse av scenen;
  • kwin-effekt-xrdesktop и kdeplasma-applets-xrdesktop — en plugin for KWin for integrasjon med KDE og en Plasma-applet for å bytte KWin til utgangsmodus på en 3D-hjelm;
  • gnome-shell patchsett и gnome-shell-extension-xrdesktop — et sett med patcher for GNOME Shell for å integrere xrdesktop-støtte og et tillegg for å bytte utgang til en 3D-hjelm i GNOME Shell.

Prosjektet støtter flere metoder for å organisere interaksjon med skrivebordet og vinduene i et virtuelt miljø, som kan brukes til å fange opp vinduer, skalere, flytte, rotere, overlegge på en kule, forankre og skjule vinduer, bruke kontrollmenyen og samtidig styre med to hender ved hjelp av flere kontrollere.

Kilde: opennet.ru

Legg til en kommentar