WebVR API

Experimental: Esta é uma tecnologia experimental (en-US)
Verifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

O WebVR oferece suporte para expor dispositivos de realidade virtual - por exemplo, telas montadas na cabeça, como o Oculus Rift - para aplicativos da web, permitindo que os desenvolvedores traduzam informações de posição e movimento da tela para movimento em torno de uma cena 3D. Isso tem inúmeras aplicações muito interessantes, de passeios de produtos virtuais e aplicativos de treinamento interativo para super imersivo jogos em primeira pessoa.

Conceitos e uso

Sketch of a person in a chair with wearing goggles labelled Head mounted display (HMD) facing a monitor with a webcam labelled Position sensor

Todos os dispositivos VR ligados ao computador serão devolvidos pelo Navigator.getVRDisplays() (en-US) método. Que retorna uma matriz de objetos para representar os dispositivos conectados, que herdam do objeto geral VRDevice (en-US) Geralmente o display usado na cabeça terá dois dispositivos - o próprio display montado na cabeça, representado por HMDVRDevice (en-US), e uma câmera com sensor na posição que manterá o controle de sua posição de cabeça, representada por PositionSensorVRDevice (en-US).

O objeto PositionSensorVRDevice (en-US) contém o método getState() (en-US), que retorna um objeto VRPositionState (en-US) - isto representa o estado do sensor num dado carimbo de data e inclui propriedades que contêm dados úteis tais como velocidade, aceleração e orientação atuais, úteis para atualizar o processamento de uma cena em cada trama de acordo com o movimento do visor montado na cabeça VR.

O método HMDVRDevice.getEyeParameters() (en-US) retorna um objeto VREyeParameters (en-US), que pode ser usado para retornar informações do campo de exibição - quanto da cena a tela montada na cabeça pode ver.O VREyeParameters.currentFieldOfView (en-US) retorna um objeto VRFieldOfView (en-US) que contém 4 ângulos que descrevem a vista atual a partir de um ponto central. Você também pode alterar o campo de visualização usando HMDVRDevice.setFieldOfView() (en-US).

WebVR Interfaces

VRDisplay (en-US) Representa qualquer dispositivo VR suportado por esta API. Ele inclui informações genéricas, como IDs de dispositivo e descrições, bem como métodos para começar a apresentar uma cena VR, recuperar os parâmetros do olho e exibir capacidades e outras funcionalidades importantes. VRDisplayCapabilities (en-US) Descreve os recursos de um VRDisplay (en-US) - seus recursos podem ser usados para executar testes de capacidade do dispositivo VR, por exemplo, ele pode retornar informações de posição. VRPose (en-US) Representa o estado de posição em um dado carimbo de data/hora (que inclui orientação, posição, velocidade e aceleração). VREyeParameters (en-US) Fornece acesso a todas as informações necessárias para processar corretamente uma cena para cada olho, incluindo informações de campo de visão. VRFieldOfView (en-US) Representa um campo de visão definido por 4 valores de graus diferentes que descrevem a vista a partir de um ponto central. VRLayer (en-US) Representa uma camada a ser apresentada em VRDisplay (en-US). VRStageParameters (en-US) Representa os valores que descrevem a área de estágio para dispositivos que suportam experiências em escala de sala.

Extensões para outras interfaces

Gamepad.displayId (en-US) Somente leitura Retorna o VRDisplay.displayId (en-US) do associado VRDisplay (en-US) - o VRDisplay que o gamepad está controlando a cena exibida de. Navigator.activeVRDisplays (en-US) Somente leitura Retorna uma matriz contendo todos os objetos VRDisplay (en-US) que está sendo apresentado (VRDisplay.ispresenting (en-US)). Navigator.getVRDisplays() (en-US) Retorna uma promessa que resolve uma matriz de objetos VRDisplay (en-US) que representa qualquer dispositivo VR disponível conectado ao computador. Window.onvrdisplayconnected (en-US) Representa um manipulador de eventos que será executado quando um dispositivo VR compatível tiver sido conectado ao computador (quando o evento vrdisplayconnected for acionado). Window.onvrdisplaydisconnected (en-US) Representa um manipulador de eventos que será executado quando um dispositivo VR compatível tiver sido desconectado do computador (quando o evento vrdisplaydisconnected for acionado). Window.onvrdisplaypresentchange (en-US) Representa um manipulador de eventos que será executado quando o estado de apresentação de um dispositivo VR mudar - isto é, vai de apresentar a não apresentar, ou vice-versa (quando o evento onvrdisplaypresentchange é acionado).

Exemplos

Você pode encontrar uma série de exemplos nesses repositórios Github:

  • A-Frame: Estrutura web de código aberto para a construção de experiências VR. Muitos exemplos.
  • mdn/webvr-tests: Demonstrações simples construídas para ilustrar o uso de recursos básicos.
  • MozVR team: Mais demonstrações, sobre WebVR e muito mais!

Especificações

No specification found

No specification data found for api.Navigator.getVRDisplays.
Check for problems with this page or contribute a missing spec_url to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilidade com navegadores

BCD tables only load in the browser

Veja Também

  • webvr.info- Informações atualizadas sobre WebVR, configuração do navegador e comunidade.
  • webvr.rocks- Informações atualizadas sobre o suporte ao navegador WebVR (incluindo compilações experimentais).
  • A-Frame- A web framework para a construção de experiências VR (com HTML), a partir da equipe Mozilla VR.
  • Console Game on Web- Uma coleção de demonstrações interessantes conceito de jogo, alguns dos quais incluem WebVR.
  • threejs-vr-boilerplate- Um modelo de iniciador muito útil para escrever aplicações WebVR.
  • Oculus Rift homepage