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 ](/pt-BR/docs/Web/API/WebVR_API/hw-setup.png)

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 with JavaScript enabled. Enable JavaScript to view data.

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