Технология AR: как работает и на чём создать проект

Логотип компании МТС
Отредактировано

Технология дополненной реальности позволяет добавлять цифровые элементы в «живую» картинку. Рассказываем, как разработать простой AR-проект.

8К открытий12К показов

Технология дополненной реальности способна на многое: показать, куда идти, помочь определить объект перед вами и даже поймать Пикачу. В статье расскажем о том, что такое AR, и с чего начать разработку собственного приложения.

  1. Виды дополненной реальности: маски, объекты, эффекты
  2. Технологии, которые вписывают AR в пространство вокруг вас
  3. Как телефон «видит»
  4. Ограничения мобильной дополненной реальности
  5. Приложения, которые позволяют создавать примитивные AR-сцены на смартфоне
  6. Интерактивная и анимированная дополненная реальность своими руками
  7. Где брать модели для своих AR-проектов: бесплатно и красиво
  8. Приложения для разработки масок
  9. Когда в AR-проекте нужен код?

Виды дополненной реальности: маски, объекты, эффекты

Вся дополненная реальность базируется на технологиях трекинга — отслеживания позиций объектов в реальном пространстве. Это позволяет привязывать графику к реальным объектам.

Виды AR разделяются на виды трекинга — какая технология используется, чтобы разместить виртуальный объект в реальном пространстве:

  1. Если точкой отсчёта является лицо — это AR-маска. Интересно, что технология берёт начало в задачах компьютерной безопасности. Когда-то многие компании вложили деньги в то, чтобы сделать автоматическую систему пропусков, распознавания лиц для поиска преступников и мошенников. Заодно это привело к буму масок.
  2. Если точкой отсчёта является реальное пространство — это AR-объект.
  3. Всё остальное — это AR-эффект. Например, технологии примерки одежды или обуви. Некоторые из них работают по принципу отслеживания лица, головы, но бóльшая часть — по принципу карты глубины (о ней ниже), либо построения скелета тела.

Технологии, которые вписывают AR в пространство вокруг вас

Маркерная технология (marker-based). Позволяет привязываться к меткам, которыми чаще всего выступают картинки или 3D-объекты (работает сильно хуже). Для меток лучше всего подходят контрастные и малоградиентные изображения. Получаются эффекты вроде оживающих картин из «Гарри Поттера». Под капотом у неё решается задача Perspective-n-Point — восстановление точек в 3D-пространстве по их перспективной проекции на плоскость камеры устройства. Благодаря ей можно восстановить положение телефона относительно картинки с камеры.

Технология AR: как работает и на чём создать проект 1
Источник: «Pose Estimation for Augmented Reality: A Hands-On Survey» Eric Marchand, Hideaki Uchiyama, Fabien Spindler

Основной плюс маркерной технологии — широкое покрытие устройств и стабильность работы. Она отлично подходит для решений, рассчитанных на широкую аудиторию, так как не требует большой производительности.

Безмаркерная технология (marker-less). Появилась позже, она отслеживает положение устройства в пространстве, используется не только в мобильных телефонах, но и в шлемах виртуальной реальности. Базируется на методе, который называется SLAM. Благодаря ему можно размещать графику в реальном пространстве, ходить вокруг, при этом нет необходимости, чтобы в кадре камеры присутствовала метка. Они, в принципе, не нужны, графика будет работать где угодно, пример — Pokemon GO.

Как телефон «видит»

Очевидный ответ — через камеру. Однако изображение уточняется набором датчиков.

  • Магнитометр выступает как компас, определяет, где находится север.
  • Гироскоп определяет угол наклона и положение устройства.
  • Акселерометр определяет изменения скорости движения и вращения устройства.
  • Датчик глубины вычисляет расстояние до объекта.

Уточнять данные, полученные смартфоном от датчиков, помогает искусственный интеллект. Алгоритмы компьютерного зрения помогают отличать объекты друг от друга, понимать, где заканчивается один объект и начинается другой. Например, Google Depth API — библиотека, которая позволяет при помощи компьютерного зрения составлять 3D-карту пространства.

Такие библиотеки также помогают реализовать окклюзию — это когда реальный физический объект перекрывает виртуальный и наоборот.

Ограничения мобильной дополненной реальности

Обсчёт AR сильно расходует заряд батареи, поэтому в AR-опытах, как правило, не делают скидок на качество графики — то, что можно увидеть, должно быть красиво, хотя и недолго. На этом построен принцип использования технологий дополненной реальности.

Телефон быстрее нагревается, из-за чего процессор начинает тормозить. Это называется троттлинг — снижение частоты процессора.

Есть проблемы с реалистичностью. Ощущение реальности в 3D-графике связано с отражениями, бликами и тенями на материалах объектов. В играх — окружение виртуальное, там можно строить карты отражений, чтобы всё правильно отражалось. А в AR окружение реальное, причём вся известная о ней информация поступает с камеры.

Положение источников света во всей комнате или на улице по кадру определить невозможно, поэтому в дополненной реальности свет и тень имитируют, чтобы картинка была похожа на реальную. К физическим процессам это отношения не имеет.

Приложения, которые позволяют создавать примитивные AR-сцены на смартфоне

Есть приложения, которые поставляются с готовым набором встроенных моделей. К сожалению, импортировать свои объекты в них не получится.Такие приложения ограничены в функциональности и не позволяют подгружать свои модели и делать более проработанные сцены. Все эти приложения, кроме Assmblr, работают без маркеров:

Around позволяет размещать 3D-объекты из готовой библиотеки, а также смотреть проекты других пользователей в определённом радиусе.

Scenecam позволяет располагать сразу несколько объектов из библиотеки приложения на плоскости, добавлять к ним различные эффекты — например, огонь.

Технология AR: как работает и на чём создать проект 2
Источник: appadvice.com

Assemblr позволяет создать сцены с видео, объектами из встроенной галереи, изображениями и гифками. Также есть возможность распечатать маркер и воспроизводить сцену в любом месте, где он расположен. Можно снимать видео или фото со сценой.

Технология AR: как работает и на чём создать проект 3
Источник: assemblrworld.com

Holo включает в себя библиотеку платных и бесплатных анимированных моделей, которые можно располагать в реальном пространстве.

Технология AR: как работает и на чём создать проект 4
Источник: Mashable.com

Чтобы работать с дополненной реальностью более прицельно необходимо освоить редакторы дополненной реальности, движок Unity и прилагающиеся к нему SDK по работе с AR — например, AR Foundation или Vuforia.

Что посмотреть для знакомства с предметом:

Превью видео WzfDo2Wpxks

AR for everyone — full course

Превью видео FGh7f-PaGQc

Курс по AR Foundation

Интерактивная и анимированная дополненная реальность своими руками

Один из инструментов — Reality Composer — чтобы пользоваться им не требуется никаких навыков кодинга. Это редактор дополненной реальности для iOS, iPadOS и Mac, он работает только с форматом .usdz. Размещать, двигать и поворачивать объекты дополненной реальности можно обычным перетаскиванием. Можно задавать триггеры, чтобы, например, по нажатию пальца у ваших объектов запускалась анимация.

Вот ссылка на уроки по инструменту.

Технология AR: как работает и на чём создать проект 5
Рабочее пространство Reality Composer. Источник — Lyndsey Stuttard / youtube.com

Другой полезный конструктор — Adobe Aero. Уроки по инструменту здесь.

Технология AR: как работает и на чём создать проект 6
Рабочее пространство Adobe Aero. Источник — J. Stephen Lee / youtube.com

Он способен работать с .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К показов