O projeto xrdesktop para usar GNOME e KDE em headsets de realidade virtual

Desenvolvedores da Collabora submetido projeto xrdesktop, no qual, com o apoio da Valve, está sendo desenvolvida uma biblioteca com elementos para interação com desktops tradicionais em ambientes tridimensionais criados com óculos 3D e capacetes de realidade virtual. O código da biblioteca é escrito em C e distribuído por sob licença do MIT. Montagens prontas preparado para Arch Linux и Ubuntu 19.04 / 18.04.

Atualmente, o Linux já possui ferramentas para saída direta para headsets de realidade virtual (extensões Vulkan VK_EXT_acquire_xlib_display para X11 e VK_EXT_acquire_wl_display para Wayland), mas não há suporte no nível de renderização correta de janelas no espaço 3D e sincronização da taxa de atualização da tela. O objetivo do projeto xrdesktop é desenvolver métodos que permitam a utilização de interfaces clássicas em ambientes virtuais, com foco na saída de tela XNUMXD e no controle de teclado e mouse.

O projeto xrdesktop para usar GNOME e KDE em headsets de realidade virtual

Os componentes do xrdesktop estendem os gerenciadores de janelas e compostos existentes para usar sistemas de tempo de execução de realidade virtual para renderizar janelas e desktops em ambientes virtuais 3D. O xrdesktop promove a ideia de integração em ambientes de desktop existentes sem a necessidade de executar um gerenciador de composição especializado separado e permitindo que configurações personalizadas existentes usadas com um monitor normal sejam usadas com capacetes XNUMXD.

A arquitetura do projeto implica a capacidade de integração com qualquer desktop, mas no atual estágio de desenvolvimento, componentes para suportar headsets de realidade virtual estão implementados para KDE e GNOME. Para o KDE, o suporte para capacetes 3D é implementado através de um plugin do tipo Compiz, e para o GNOME através de um conjunto de patches para o GNOME Shell. Esses componentes espelham janelas existentes no ambiente virtual de capacetes 3D na forma de uma cena separada ou em modo de sobreposição, no qual as janelas da área de trabalho podem ser sobrepostas a outros aplicativos de realidade virtual em execução.

Além dos mecanismos de renderização, o xrdesktop fornece componentes para fornecer navegação e entrada usando controladores espaciais especializados, como Valve Index e VIVE Wand. O Xrdesktop usa informações de controladores VR para gerar eventos de entrada regulares, simulando o uso de teclado e mouse.

xrdesktop inclui diversas bibliotecas que geram texturas de janela para o tempo de execução VR usando OpenVR, bem como um sistema de renderização baseado em API para um desktop completo em um ambiente 3D. Como o xrdesktop não fornece seu próprio gerenciador de janelas, é necessário um trabalho de integração com os gerenciadores de janelas existentes (o xrdesktop pode ser portado para qualquer gerenciador de janelas X11 ou Wayland). No lado do driver gráfico, a operação requer um driver com suporte para a API Vulkan e a extensão VK_KHR_external_memory.

O projeto xrdesktop para usar GNOME e KDE em headsets de realidade virtual

Os principais componentes do xrdesktop:

  • gulkan - ligação simplista para Vulkan, fornecendo classes para processamento de dispositivos, shaders e inicialização de texturas de memória ou buffers DMA;
  • GXR — API para abstração de interfaces de programas para desenvolvimento de aplicações de realidade virtual. Atualmente apenas o OpenVR é suportado, mas o suporte para o padrão OpenXR será adicionado num futuro próximo;
  • libinputsynth — uma biblioteca para sintetizar eventos de entrada, como movimentos do mouse, cliques e pressionamentos de teclas, implementada na forma de backends para xdo, xi2 e Clutter;
  • xrdesktop — uma biblioteca para gerenciar janelas em um ambiente 3D, um conjunto de widgets e backends para renderizar a cena;
  • kwin-efeito-xrdesktop и kdeplasma-applets-xrdesktop — um plugin para KWin para integração com o KDE e um miniaplicativo Plasma para mudar o KWin para o modo de saída em um capacete 3D;
  • conjunto de patches do gnome-shell и gnome-shell-extensão-xrdesktop — um conjunto de patches para o GNOME Shell para integrar suporte ao xrdesktop e um complemento para alternar a saída para um capacete 3D no GNOME Shell.

O projeto suporta diversos métodos de organização da interação com a área de trabalho e janelas em um ambiente virtual, que podem ser usados ​​​​para capturar janelas, dimensionar, mover, girar, sobrepor em uma esfera, encaixar e ocultar janelas, usar o menu de controle e controlar simultaneamente com duas mãos usando vários controladores.

Fonte: opennet.ru

Adicionar um comentário