WebVR
# WebVR

WebVR ist eine Programmierschnittstelle (API) um in Webbrowsern mittels JavaScript auf Geräte für virtuelle Realität, wie etwa Head-Mounted Displays, zugreifen zu können. Der Standard wurde 2014 durch Mozilla ins Leben gerufen und in Kooperation mit dem Google-Chrome-Team entwickelt. Die Version 1.0 wurde 2016 veröffentlicht. Künftige Versionen werden unter der Bezeichnung WebXR entwickelt und erweitern den Rahmen auf erweiterte Realität (AR).

## Funktionsprinzip

Über die Funktion navigator.getVRDisplays kann eine Liste aller verfügbaren VR-Geräte angefragt werden. Diese werden durch Objekte des Typs VRDisplay repräsentiert.

Über diese Geräte kann die Lage des Benutzers abgefragt werden, die Methode getPose liefert die Position, Ausrichtung, Bewegung und weitere Daten über den Nutzer.

Zur Darstellung wird ein Canvas-Element verwendet, häufig in Verbindung mit WebGL. Dabei werden die beiden Bilder für das linke und rechte Auge nebeneinander gezeichnet und über die requestPresent-Methode des VR-Anzeigegeräts dort zur Anzeige gebracht. Dort vermittelt sie dem Benutzer einen dreidimensionalen Bildeindruck. Die Anzeige sollte anschließend in regelmäßigen Abständen, am besten mit der Bildwiederholrate des Geräts, neu gezeichnet und mit der submitFrame-Methode aktualisiert werden.

Zudem kommen weitere APIs zum Einsatz, die Gamepad-API ermöglicht eine Steuerung über Gamepads, die Web Audio API erlaubt es, dreidimensionale Klangeindrücke zu erzeugen.

Zur einfachen Verwendung gibt es Bibliotheken wie A-Frame oder three.js, die sich um einen Großteil der Darstellung kümmern können. Es gibt auch Frameworks, die einen Export aus Unity ermöglichen. Einige Engines erlauben auch offiziell einen Export nach WebVR, darunter Blend4Web.

## Browserunterstützung

Erste experimentelle Unterstützung gibt es in Mozilla Firefox und Google Chrome sowie in Samsungs Browser für Samsung Gear VR. Teilweise wird noch eine ältere Version des Standards implementiert. Eine stabile Unterstützung gibt es erstmals seit Firefox 55.

Sowohl Firefox als auch Chrome unterstützen in ihren Desktop-Browsern Oculus Rift und HTC Vive, Smartphones können über Google Cardboard eingeschränkte VR-Funktionen bieten.

