Технология AR: как работает и на чём создать проект
Технология дополненной реальности позволяет добавлять цифровые элементы в «живую» картинку. Рассказываем, как разработать простой AR-проект.
8К открытий12К показов
Технология дополненной реальности способна на многое: показать, куда идти, помочь определить объект перед вами и даже поймать Пикачу. В статье расскажем о том, что такое AR, и с чего начать разработку собственного приложения.
Григорий Дядиченко
Технический продюсер, занимаюсь подбором команд и разработкой проектов под заказ
Рафаиль Галиев
СРО МТС Live
- Виды дополненной реальности: маски, объекты, эффекты
- Технологии, которые вписывают AR в пространство вокруг вас
- Как телефон «видит»
- Ограничения мобильной дополненной реальности
- Приложения, которые позволяют создавать примитивные AR-сцены на смартфоне
- Интерактивная и анимированная дополненная реальность своими руками
- Где брать модели для своих AR-проектов: бесплатно и красиво
- Приложения для разработки масок
- Когда в AR-проекте нужен код?
Виды дополненной реальности: маски, объекты, эффекты
Вся дополненная реальность базируется на технологиях трекинга — отслеживания позиций объектов в реальном пространстве. Это позволяет привязывать графику к реальным объектам.
Виды AR разделяются на виды трекинга — какая технология используется, чтобы разместить виртуальный объект в реальном пространстве:
- Если точкой отсчёта является лицо — это AR-маска. Интересно, что технология берёт начало в задачах компьютерной безопасности. Когда-то многие компании вложили деньги в то, чтобы сделать автоматическую систему пропусков, распознавания лиц для поиска преступников и мошенников. Заодно это привело к буму масок.
- Если точкой отсчёта является реальное пространство — это AR-объект.
- Всё остальное — это AR-эффект. Например, технологии примерки одежды или обуви. Некоторые из них работают по принципу отслеживания лица, головы, но бóльшая часть — по принципу карты глубины (о ней ниже), либо построения скелета тела.
Технологии, которые вписывают AR в пространство вокруг вас
Маркерная технология (marker-based). Позволяет привязываться к меткам, которыми чаще всего выступают картинки или 3D-объекты (работает сильно хуже). Для меток лучше всего подходят контрастные и малоградиентные изображения. Получаются эффекты вроде оживающих картин из «Гарри Поттера». Под капотом у неё решается задача Perspective-n-Point — восстановление точек в 3D-пространстве по их перспективной проекции на плоскость камеры устройства. Благодаря ей можно восстановить положение телефона относительно картинки с камеры.
Основной плюс маркерной технологии — широкое покрытие устройств и стабильность работы. Она отлично подходит для решений, рассчитанных на широкую аудиторию, так как не требует большой производительности.
Безмаркерная технология (marker-less). Появилась позже, она отслеживает положение устройства в пространстве, используется не только в мобильных телефонах, но и в шлемах виртуальной реальности. Базируется на методе, который называется SLAM. Благодаря ему можно размещать графику в реальном пространстве, ходить вокруг, при этом нет необходимости, чтобы в кадре камеры присутствовала метка. Они, в принципе, не нужны, графика будет работать где угодно, пример — Pokemon GO.
Как телефон «видит»
Очевидный ответ — через камеру. Однако изображение уточняется набором датчиков.
- Магнитометр выступает как компас, определяет, где находится север.
- Гироскоп определяет угол наклона и положение устройства.
- Акселерометр определяет изменения скорости движения и вращения устройства.
- Датчик глубины вычисляет расстояние до объекта.
Уточнять данные, полученные смартфоном от датчиков, помогает искусственный интеллект. Алгоритмы компьютерного зрения помогают отличать объекты друг от друга, понимать, где заканчивается один объект и начинается другой. Например, Google Depth API — библиотека, которая позволяет при помощи компьютерного зрения составлять 3D-карту пространства.
Такие библиотеки также помогают реализовать окклюзию — это когда реальный физический объект перекрывает виртуальный и наоборот.
Ограничения мобильной дополненной реальности
Обсчёт AR сильно расходует заряд батареи, поэтому в AR-опытах, как правило, не делают скидок на качество графики — то, что можно увидеть, должно быть красиво, хотя и недолго. На этом построен принцип использования технологий дополненной реальности.
Телефон быстрее нагревается, из-за чего процессор начинает тормозить. Это называется троттлинг — снижение частоты процессора.
Есть проблемы с реалистичностью. Ощущение реальности в 3D-графике связано с отражениями, бликами и тенями на материалах объектов. В играх — окружение виртуальное, там можно строить карты отражений, чтобы всё правильно отражалось. А в AR окружение реальное, причём вся известная о ней информация поступает с камеры.
Положение источников света во всей комнате или на улице по кадру определить невозможно, поэтому в дополненной реальности свет и тень имитируют, чтобы картинка была похожа на реальную. К физическим процессам это отношения не имеет.
Приложения, которые позволяют создавать примитивные AR-сцены на смартфоне
Есть приложения, которые поставляются с готовым набором встроенных моделей. К сожалению, импортировать свои объекты в них не получится.Такие приложения ограничены в функциональности и не позволяют подгружать свои модели и делать более проработанные сцены. Все эти приложения, кроме Assmblr, работают без маркеров:
— Around позволяет размещать 3D-объекты из готовой библиотеки, а также смотреть проекты других пользователей в определённом радиусе.
— Scenecam позволяет располагать сразу несколько объектов из библиотеки приложения на плоскости, добавлять к ним различные эффекты — например, огонь.
— Assemblr позволяет создать сцены с видео, объектами из встроенной галереи, изображениями и гифками. Также есть возможность распечатать маркер и воспроизводить сцену в любом месте, где он расположен. Можно снимать видео или фото со сценой.
— Holo включает в себя библиотеку платных и бесплатных анимированных моделей, которые можно располагать в реальном пространстве.
Чтобы работать с дополненной реальностью более прицельно необходимо освоить редакторы дополненной реальности, движок Unity и прилагающиеся к нему SDK по работе с AR — например, AR Foundation или Vuforia.
Что посмотреть для знакомства с предметом:
AR for everyone — full course
Курс по AR Foundation
Интерактивная и анимированная дополненная реальность своими руками
Один из инструментов — Reality Composer — чтобы пользоваться им не требуется никаких навыков кодинга. Это редактор дополненной реальности для iOS, iPadOS и Mac, он работает только с форматом .usdz. Размещать, двигать и поворачивать объекты дополненной реальности можно обычным перетаскиванием. Можно задавать триггеры, чтобы, например, по нажатию пальца у ваших объектов запускалась анимация.
Вот ссылка на уроки по инструменту.
Другой полезный конструктор — Adobe Aero. Уроки по инструменту здесь.
Он способен работать с .fbx и .gltf моделями, принимать сцены из компьютерного 3D-редактора Adobe Dimension. Это открывает большие возможности для моделирования и анимации. Недостаток — приложения доступны только для платформ iOS, iPadOS и Mac.
Где брать модели для своих AR-проектов: бесплатно и красиво
Готовые модели лучше всего скачивать из следующих источников:
Форматов много, но самые распространённые — .fbx, .obj, .c4d. Для ПО от Apple — главный формат это .usdz. Процесс импорта модели не идеален, разные приложения поддерживают разные форматы. Можно столкнуться с проблемами неподцепившихся текстур или пропавших анимаций.
Не все 3D-форматы содержат информацию о текстурах, анимации и так далее. Формат .obj, например, несёт только данные о геометрии, обычно вместе с ним идёт .mtl файл, который содержит цвет и текстуры.
Приложения для разработки масок
Одно из самых крупных принадлежит Snapchat — это Lens Studio. Это инструмент визуального программирования, разобраться с которым можно без знания программирования. В нём можно проектировать как маски, так и эффекты. Он не ограничивается созданием визуальных эффектов для лица. В приложении можно переключиться на основную камеру девайса и разрабатывать AR-сцену для любой плоскости.
Оно доступно как для WIndows, так и для MacOS. Предлагает большой инструментарий: работа с текстурами, со светом, анимирование и подключение звука к цифровым объектам.
Когда в AR-проекте нужен код?
Для минимального AR-приложения достаточно Unity и AR Foundation. Чтобы поставить кубик в трёхмерном пространстве, не нужно написать и строчки кода. Код потребуется для описания логики поведения объектов. Если хочется, чтобы объект, например, по нажатию подпрыгивал, этого не сделать без скрипта.
Представим базовый кейс: вы прошлись с телефоном по квартире, просканировали пространство, поставили кубик. Теперь вы хотите, чтобы он отлетал от стен по нажатию. С некоторой точностью это можно сделать на ARKit, ARCore и AR Foundation. Они позволяют сканировать пол и стены и делать базовые физические взаимодействия. Но для того чтобы их сделать, нужно будет написать скрипт — обработчик того, что нажатие применяет импульс к объекту.
Примечание Технологии виртуальной и дополненной реальностей широко распространены в строительстве. Рекомендуем взять приведённые инструменты на заметку.
Во всём остальном SDK Unity реализовано так, что без сложной логики всё делается без кода. В большом проекте без кода не получится — там начинаются сложности, связанные с бизнес-логикой системы и тонкими настройками технологий ARCore или ARKit. В небольшом проекте можно сделать полный no-code, за исключением физических взаимодействий, описанных выше.
8К открытий12К показов