El proyecto xrdesktop para usar GNOME y KDE en cascos de realidad virtual

Desarrolladores de Collabora presentado proyecto xrdescritorio, en el que, con el apoyo de Valve, se desarrolla una biblioteca con elementos para interactuar con escritorios tradicionales dentro de entornos tridimensionales creados mediante gafas 3D y cascos de realidad virtual. El código de la biblioteca está escrito en C y distribuido por bajo licencia MIT. Conjuntos listos para usar preparado para Arch Linux и ubuntu 19.04/18.04.

Actualmente, Linux ya cuenta con herramientas para salida directa a cascos de realidad virtual (extensiones Vulkan VK_EXT_acquire_xlib_display para X11 y VK_EXT_acquire_wl_display para Wayland), pero no hay soporte a nivel de representación correcta de ventanas en espacio 3D y sincronización de la frecuencia de actualización de la pantalla. El objetivo del proyecto xrdesktop es desarrollar métodos que permitan el uso de interfaces clásicas enfocadas a la visualización de pantalla XNUMXD y al control de teclado y mouse en entornos virtuales.

El proyecto xrdesktop para usar GNOME y KDE en cascos de realidad virtual

Los componentes de xrdesktop amplían los administradores compuestos y de ventanas existentes para utilizar sistemas de ejecución de realidad virtual para representar ventanas y escritorios en entornos virtuales 3D. xrdesktop promueve la idea de integrarse en entornos de escritorio existentes sin la necesidad de ejecutar un administrador compuesto especializado separado y permitir que las configuraciones personalizadas existentes utilizadas con un monitor normal se utilicen con cascos XNUMXD.

La arquitectura del proyecto implica la capacidad de integrarse con cualquier escritorio, pero en la etapa actual de desarrollo, se han implementado componentes compatibles con cascos de realidad virtual para KDE y GNOME. Para KDE, el soporte para cascos 3D se implementa a través de un complemento similar a Compiz, y para GNOME a través de un conjunto de parches para GNOME Shell. Estos componentes reflejan las ventanas existentes en el entorno virtual de los cascos 3D en forma de una escena separada o en modo superpuesto, en el que las ventanas del escritorio se pueden superponer a otras aplicaciones de realidad virtual en ejecución.

Además de los motores de renderizado, xrdesktop proporciona componentes para proporcionar navegación y entrada mediante controladores espaciales especializados como Valve Index y VIVE Wand. Xrdesktop utiliza información de los controladores de realidad virtual para generar eventos de entrada regulares, simulando el uso de un teclado y un mouse.

xrdesktop incluye varias bibliotecas que generan texturas de ventanas para el tiempo de ejecución de realidad virtual utilizando OpenVR, así como un sistema basado en API para renderizar un escritorio completo en un entorno 3D. Dado que xrdesktop no proporciona su propio administrador de ventanas, se requiere trabajo de integración con los administradores de ventanas existentes (xrdesktop se puede migrar a cualquier administrador de ventanas X11 o Wayland). En el lado del controlador de gráficos, la operación requiere un controlador que admita la API de Vulkan y la extensión VK_KHR_external_memory.

El proyecto xrdesktop para usar GNOME y KDE en cascos de realidad virtual

Los componentes principales de xrdesktop:

  • gulkan - enlace simplista para Vulkan, que proporciona clases para dispositivos de procesamiento, sombreadores e inicialización de texturas desde la memoria o buffers DMA;
  • gxr — API para abstraer interfaces de programas para desarrollar aplicaciones de realidad virtual. Actualmente solo se admite OpenVR, pero en un futuro próximo se agregará soporte para el estándar OpenXR;
  • libinputsynth — una biblioteca para sintetizar eventos de entrada, como movimientos del mouse, clics y pulsaciones de teclas, implementada en forma de backends para xdo, xi2 y Clutter;
  • xrdescritorio — una biblioteca para gestionar ventanas en un entorno 3D, un conjunto de widgets y servidores para renderizar la escena;
  • efecto-kwin-xrdesktop и kdeplasma-applets-xrdesktop — un complemento para KWin para la integración con KDE y un subprograma Plasma para cambiar KWin al modo de salida en un casco 3D;
  • conjunto de parches de gnome-shell и extensión-gnome-shell-xrdesktop — un conjunto de parches para GNOME Shell para integrar soporte xrdesktop y un complemento para cambiar la salida a un casco 3D en GNOME Shell.

El proyecto admite varios métodos para organizar la interacción con el escritorio y las ventanas en un entorno virtual, que se pueden utilizar para capturar ventanas, escalar, mover, rotar, superponer en una esfera, acoplar y ocultar ventanas, usar el menú de control y controlar simultáneamente con dos manos usando múltiples controladores.

Fuente: opennet.ru

Añadir un comentario