Xrdesktop-projektet för att använda GNOME och KDE i virtual reality-headset

Utvecklare från Collabora presenteras projektet xrdesktop, där, med stöd av Valve, utvecklas ett bibliotek med element för att interagera med traditionella stationära datorer i tredimensionella miljöer skapade med 3D-glasögon och virtual reality-hjälmar. Bibliotekskoden är skriven i C och levererad av under MIT-licens. Färdiga sammanställningar beredd för Arch Linux и Ubuntu 19.04 / 18.04.

För närvarande har Linux redan verktyg för direkt utmatning till virtual reality-headset (Vulkan-tilläggen VK_EXT_acquire_xlib_display för X11 och VK_EXT_acquire_wl_display för Wayland), men det finns inget stöd på nivån för korrekt rendering av fönster i 3D-utrymme och synkronisering av skärmens uppdateringsfrekvens. Målet med xrdesktop-projektet är att utveckla metoder som möjliggör användning av klassiska gränssnitt fokuserade på XNUMXD-skärmvisning och tangentbords- och muskontroll i virtuella miljöer.

Xrdesktop-projektet för att använda GNOME och KDE i virtual reality-headset

xrdesktop-komponenter utökar befintliga fönster- och komposithanterare till att använda runtime-system för virtuell verklighet för att rendera fönster och skrivbord i virtuella 3D-miljöer. xrdesktop främjar idén om att integrera i befintliga skrivbordsmiljöer utan att behöva köra en separat specialiserad komposithanterare och tillåta befintliga anpassade konfigurationer som används med en vanlig bildskärm att användas med XNUMXD-hjälmar.

Projektets arkitektur innebär möjligheten att integrera med vilket skrivbord som helst, men i det nuvarande utvecklingsstadiet är komponenter för att stödja virtual reality-headset implementerade för KDE och GNOME. För KDE implementeras stöd för 3D-hjälmar genom ett Compiz-liknande plugin, och för GNOME genom en uppsättning patchar för GNOME Shell. Dessa komponenter speglar befintliga fönster i den virtuella miljön för 3D-hjälmar i form av en separat scen eller i överlagringsläge, där skrivbordsfönster kan läggas ovanpå andra virtuella verklighetstillämpningar.

Förutom renderingsmotorerna tillhandahåller xrdesktop komponenter för att tillhandahålla navigering och input med hjälp av specialiserade rumsliga kontroller som Valve Index och VIVE Wand. Xrdesktop använder information från VR-kontroller för att generera regelbundna indatahändelser, som simulerar användningen av ett tangentbord och en mus.

xrdesktop innehåller flera bibliotek som genererar fönstertexturer för VR-runtime med OpenVR, samt ett API-baserat system för att rendera ett komplett skrivbord i en 3D-miljö. Eftersom xrdesktop inte tillhandahåller sin egen fönsterhanterare krävs integrationsarbete med befintliga fönsterhanterare (xrdesktop kan portas till valfri X11 eller Wayland fönsterhanterare). På grafikdrivrutinssidan kräver driften en drivrutin som stöder Vulkan API och tillägget VK_KHR_external_memory.

Xrdesktop-projektet för att använda GNOME och KDE i virtual reality-headset

Huvudkomponenterna i xrdesktop:

  • gulkan - Glib-bindning för Vulkan, tillhandahåller klasser för bearbetning av enheter, shaders och initialisering av texturer från minne eller DMA-buffertar;
  • gxr — API för att abstrahera programgränssnitt för utveckling av virtuell verklighetstillämpningar. För närvarande stöds endast OpenVR, men stöd för OpenXR-standarden kommer att läggas till inom en snar framtid;
  • libinputsynth — Ett bibliotek för att syntetisera indatahändelser, såsom musrörelser, klick och tangenttryckningar, implementerat i form av backends för xdo, xi2 och Clutter;
  • xrdesktop — Ett bibliotek för att hantera fönster i en 3D-miljö, en uppsättning medföljande widgets och backends för att rendera scenen.
  • kwin-effekt-xrdesktop и kdeplasma-applets-xrdesktop — en plugin för KWin för integration med KDE och en plasma-applet för att byta KWin till utgångsläge på en 3D-hjälm;
  • gnome-skal patchset и gnome-shell-extension-xrdesktop — en uppsättning patchar för GNOME Shell för att integrera xrdesktop-stöd och ett tillägg för att byta utdata till en 3D-hjälm i GNOME Shell.

Projektet stöder flera metoder för att organisera interaktion med skrivbordet och fönstren i en virtuell miljö, som kan användas för att fånga fönster, skala, flytta, rotera, lägga över en sfär, docka och dölja fönster, använda kontrollmenyn och samtidigt styra med två händer med flera kontroller.

Källa: opennet.ru

Lägg en kommentar