WebVR API

Obsolète: Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

WebVR fournit un support pour les dispositifs de réalité virtuelle - par exemple pour les casques de réalité virtuelle comme l'Oculus Rift - aux applications Web, permettant aux développeurs de traduire les informations de position et de mouvement de l'appareil en mouvements autour d'une scène 3D. Cela a de nombreuses applications très intéressantes, des visites de produits virtuels aux applications de formation interactive en passant par des jeux en première personne dans un environnement immersif.

Concepts et usage

Croquis d'une personne assise sur une chaise et portant des lunettes portant la mention « Head mounted display (HMD) » faisant face à un moniteur avec une webcam portant la mention « Position sensor ».

Tous les périphériques de réalité virtuelle connectés à votre ordinateur seront donné grâce à la méthode Navigator.getVRDisplays() (en-US). Cela retournera un tableau d'objets représentant les périphériques, qui auront l'héritage de l'objet VRDevice (en-US) — généralement un casque de réalité virtuelle renverra deux périphériques — le casque lui-même, représenté par HMDVRDevice (en-US), et la caméra capteur de position qui suit la position de votre tête, représenté par PositionSensorVRDevice (en-US).

L'objet PositionSensorVRDevice (en-US) contient la méthode getState() (en-US), qui retourne un objet VRPositionState (en-US) — cela représente l'état du capteur à un timecode donné, et inclus les propriétés avec des données utiles tel que la vélocité, l'accélération et l'orientation, utiles pour mettre à jour le rendu de la scène pour chaque image en accord avec le mouvement du casque de réalité virtuelle.

La méthode HMDVRDevice.getEyeParameters() (en-US) retourne un objet VREyeParameters (en-US), qui peut être utilisé pour obtenir l'information du champ de vision — combien le casque de réalité virtuel peut afficher de la scène. Le VREyeParameters.currentFieldOfView (en-US) retourne un objet VRFieldOfView (en-US) qui contient quatre angles décrivant le champ de vision actuel depuis le point central. Vous pouvez aussi changer le champ de vision en utilisant HMDVRDevice.setFieldOfView() (en-US).

Interfaces WebVR

VRDisplay (en-US)

Représente un périphérique de réalité virtuelle supporté par cette API. Il inclut des informations générales comme les IDs et des descriptions de l'appareil, ainsi que des méthodes pour commencer à présenter une scène RV, récupérer les paramètres visuels, les capacités d'affichage et d'autres fonctionnalités importantes.

VRDisplayCapabilities

Décrit les capacités d'un appareil VRDisplay (en-US) — ses fonctionalités peuvent être utilisée pour tester les capacités du périphérique, par exemple peut-il retourner l'information de position.

VRPose (en-US)

Représente l'état de la position à un timecode donné (qui inclut l'orientation, la position, la vélocité et l'accélération).

VREyeParameters (en-US)

Donne accès à l'ensemble des informations requises pour faire le rendu d'une scène pour l'oeil indiqué, dont les informations de champ de vision.

VRFieldOfView (en-US)

Représente le champ de vision actuel définit par quatre angles décrivant la vue depuis le point central.

VRLayer (en-US)

Représente un calque d'un objet VRDisplay (en-US).

VRStageParameters (en-US)

Représente les données décrivant l'espace physique disponible pour les périphériques de réalité virtuelle pouvant offrir une expérience dans une pièce réelle.

Extensions à d'autres interfaces

Gamepad.displayId (en-US) Lecture seule

Retourne l'ID VRDisplay.displayId (en-US) du périphérique VRDisplay (en-US) associé — l'appareil RV où la manette de jeu contrôle la scene affichée.

Navigator.activeVRDisplays (en-US) Lecture seule

Retourne un tableau contenant tous les périphériques (objet VRDisplay (en-US)) qui sont actifs (quand VRDisplay.ispresenting (en-US) est à true).

Navigator.getVRDisplays() (en-US)

Retourne un tableau contenant tous les périphériques (objet VRDisplay (en-US)) disponibles qui sont connectés à l'ordinateur.

Window.onvrdisplayconnected (en-US)

Représente un gestionaire d'événements qui s'exécute lorsqu'un appareil RV compatible a été connecté à l'ordinateur (quand l'événement vrdisplayconnected est déclenché).

Window.onvrdisplaydisconnected (en-US)

Représente un gestionaire d'événements qui s'exécute lorsqu'un appareil RV compatible a été déconnecté de l'ordinateur (quand l'événement vrdisplaydisconnected est déclenché).

Window.onvrdisplaypresentchange (en-US)

Représente un gestionaire d'événements qui s'exécute lorsque l'état de présentation d'un appareil change — i.e. un changement de l'état "présente" à "ne présente pas", ou vice versa (quand l'événement onvrdisplaypresentchange est déclenché).

Examples

Vous pouvez retrouver plusieurs exemples dans ces repos Github:

  • A-Frame: un framework web Open source pour construire des expériences RV. Plusieurs exemples.
  • mdn/webvr-tests: Démos simples conçus pour illustrer des fonctionalités d'usage de base.
  • MozVR team: Plus de démos avancés, la source de la spec WebVR, et plus!

Specifications

Specification Status Comment
Unknown Statut inconnu Initial definition

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi

  • webvr.info - Up-to-date information about WebVR, browser setup, and community.
  • Is WebVR Ready? - Up-to-date information about WebVR browser support (including experimental builds).
  • MozVr.com — demos, downloads, and other resources from the Mozilla VR team.
  • A-Frame — a web framework for building VR experiences (with HTML), from the Mozilla VR team.
  • Console Game on Web — a collection of interesting game concept demos, some of which include WebVR.
  • threejs-vr-boilerplate — a very useful starter template for writing WebVR apps into.
  • Oculus Rift homepage