Если коротко:

WebXR представляет собой браузерный API, через который веб-приложение получает доступ к совместимой VR- или AR-системе. Браузер передаёт приложению позу головы, ввод контроллеров и цикл вывода кадров, поэтому отдельную программу WebXR устанавливать не нужно. Доступные режимы и функции зависят от сочетания устройства и браузера, а запуск иммерсивной сессии требует действия и разрешения пользователя.

WebXR — это браузерный API для VR и AR. Он позволяет веб-приложению запросить доступ к возможностям совместимого XR-устройства: дисплею гарнитуры, положению головы, контроллерам и, когда платформа это предоставляет, другим источникам ввода. WebXR не нужно скачивать как отдельную программу: поддержку реализует браузер, а сайт использует API через JavaScript.

Какую задачу решает WebXR

Обычная веб-страница знает размер окна, мышь и клавиатуру. Для VR этого недостаточно. Приложению нужно выводить стереоизображение в гарнитуру, получать положение пользователя в пространстве, вовремя рисовать кадры и понимать, откуда пришёл ввод. Спецификация WebXR Device API описывает общий слой для таких задач.

Это не движок, не формат 3D-моделей и не магазин приложений. Трёхмерную сцену можно собрать с помощью WebGL или WebGPU и библиотек, а WebXR подключает её к совместимому XR-устройству в браузере.

Какие режимы есть в WebXR

У API есть обычная inline-сессия, которая работает в окне страницы, и иммерсивные сессии. immersive-vr выводит виртуальную сцену в гарнитуру. immersive-ar предназначен для сценариев, в которых цифровой контент соотносится с окружающей средой. Доступность конкретного режима зависит от браузера, устройства и разрешений пользователя.

Слово XR здесь объединяет VR и AR. Оно не означает, что любой сайт автоматически запустится в любой гарнитуре: браузеру требуется реальная поддержка нужного режима и оборудования.

Что получает веб-приложение

После действия пользователя сайт может запросить XR-сессию. В рамках неё приложение получает:

  • кадры для отрисовки сцены;
  • позу головы или устройства относительно выбранной системы координат;
  • данные контроллеров и другие доступные источники ввода;
  • информацию о доступных reference space, то есть системах отсчёта для сцены.

Система координат задаёт положение объектов относительно пользователя или комнаты. Ошибка здесь даёт «плавающие» объекты или неправильно заданный пол.

WebXR для посетителя сайта

Пользователю нужен совместимый браузер, устройство с поддержкой XR и сайт, который действительно предлагает иммерсивный режим. Обычно на странице появляется кнопка входа в VR или AR. Браузер показывает системное разрешение, а гарнитура переключается в нужный режим только после подтверждения.

Если кнопки нет, проверьте браузер, разрешение и наличие режима у самого сайта. У браузерной версии и версии приложения возможности могут отличаться.

WebXR для разработчика

Разработчик проверяет navigator.xr, запрашивает сессию по действию пользователя, создаёт слой рендеринга и обновляет сцену в цикле кадров. Ввод не стоит привязывать к одной модели контроллера: API передаёт источники, а приложение назначает им действия. Перед публикацией нужно проверить обычный экран, VR-режим и целевые устройства.

Ограничения, о которых легко забыть

Поддержка WebXR различается между браузерами и гарнитурами. Одно устройство отдаёт контроллеры, другое — ещё и данные рук; у части посетителей будет только обычный экран. Поэтому сайт должен быть полезен и без XR-режима. Браузер ограничивает автоматический вход в гарнитуру и доступ к возможностям платформы.

Когда WebXR уместен

WebXR удобен для коротких демонстраций, интерактивных 3D-моделей, обучения с простым сценарием и предварительного просмотра пространства. Он снижает порог входа: ссылку можно открыть без установки отдельного приложения. Для тяжёлой игры, сложного тренажёра или сценария с глубокой интеграцией в устройство браузерный подход может быть не лучшим выбором. Решение зависит от задачи, производительности и нужных функций, а не от модного названия технологии.

Итог

WebXR соединяет веб-приложение с VR и AR-возможностями совместимого браузера и устройства. Пользователю не требуется отдельная программа WebXR; разработчику нужен сайт, который корректно запрашивает сессию, работает без гарнитуры и учитывает различия платформ. Для технической совместимости ориентируйтесь на документацию браузера и гарнитуры, а не на случайный список «поддерживаемых устройств».

Поделиться:TelegramВКонтакте

Источники

  1. W3C: WebXR Device API
  2. MDN: WebXR Device API
  3. Immersive Web