WebVR

WebVR — это экспериментальный браузерный API для доступа к устройствам виртуальной реальности, таким как HTC Vive, Oculus Rift, Google Cardboard и OSVR[1].

WebVR реализует следующие функции:[2]

  • Определение доступных устройств виртуальной реальности.
  • Получение возможностей выбранного устройства.
  • Определение текущих координат и углов обзора в трёхмерном пространстве.
  • Вывод графической информации на соответствующее устройство.

История

WebVR был впервые задуман весной 2014 года Владимиром Вукичевичем и другими разработчиками из компании Mozilla[3]. 1 марта 2016 года участники группы Mozilla VR совместно с разработчиками браузера Google Chrome презентовали версию 1.0 спецификации WebVR API. Стандарт претерпел многочисленные изменения и улучшения по сравнению с первоначальной версией[4].

Последние правки в новую стабильную версию спецификации WebVR 1.1 были внесены 5 апреля 2017 года[5], после чего к команде разработчиков из Mozilla и Google присоединились сотрудники Microsoft, начав работу над следующей версией стандарта[6].

Однако в 2018 году было объявлено о разработке нового браузерного API WebXR, идущего на смену WebVR. Стандарт предполагает взаимодействие с устройствами дополненной реальности и виртуальной реальности с использованием единого программного интерфейса[7][8].

Описание работы технологии

API WebVR предоставляет несколько новых интерфейсов, которые позволяют веб-приложениям презентовать контент в режиме виртуальной реальности, используя API WebGL. Они также обеспечивают необходимые настройки для камеры и методы для взаимодействия с устройствами (в частности, обеспечивают захват координат и состояния контроллеров). Для того, чтобы использовать WebVR, веб-приложение должно выполнить следующие действия:

  1. Запросить список доступных устройств виртуальной реальности.
  2. Проверить, поддерживает ли устройство необходимый режим представления.
  3. В случае успеха приложение объявляет пользователю о доступности устройства.
  4. Пользователь выполняет действие для активации устройства.
  5. В ответ на действие пользователя приложение запрашивает VR-сессию.
  6. Далее запускается цикл рендеринга, который генерирует графику, отображаемую на устройстве.
  7. Сессия виртуальной реальности завершается в ответ на действие пользователя либо программно.

Поддержка в браузерах

В настоящий момент спецификация WebVR 1.0 поддерживается в браузере Firefox 55+ для Windows (64-битная версия)[9] и в браузере Google Chrome для платформы Android[10] (в качестве экспериментальной возможности). Спецификация WebVR 1.1 добавлена в браузер Microsoft Edge в сборке 15002+[11], а также в Samsung Internet Архивная копия от 12 июня 2018 на Wayback Machine, Chromium, Servo Архивная копия от 2 марта 2021 на Wayback Machine и Oculus Carmel Архивная копия от 28 марта 2019 на Wayback Machine.

Chrome для Windows поддерживает WebVR 1.1 в специальной сборке Архивная копия от 2 февраля 2019 на Wayback Machine. Firefox 55+ для платформы macOS требует активации соответствующих настроек со стороны пользователя[9].

Примеры использования

Ниже представлены проекты, в которых реализована поддержка стандартов WebVR/WebXR:

  • A-Frame — открытый пакет для создания VR-контента с использованием HTML[12]
  • Babylon.js — открытая WebGL библиотека, разрабатываемая компанией Microsoft[13]
  • PlayCanvas — облачная среда разработки приложений, включающая одноимённый открытый игровой движок.
  • Sketchfab — облачный хостинг 3D-моделей.
  • Verge3D — позволяет создавать VR-приложения в 3ds Max и Blender с помощью встроенного визуального редактора логики Puzzles[14].
  • X3DOM — открытая библиотека, использующая международный стандарт трёхмерной графики X3D[15].
  • Site3D Configurator — сервис создания 3D конфигураторов.

См. также

Примечания

  1. WebVR API. Mozilla Developer Network. Дата обращения: 4 ноября 2015. Архивировано 25 ноября 2015 года.
  2. w3c/webvr (англ.). GitHub. Дата обращения: 8 апреля 2017. Архивировано 13 июля 2017 года.
  3. WebVR - Bringing Virtual Reality to the Web. webvr.info. Дата обращения: 8 июля 2016. Архивировано 4 июля 2016 года.
  4. Introducing the WebVR 1.0 API Proposal ★ Mozilla Hacks – the Web developer blog. hacks.mozilla.org. Дата обращения: 8 июля 2016. Архивировано 15 сентября 2016 года.
  5. WebVR (англ.). w3c.github.io. Дата обращения: 8 апреля 2017. Архивировано 9 апреля 2017 года.
  6. WebVR (англ.). w3c.github.io. Дата обращения: 8 апреля 2017. Архивировано 9 апреля 2017 года.
  7. Bringing Mixed Reality to the Web – The Mozilla Blog. The Mozilla Blog. Дата обращения: 28 марта 2019. Архивировано 28 марта 2019 года.
  8. Welcome to the immersive web - Web - Google Developers. Google Developers. Дата обращения: 28 марта 2019. Архивировано 28 марта 2019 года.
  9. 1 2 Firefox 55: first desktop browser to support WebVR – Mozilla Hacks - the Web developer blog. Mozilla Hacks – the Web developer blog. Дата обращения: 28 марта 2019. Архивировано 28 марта 2019 года.
  10. WebVR Rocks. WebVR Rocks. Дата обращения: 28 марта 2019. Архивировано 11 июля 2019 года.
  11. mattwojo WebVR with Microsoft Edge - WebVR. docs.microsoft.com. Дата обращения: 28 марта 2019. Архивировано 28 марта 2019 года.
  12. A-Frame. aframe.io. Дата обращения: 17 марта 2022. Архивировано 15 марта 2022 года..
  13. Babylon.js. Babylonjs.com. Дата обращения: 17 марта 2022. Архивировано 1 января 2018 года..
  14. Verge3D 2.10 for Blender/3ds Max Released. Soft8Soft (7 февраля 2019). Дата обращения: 2 марта 2019. Архивировано 6 марта 2019 года.
  15. X3DOM. x3dom.org. Дата обращения: 17 марта 2022. Архивировано 14 марта 2022 года.