Le projet xrdesktop pour utiliser GNOME et KDE dans les casques de réalité virtuelle

Développeurs de Collabora soumis projet xrdesktop, dans lequel, avec le soutien de Valve, une bibliothèque est en cours de développement avec des éléments permettant d'interagir avec les ordinateurs de bureau traditionnels dans des environnements tridimensionnels créés à l'aide de lunettes 3D et de casques de réalité virtuelle. Le code de la bibliothèque est écrit en C et distribué par sous licence MIT. Assemblages prêts à l'emploi préparé pour Arch Linux и Ubuntu 19.04 / 18.04.

Actuellement, Linux dispose déjà d'outils de sortie directe vers les casques de réalité virtuelle (extensions Vulkan VK_EXT_acquire_xlib_display pour X11 et VK_EXT_acquire_wl_display pour Wayland), mais il n'y a pas de support au niveau du rendu correct des fenêtres dans l'espace 3D et de la synchronisation du taux de rafraîchissement de l'écran. L'objectif du projet xrdesktop est de développer des méthodes qui permettront l'utilisation d'interfaces classiques axées sur l'affichage d'écran XNUMXD et le contrôle du clavier et de la souris dans des environnements virtuels.

Le projet xrdesktop pour utiliser GNOME et KDE dans les casques de réalité virtuelle

Les composants xrdesktop étendent les gestionnaires de fenêtres et composites existants pour utiliser les systèmes d'exécution de réalité virtuelle pour restituer les fenêtres et les bureaux dans des environnements virtuels 3D. xrdesktop promeut l'idée d'une intégration dans les environnements de bureau existants sans avoir besoin d'exécuter un gestionnaire composite spécialisé distinct et permettant aux configurations personnalisées existantes utilisées avec un moniteur ordinaire d'être utilisées avec des casques XNUMXD.

L'architecture du projet implique la possibilité de s'intégrer à n'importe quel bureau, mais au stade actuel de développement, des composants prenant en charge les casques de réalité virtuelle sont implémentés pour KDE et GNOME. Pour KDE, la prise en charge des casques 3D est implémentée via un plugin de type Compiz, et pour GNOME via un ensemble de correctifs pour GNOME Shell. Ces composants reflètent les fenêtres existantes dans l'environnement virtuel des casques 3D sous la forme d'une scène distincte ou en mode superposition, dans lequel les fenêtres du bureau peuvent être superposées à d'autres applications de réalité virtuelle en cours d'exécution.

En plus des moteurs de rendu, xrdesktop fournit des composants permettant la navigation et la saisie à l'aide de contrôleurs spatiaux spécialisés tels que Valve Index et VIVE Wand. Xrdesktop utilise les informations des contrôleurs VR pour générer des événements d'entrée réguliers, simulant l'utilisation d'un clavier et d'une souris.

xrdesktop comprend plusieurs bibliothèques qui génèrent des textures de fenêtre pour le runtime VR à l'aide d'OpenVR, ainsi qu'un système basé sur une API pour le rendu d'un bureau complet dans un environnement 3D. Étant donné que xrdesktop ne fournit pas son propre gestionnaire de fenêtres, un travail d'intégration avec les gestionnaires de fenêtres existants est requis (xrdesktop peut être porté sur n'importe quel gestionnaire de fenêtres X11 ou Wayland). Côté pilote graphique, le fonctionnement nécessite un pilote prenant en charge l'API Vulkan et l'extension VK_KHR_external_memory.

Le projet xrdesktop pour utiliser GNOME et KDE dans les casques de réalité virtuelle

Les principaux composants de xrdesktop :

  • Gulkan - liaison glib pour Vulkan, fournissant des classes pour les dispositifs de traitement, les shaders et l'initialisation des textures à partir de la mémoire ou des tampons DMA ;
  • GXR — API pour l'abstraction des interfaces de programme pour le développement d'applications de réalité virtuelle. Actuellement, seul OpenVR est pris en charge, mais la prise en charge du standard OpenXR sera ajoutée dans un avenir proche ;
  • libinputsynth — une bibliothèque de synthèse d'événements d'entrée, tels que les mouvements de la souris, les clics et les frappes au clavier, implémentée sous la forme de backends pour xdo, xi2 et Clutter ;
  • xrdesktop — une bibliothèque pour gérer les fenêtres dans un environnement 3D, un ensemble de widgets et de backends pour le rendu de la scène ;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — un plugin pour KWin pour l'intégration avec KDE et une applet Plasma pour passer KWin en mode sortie sur un casque 3D ;
  • ensemble de correctifs gnome-shell и gnome-shell-extension-xrdesktop - un ensemble de correctifs pour GNOME Shell pour intégrer la prise en charge de xrdesktop et un module complémentaire pour basculer la sortie vers un casque 3D dans GNOME Shell.

Le projet prend en charge plusieurs méthodes pour organiser l'interaction avec le bureau et les fenêtres dans un environnement virtuel, qui peuvent être utilisées pour capturer des fenêtres, redimensionner, déplacer, faire pivoter, superposer sur une sphère, ancrer et masquer des fenêtres, utiliser le menu de contrôle et contrôler simultanément avec deux mains en utilisant plusieurs contrôleurs.

Source: opennet.ru

Ajouter un commentaire