Введение в Разработку WebXR
AR и VR в Интернете — это удивительная технология. Она позволяет создавать и публиковать свои идеи без необходимости прохождения через курируемые магазины, предоставляя возможность легко делиться, как вы делитесь сайтом.
VR в Интернете существует с момента первого выпуска WebVR 1.0 в Chrome и Firefox в 2016 году. Этот эксперимент был заменен WebXR Device API, который в конечном итоге также будет поддерживать дополненную реальность (и доступен в Chrome для Android с ноября 2020 года), а не только виртуальную реальность. Теперь, когда эта новая технология достигла достаточно стабильного уровня, чтобы разработчики могли начать полагаться на нее, как начать?
Фреймворки
Прочтите наш последний пост в блоге для получения рекомендаций о том, как выбрать фреймворк.
3 Специфические для Веба Проблемы
Разработка XR для веба и нативная разработка различаются по трем крупным пунктам:
Время Загрузки
Ожидание загрузки игры неприемлемо в Интернете. Каждая секунда ожидания увеличивает количество пользователей, которые могут отказаться.
Сохранение небольшого размера игровых активов, использование сжатия и обеспечение быстрой загрузки — ключевые моменты для сохранения довольства пользователей.
Производительность
Веб запускается в песочнице браузера. Это означает, что он изолирован от устройства, на котором работает, чтобы не нанести ему вреда.
Песочница подразумевает накладные расходы на производительность, поскольку действия сайта должны быть перепроверены. Это, вместе с накладными расходами JavaScript по сравнению с нативными приложениями, делает VR и AR еще более проблематичным с точки зрения производительности.
Масштабируемое Качество
Если вы выпускаете нативное приложение в VR, вы обычно нацелены на несколько очень специфических устройств. Зная их показатели производительности, вы можете адаптировать каждую сборку под платформу.
Преимущество Интернета в том, что он универсально кросс-платформенный, так что любое устройство может запускать ваше WebXR-приложение. Это значит, что вам нужно учитывать всё — от тостера до настольного ПК — и определить минимальные требования.
В VR диапазон устройств также предполагает диапазон способов ввода: от простого управления взглядом (Google Cardboard) до контроллеров с 3 и 6 степенями свободы, управления жестами (Quest 2) и отслеживания взгляда (Quest Pro, Apple Vision Pro).
Вам предстоит определить наименьший общий знаменатель, который должен поддерживать ваше приложение.
Решения
Важно решать эти специфические для веба проблемы уже на этапе проектирования: они влияют на ваш выбор художественного стиля, способа взаимодействия и могут стать критическим фактором для вашего приложения.
Загружаться Быстрее
В общем, чем меньше ваши файлы, тем быстрее загрузится игра. В Интернете рекомендуется загружать только необходимые для начала активы и лениво загружать остальные во время выполнения.
Текстовые форматы обычно требуют большего времени на разбор, поэтому рассмотрите возможность использования двоичных форматов активов. Форматы изображений, такие как WebP и Basis Universal, могут улучшить размеры файлов на процессоре и GPU по сравнению с традиционными PNG и JPEG изображениями.
Производительность
Следите за производительностью и оптимизируйте в зависимости от вашего масштаба. Держите активы небольшими и тратьте разрешение на важные активы и в зависимости от расстояния до пользователя.
Специальные расширения браузера, такие как OCULUS_multiview2, могут помочь с производительностью рендеринга GPU. Другие, такие как надвигающийся WEBGL_multi_draw, помогут с производительностью процессора.
Большинство фреймворков имеют руководство по производительности или советы. Проверьте их, чтобы узнать, что вы можете сделать с самого начала, если вы беретесь за крупный проект.
Масштабирование
Для лучшей масштабируемости вы можете загружать активы в зависимости от типа ввода гарнитуры или строки user agent. Системы, основанные на управлении взглядом, обычно менее мощные, чем устройства с 6 степенями свободы или те, которые поддерживают управление жестами.
Wonderland Engine
Wonderland Engine стремится самостоятельно решать эти задачи по оптимизации для вас. Наша цель — позволить вам сосредоточиться на функциях вашего приложения, не беспокоясь о технических проблемах, связанных с его плавной работой.
Wonderland Engine недавно достиг версии 1.0. Мы будем рады приветствовать вас в нашем сообществе Discord!