Introduzido o wxrd, um servidor composto baseado em Wayland para sistemas de realidade virtual

A empresa Collabora apresentou um servidor composto wxrd, implementado com base no protocolo Wayland e destinado à criação de um desktop baseado em componentes xrdesktop dentro de ambientes tridimensionais de realidade virtual. A base é a biblioteca wlroots, desenvolvida pelos desenvolvedores do ambiente de usuário Sway, e o servidor composto wxrc, projetado para uso em sistemas de realidade virtual. O código do projeto é escrito em C e distribuído sob a licença do MIT.

Ao contrário da solução originalmente proposta no xrdesktop, o wxrd oferece um servidor composto especializado para ambientes de realidade virtual, em vez de adaptar gerenciadores de janelas e shells de desktop existentes para sistemas VR (o projeto xrdesktop fornece patches separados para kwin e GNOME Shell, que requerem adaptação para cada novo liberação desses componentes). O uso do wxrd permite não apenas espelhar o conteúdo de uma área de trabalho bidimensional existente, ao mesmo tempo mostrada em um monitor normal, mas também processar separadamente janelas iniciadas especificamente para uma área de trabalho tridimensional (ou seja, não fornecer acesso de o capacete VR para a área de trabalho usada na tabela do sistema atual, mas para formar um ambiente separado para o capacete VR).

Ao contrário de projetos semelhantes Simula VR, Stardust, Motorcar e Safespaces, o servidor composto wxrd foi criado pensando em utilizar um número mínimo de dependências e baixo consumo de recursos. O Wxrd também permite trabalhar não apenas com aplicativos baseados no protocolo Wayland, mas também possibilita o lançamento de aplicativos X11 usando o servidor xwayland DDX.

Como a extensão do protocolo Wayland para teclados virtuais está em desenvolvimento, a entrada para wxrd é implementada por meio de um sistema de emulação de entrada de teclado que transfere todos os caracteres Unicode, incluindo emoji, do teclado virtual fornecido no xrdesktop. Para executar o wxrd, você precisa de uma placa de vídeo que suporte a API gráfica Vulkan e a extensão VK_EXT_image_drm_format_modifier, suportada no Mesa desde a versão 21.1 (incluída no Ubuntu 21.04). O uso da API Vulkan para renderização requer a extensão VK_EXT_physical_device_drmm, introduzida no Mesa 21.2 (Ubuntu 21.10).

Prós de usar um servidor composto separado para sistemas de realidade virtual em vez de integração com os gerenciadores de janelas XNUMXD usados ​​para exibir um desktop tradicional:

  • Quando executada em uma sessão baseada em Wayland ou X11, a biblioteca wlroots abre uma janela na qual você pode capturar facilmente entradas de teclado e eventos de mouse e redirecionar essa entrada para uma janela específica em um ambiente de realidade virtual. No futuro, eles planejam usar esse recurso para organizar a entrada não apenas por meio de um controlador de VR, mas também por meio de teclado e mouse normais.
  • As janelas não são limitadas pelo quadro XNUMXD da área de trabalho e podem ter tamanho arbitrário, limitado apenas pelo tamanho máximo de textura suportado pelo hardware.
  • A renderização de janela em wxrd é realizada na taxa de atualização de imagem 3D head-mounted display (HMD) nativa, enquanto ao espelhar janelas de gerenciadores de janela convencionais, a frequência usada para atualizar informações em um monitor estacionário é usada.
  • As fontes podem ser renderizadas levando em consideração a densidade de pixels de um capacete 3D, sem referência à densidade de pixels de um monitor estacionário.
  • É possível usar o wxrd em sistemas que possuem apenas um fone de ouvido 3D e não possuem um monitor normal.

Desvantagens de um servidor composto separado para VR:

  • No ambiente VR, apenas os aplicativos iniciados especificamente para um servidor composto separado são mostrados, sem a capacidade de transferir ou espelhar janelas já abertas em um desktop tradicional para o ambiente VR (ou seja, para continuar trabalhando com aplicativos abertos em uma tela normal, você terá que reiniciar em um ambiente separado para o capacete 3D).
  • O suporte do Wayland pode ser limitado nas implementações da API Vulkan. Por exemplo, gbm e wlroots não podem ser usados ​​com drivers proprietários da NVIDIA devido à falta de suporte para a extensão VK_EXT_drm_format_modifier.



Fonte: opennet.ru

Adicionar um comentário