This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

WebVR API

Deprecated

Avoid using this feature in new projects. Development of the WebVR API halted in favor of WebXR. This feature may be a candidate for removal from web standards or browsers.

Consider using the following features instead: WebXR.

Экспериментальная возможность: Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

WebVR обеспечивает поддержку для использования устройств виртуальной реальности — например, шлемы виртуальной реальности, таких как Oculus Rift или HTC Vive — для веб-приложений, позволяя разработчикам передавать информацию о местоположении и движения с дисплея в движение вокруг 3D-сцены. Это имеет множество интересных приложений, от виртуальных туров продукта и интерактивных обучающих приложений до захватывающих игр от первого лица.

Концепция и использование

Любые VR-устройства, подключённые к вашему компьютеру, будут возвращены методом Navigator.getVRDisplays(); каждое из которых будет представлено VRDisplay объектом.

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

VRDisplay является центральным интерфейсом в API WebVR - с помощью его свойств и методов вы получить доступ к функциям:

  • Получить полезную информацию, чтобы мы могли идентифицировать дисплей, какие возможности он имеет, контроллеры, связанные с ним и многое другое.
  • Получить frame data для каждого кадра контента, который вы хотите представить на дисплее, и отправьте эти кадры для отображения с постоянной скоростью.
  • Начать и прекратить подачу на дисплей.

Типичное (простое) WebVR приложение будет работать так:

  1. Navigator.getVRDisplays() используется для получения ссылки на ваш VR-дисплей.
  2. VRDisplay.requestPresent() используется для начала представления на дисплей VR.
  3. Выделенный VRDisplay.requestAnimationFrame() WebVR's используется для запуска цикла рендеринга приложения с правильной частотой обновления для отображения.
  4. Внутри цикла рендеринга берутся данные, необходимые для отображения текущего кадра (VRDisplay.getFrameData()), дважды нарисуйте отображаемую сцену - один раз для просмотра в каждом глазу, затем отправьте отображаемый вид на дисплей, чтобы показать пользователю (VRDisplay.submitFrame()).

Кроме того, WebVR 1.1 добавляет ряд событий