Das xrdesktop-Projekt zur Verwendung von GNOME und KDE in Virtual-Reality-Headsets

Entwickler von Collabora eingereicht Projekt xrdesktop, in dem mit Unterstützung von Valve eine Bibliothek mit Elementen für die Interaktion mit herkömmlichen Desktops in dreidimensionalen Umgebungen entwickelt wird, die mithilfe von 3D-Brillen und Virtual-Reality-Helmen erstellt wurden. Der Bibliothekscode ist in C und geschrieben vertrieben von unter MIT-Lizenz. Fertige Baugruppen bereit für Arch Linux и Ubuntu 19.04 / 18.04.

Derzeit verfügt Linux bereits über Tools für die direkte Ausgabe auf Virtual-Reality-Headsets (Vulkan-Erweiterungen VK_EXT_acquire_xlib_display für X11 und VK_EXT_acquire_wl_display für Wayland), es gibt jedoch keine Unterstützung auf der Ebene der korrekten Darstellung von Fenstern im 3D-Raum und der Synchronisierung der Bildschirmaktualisierungsrate. Ziel des xrdesktop-Projekts ist die Entwicklung von Methoden, die den Einsatz klassischer Schnittstellen mit Fokus auf XNUMXD-Bildschirmdarstellung sowie Tastatur- und Maussteuerung in virtuellen Umgebungen ermöglichen.

Das xrdesktop-Projekt zur Verwendung von GNOME und KDE in Virtual-Reality-Headsets

xrdesktop-Komponenten erweitern bestehende Fenster- und Verbundmanager, um Virtual-Reality-Laufzeitsysteme zum Rendern von Fenstern und Desktops in virtuellen 3D-Umgebungen zu nutzen. xrdesktop fördert die Idee der Integration in bestehende Desktop-Umgebungen, ohne dass ein separater spezialisierter Composite-Manager ausgeführt werden muss, und ermöglicht die Verwendung bestehender benutzerdefinierter Konfigurationen, die mit einem normalen Monitor verwendet werden, mit XNUMXD-Helmen.

Die Architektur des Projekts impliziert die Möglichkeit der Integration in jeden Desktop. Im aktuellen Entwicklungsstadium sind jedoch Komponenten zur Unterstützung von Virtual-Reality-Headsets für KDE und GNOME implementiert. Für KDE wird die Unterstützung für 3D-Helme durch ein Compiz-ähnliches Plugin und für GNOME durch eine Reihe von Patches für die GNOME-Shell implementiert. Diese Komponenten spiegeln bestehende Fenster in der virtuellen Umgebung von 3D-Helmen in Form einer separaten Szene oder im Overlay-Modus, in dem Desktop-Fenster über andere laufende Virtual-Reality-Anwendungen gelegt werden können.

Zusätzlich zu den Rendering-Engines bietet xrdesktop Komponenten zur Bereitstellung von Navigation und Eingabe mithilfe spezieller räumlicher Controller wie Valve Index und VIVE Wand. Xrdesktop nutzt Informationen von VR-Controllern, um regelmäßige Eingabeereignisse zu generieren und so die Verwendung von Tastatur und Maus zu simulieren.

xrdesktop umfasst mehrere Bibliotheken, die mithilfe von OpenVR Fenstertexturen für die VR-Laufzeit generieren, sowie ein API-basiertes System zum Rendern eines vollständigen Desktops in einer 3D-Umgebung. Da xrdesktop keinen eigenen Fenstermanager bereitstellt, sind Integrationsarbeiten mit vorhandenen Fenstermanagern erforderlich (xrdesktop kann auf jeden X11- oder Wayland-Fenstermanager portiert werden). Auf der Seite des Grafiktreibers ist für den Betrieb ein Treiber erforderlich, der die Vulkan-API und die Erweiterung VK_KHR_external_memory unterstützt.

Das xrdesktop-Projekt zur Verwendung von GNOME und KDE in Virtual-Reality-Headsets

Die Hauptkomponenten von xrdesktop:

  • Gulkan - Glib-Bindung für Vulkan, die Klassen für die Verarbeitung von Geräten, Shader und die Initialisierung von Texturen aus dem Speicher oder DMA-Puffer bereitstellt;
  • gxr — API zur Abstraktion von Programmschnittstellen zur Entwicklung von Virtual-Reality-Anwendungen. Derzeit wird nur OpenVR unterstützt, aber die Unterstützung für den OpenXR-Standard wird in naher Zukunft hinzugefügt;
  • libinputsynth – eine Bibliothek zum Synthetisieren von Eingabeereignissen wie Mausbewegungen, Klicks und Tastenanschlägen, implementiert in Form von Backends für xdo, xi2 und Clutter;
  • xrdesktop — eine Bibliothek zum Verwalten von Fenstern in einer 3D-Umgebung, eine Reihe begleitender Widgets und Backends zum Rendern der Szene;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — ein Plugin für KWin zur Integration mit KDE und ein Plasma-Applet zum Umschalten von KWin in den Ausgabemodus auf einem 3D-Helm;
  • Gnome-Shell-Patchset и Gnome-Shell-Erweiterung-xrdesktop – eine Reihe von Patches für GNOME Shell zur Integration der xrdesktop-Unterstützung und ein Add-on zum Umschalten der Ausgabe auf einen 3D-Helm in GNOME Shell.

Das Projekt unterstützt mehrere Methoden zum Organisieren der Interaktion mit dem Desktop und Fenstern in einer virtuellen Umgebung, mit denen Fenster erfasst, skaliert, verschoben, gedreht, auf einer Kugel überlagert, Fenster angedockt und ausgeblendet, das Steuerungsmenü verwendet und gleichzeitig gesteuert werden können zwei Hände mit mehreren Controllern.

Source: opennet.ru

Kommentar hinzufügen