Het xrdesktop-project voor het gebruik van GNOME en KDE in virtual reality-headsets

Ontwikkelaars van Collabora ingediend project xrdesktop, waarin met steun van Valve een bibliotheek wordt ontwikkeld met elementen voor interactie met traditionele desktops in driedimensionale omgevingen die zijn gemaakt met behulp van 3D-brillen en virtual reality-helmen. De bibliotheekcode is geschreven in C en gedistribueerd door onder MIT-licentie. Kant-en-klare montages bereid voor Arch Linux и Ubuntu 19.04 / 18.04.

Momenteel heeft Linux al tools voor directe uitvoer naar virtual reality-headsets (Vulkan-extensies VK_EXT_acquire_xlib_display voor X11 en VK_EXT_acquire_wl_display voor Wayland), maar er is geen ondersteuning op het niveau van correcte weergave van vensters in 3D-ruimte en synchronisatie van de vernieuwingsfrequentie van het scherm. Het doel van het xrdesktop-project is het ontwikkelen van methoden die het gebruik van klassieke interfaces mogelijk maken, gericht op XNUMXD-schermweergave en toetsenbord- en muisbesturing in virtuele omgevingen.

Het xrdesktop-project voor het gebruik van GNOME en KDE in virtual reality-headsets

xrdesktop-componenten breiden bestaande venster- en composietmanagers uit om virtual reality-runtime-systemen te gebruiken om vensters en desktops in virtuele 3D-omgevingen weer te geven. xrdesktop promoot het idee van integratie in bestaande desktopomgevingen zonder de noodzaak om een ​​aparte gespecialiseerde composietmanager te draaien en maakt het mogelijk bestaande aangepaste configuraties die met een gewone monitor worden gebruikt, te gebruiken met XNUMXD-helmen.

De architectuur van het project impliceert de mogelijkheid om met elke desktop te integreren, maar in de huidige ontwikkelingsfase worden componenten ter ondersteuning van virtual reality-headsets geïmplementeerd voor KDE en GNOME. Voor KDE wordt ondersteuning voor 3D-helmen geïmplementeerd via een Compiz-achtige plug-in, en voor GNOME via een reeks patches voor GNOME Shell. Deze componenten spiegelen bestaande vensters in de virtuele omgeving van 3D-helmen in de vorm van een afzonderlijke scène of in overlay-modus, waarin bureaubladvensters over andere actieve virtual reality-applicaties kunnen worden gelegd.

Naast rendering-engines biedt xrdesktop componenten voor navigatie en invoer met behulp van gespecialiseerde ruimtelijke controllers zoals de Valve Index en VIVE Wand. Xrdesktop gebruikt informatie van VR-controllers om regelmatige invoergebeurtenissen te genereren, waarbij het gebruik van een toetsenbord en muis wordt gesimuleerd.

xrdesktop bevat verschillende bibliotheken die venstertexturen genereren voor de VR-runtime met behulp van OpenVR, evenals een API-gebaseerd systeem voor het weergeven van een volledig bureaublad in een 3D-omgeving. Omdat xrdesktop geen eigen vensterbeheerder biedt, is integratiewerk met bestaande vensterbeheerders vereist (xrdesktop kan worden overgezet naar elke X11- of Wayland-vensterbeheerder). Aan de kant van het grafische stuurprogramma vereist de werking een stuurprogramma dat de Vulkan API en de VK_KHR_external_memory-extensie ondersteunt.

Het xrdesktop-project voor het gebruik van GNOME en KDE in virtual reality-headsets

De belangrijkste componenten van xrdesktop:

  • gulkan - vlotte binding voor Vulkan, die klassen biedt voor het verwerken van apparaten, shaders en het initialiseren van texturen vanuit geheugen of DMA-buffers;
  • gxr — API voor het abstraheren van programma-interfaces voor het ontwikkelen van virtual reality-toepassingen. Momenteel wordt alleen OpenVR ondersteund, maar ondersteuning voor de OpenXR-standaard zal in de nabije toekomst worden toegevoegd;
  • libinputsynth — een bibliotheek voor het synthetiseren van invoergebeurtenissen, zoals muisbewegingen, klikken en toetsaanslagen, geïmplementeerd in de vorm van backends voor xdo, xi2 en Clutter;
  • xrdesktop — een bibliotheek voor het beheren van vensters in een 3D-omgeving, een reeks bijbehorende widgets en backends voor het weergeven van de scène;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — een plug-in voor KWin voor integratie met KDE en een Plasma-applet voor het overschakelen van KWin naar de uitvoermodus op een 3D-helm;
  • kaboutershell-patchset и gnome-shell-extensie-xrdesktop — een set patches voor GNOME Shell om xrdesktop-ondersteuning te integreren en een add-on voor het overschakelen van de uitvoer naar een 3D-helm in GNOME Shell.

Het project ondersteunt verschillende methoden voor het organiseren van interactie met het bureaublad en vensters in een virtuele omgeving, die kunnen worden gebruikt om vensters vast te leggen, te schalen, te verplaatsen, te roteren, op een bol te plaatsen, vensters te docken en te verbergen, het bedieningsmenu te gebruiken en tegelijkertijd te besturen met twee handen met meerdere controllers.

Bron: opennet.ru

Voeg een reactie