Atenção entusiastas. O xrdesktop, projeto Open Source que traz o desktop Linux para VR no SteamVR & Monado da Valve, participou pela primeira vez do Google Summer of Code (GSoC). Aqui está uma recapitulação do que foi realizado. Alguns alunos concluíram com sucesso seus projetos e enviarem solicitações de mesclagem, implementando todos os novos recursos para o xrdesktop. Eles tiveram como mentores Christoph Haag e Lubosz Sarnecki. Os alunos são Remco e Manas. Eles puderam concluir seus projetos e enviar solicitações de mesclagem.
Como as ferramentas de escolha, C/GObject e Vulkan foram usadas ??em ambos os projetos, mantendo o objetivo de deixar o xrdesktop de baixo nível e, assim, fornecer uma experiência de XR de alto desempenho.
Contribuições como essas apóiam nossa visão com projetos como xrdesktop e Monado para fornecer uma pilha XR de código-fonte totalmente aberto que permite total controle e independência para usuários finais e criadores de produtos.
Xrdesktop que leva o desktop Linux para VR no SteamVR & Monado ganha nova versão
Veja a seguir o restante do artigo publicado na página da Collabora.
Teclado de realidade virtual
No XR, os usuários desejam inserir texto com métodos como controladores ou rastreamento manual sem ter que ir até a mesa e usar um teclado físico. A API OpenXR atualmente não expõe nenhuma API para entrada de texto e é responsabilidade dos aplicativos implementar um método de entrada de texto.
Remco implementou esse teclado virtual para xrdesktop com suporte para emojis e 56 idiomas. O suporte a idiomas diferentes do inglês e emojis exigiu a adição de suporte a Unicode para nossa biblioteca de síntese de entrada de desktop libinputsynth . O suporte avançado a glifos foi obtido usando a biblioteca de renderização de fontes Pango.
Ele especificou um formato JSON para descrever layouts de teclado e um script de importador que usa as definições de projeto CLDR Unicode para obter a internalização. Nosso foco de design atual era um teclado simples com opções de modo, como visto no teclado na tela do GNOME Shell ou em telefones celulares.
Com nosso formato json interno, teclados arbitrários podem ser especificados, de modo que também se pode replicar um teclado 100% desktop com teclado numérico ou até mesmo teclados que não são viáveis ??em uma forma física, como este teclado chinês com várias centenas de caracteres:
Com o xrdesktop de trabalho da Remco, o xrdesktop será capaz de fornecer um teclado virtual internamente ao xrdesktop, independente do tempo de execução do XR em que ele é executado. Também poderemos expor este teclado como um aplicativo OpenXR autônomo para que possa ser usado fora do xrdesktop.
O trabalho futuro neste projeto inclui a implementação de métodos de entrada para chinês e outras línguas asiáticas, bem como previsão com sugestões conhecidas de telefones celulares e outros teclados na tela.
Mais detalhes podem ser encontrados na postagem do blog da Remco.
Carregando GLTF
Manas implementou o carregamento e a renderização de modelos GLTF, o que incluiu melhorar nosso renderizador e adicionar técnicas de renderização como mapeamento normal. Este trabalho permite que o xrdesktop use ativos como modelos de controladores de RV e ambientes 3D.
O carregador GLTF é baseado em gthree , a porta GObject de three.js.
Podemos analisar e renderizar GLTF 2.0 .gtlf
e .glb
arquivos. Com o qual poderemos usar os ativos do controlador do repositório W3C Immersive Web WebXR Asset em uma versão futura.
Trabalhos futuros tornarão o carregador e o renderizador compatíveis com o repositório completo do GlTF Sample Model do Khronos e fornecerá um pipeline de ativos do Blender para o xrdesktop.
Se você estiver interessado em detalhes sobre o projeto de Manas, pode encontrar um resumo em sua postagem no blog .
Próxima versão 0.16
Esses recursos entrarão em nossa próxima versão v0.16 do xrdesktop, que será marcada em breve. Se você for corajoso o suficiente, você também pode tentar nossas next
ramificações experimentais em nosso freedesktop.org GitLab, seguindo as instruções de instalação do nosso Wiki.