Quer brincar com VR (Realidade Virtual) no Linux sem gastar muito? A tecnologia para realidade virtual já existe a muitos anos, porém os preços dos headsets VR são um pouco impeditivos ainda: kits completos com controles e sensores de posição como Oculus Rift ou HTC Vive passam facilmente dos 5000-8000 reais. Kits mais simples como o PSVR passam dos 3000 e por aí vai.
Mas para quem busca algo bem mais simples, mais para a visão em 3D e “headtracking” para alguns jogos e experimentar um pouco da sensação, é possível comprar ou até montar um suporte para o celular e utilizar o seu próprio celular como um par de telas para realidade virtual: O celular fica encaixado em um suporte em frente aos olhos e a tela dele fica dividida como se fossem 2 telas independentes (olho esquerdo e direito). Um par de lentes ajustáveis no suporte ajuda a enxergar a tela próxima ao rosto e o giroscópio do aparelho repassa ao computador as informações de posicionamento da cabeça, para o computador saber para onde se está olhando.
No Windows há alguns softwares pagos que fazem essa integração do celular com o computador. No Linux também temos essa possibilidade, utilizando alguns programas e scripts FOSS para isso.
Abaixo um guia prático de como pude colocar para funcionar tudo isso em um computador com Linux openSUSE usando uma placa de vídeo antiga (Radeon HD 6870) e um celular smartphone de desempenho médio que pode ser encontrado usado por menos de 600 reais (Asus Zenfone Max Shot 32GB).
NOTA: Não há como comparar a experiência de desempenho obtido nesse guia com a experiência de um headset completo de última geração. É sabido que kits dedicados novos possuem uma taxa de atualização e qualidade de tela muito superior ao que será alcançado com esse guia. Placas de vídeo mais modernas e processadores mais potentes também devem entregar melhor desempenho nas imagens enviadas ao kit. Esse guia é mais para mostrar que o VR não está tão longe assim como parece mesmo se você dispor de hardware mais antigo, investindo menos de 100 reais.
Conecte seu cabo USB no celular e no computador e ative o modo Tethering USB. No meu celular foi apenas conectar ambos, clicar na opção de “mais opções de conexão” que apareceu e mudar de “Carregamento” para “Tethering USB”. No computador, rode o comando “nmcli d” e veja se apareceu uma “placa de rede” nova conectada. Se apareceu mas está desconectada, você pode fazer por exemplo “nmcli d c enp2sXYZ” para mandar conectar nessa placa de rede que apareceu, que é o seu celular fazendo tethering. Não foi necessário desativar a placa de rede oficial do computador no meu caso, fiquei com ambas conectadas. Se o seu não ficou ambas conectadas, depois de usar vc vai precisar usar por exemplo “nmcli d c enp2sXPTO” para voltar a conectar na placa de rede padrão. nmcli supõe que vc esteja usando NetworkManager, não sei como é em outros.
Ffmpeg deve funcionar o do sistema ou o do repositório do packman. OpenVR peguei pelo software.opensuse.org, de um repositório de usuário aqui: obs://build.opensuse.org/home:leviathanch xwd, xwininfo e git instalei do repo oficial do openSUSE. o Git na verdade é pra poder clonar o repo do LinusTrinus.
python3 -m venv .venv source .venv/bin/activate pip install frame-generator wand
Note que “source .venv/bin/activate” irá mudar seu prompt para indicar que vc está com um virtualenv ativo. Lembre-se que para rodar o LinusTrinus, vc sempre deverá ativar esse virtualenv antes e rodar o comando para iniciar. Se quiser desativar, o comando é “deactivate”
cd samples ./make.sh
OBS: Observe possíveis mensagens de erro como por exemplo o problema do GLEW. Deve compilar tudo com sucesso, se faltar algo, verifique os erros e instale possíveis dependências.
cd .. #(lembre-se que vc compilou o make.sh dentro do diretório samples, volte um nível) python3 main.py
Isso vai iniciar o LinusTrinus no terminal. para sair é Ctrl+C duas vezes… mas mantenha esse terminal rodando enquanto quiser usar o VR.
ln -s /sbin/getcap /usr/bin/ ln -s /sbin/setcap /usr/bin/
OBS: executar como root obviamente
Bom, por enquanto, foi aqui que parei, não testei com nenhum jogo ainda pois não tinha controle configurado e ainda não tenho meu suporte, vou encomendar um para brincar.
Capturas de tela:
Acima como o computador fica: Steam rodando, um retângulo que representa a imagem que deve aparecer no celular (celular olhando para o horizonte)
Aqui exemplo do que aparece na tela do celular. Mova o celular para o giroscópio mudar a tela