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 объектом.

VRDisplay является центральным интерфейсом в API WebVR - с помощью его свойств и методов вы получить доступ к функциям:
- Получить полезную информацию, чтобы мы могли идентифицировать дисплей, какие возможности он имеет, контроллеры, связанные с ним и многое другое.
- Получить
frame dataдля каждого кадра контента, который вы хотите представить на дисплее, и отправьте эти кадры для отображения с постоянной скоростью. - Начать и прекратить подачу на дисплей.
Типичное (простое) WebVR приложение будет работать так:
Navigator.getVRDisplays()используется для получения ссылки на ваш VR-дисплей.VRDisplay.requestPresent()используется для начала представления на дисплей VR.- Выделенный
VRDisplay.requestAnimationFrame()WebVR's используется для запуска цикла рендеринга приложения с правильной частотой обновления для отображения. - Внутри цикла рендеринга берутся данные, необходимые для отображения текущего кадра (
VRDisplay.getFrameData()), дважды нарисуйте отображаемую сцену - один раз для просмотра в каждом глазу, затем отправьте отображаемый вид на дисплей, чтобы показать пользователю (VRDisplay.submitFrame()).