Виды дополненной реальности: маски, объекты, эффекты
Вся дополненная реальность базируется на технологиях трекинга — отслеживания позиций объектов в реальном пространстве. Это позволяет привязывать графику к реальным объектам.
Виды AR разделяются на виды трекинга — какая технология используется, чтобы разместить виртуальный объект в реальном пространстве:
Если точкой отсчёта является лицо — это AR-маска. Интересно, что технология берёт начало в задачах компьютерной безопасности. Когда-то многие компании вложили деньги в то, чтобы сделать автоматическую систему пропусков, распознавания лиц для поиска преступников и мошенников. Заодно это привело к буму масок.
Если точкой отсчёта является реальное пространство — это AR-объект.
Всё остальное — это AR-эффект. Например, технологии примерки одежды или обуви. Некоторые из них работают по принципу отслеживания лица, головы, но бóльшая часть — по принципу карты глубины (о ней ниже), либо построения скелета тела.
Технологии, которые вписывают AR в пространство вокруг вас
Маркерная технология (marker-based). Позволяет привязываться к меткам, которыми чаще всего выступают картинки или 3D-объекты (работает сильно хуже). Для меток лучше всего подходят контрастные и малоградиентные изображения. Получаются эффекты вроде оживающих картин из «Гарри Поттера». Под капотом у неё решается задача Perspective-n-Point — восстановление точек в 3D-пространстве по их перспективной проекции на плоскость камеры устройства. Благодаря ей можно восстановить положение телефона относительно картинки с камеры.
Источник: «Pose Estimation for Augmented Reality: A Hands-On Survey» Eric Marchand, Hideaki Uchiyama, Fabien Spindler
Основной плюс маркерной технологии — широкое покрытие устройств и стабильность работы. Она отлично подходит для решений, рассчитанных на широкую аудиторию, так как не требует большой производительности.
Как создать дополненную реальность, написав 12 строк кода
tproger.ru
Безмаркерная технология (marker-less). Появилась позже, она отслеживает положение устройства в пространстве, используется не только в мобильных телефонах, но и в шлемах виртуальной реальности. Базируется на методе, который называется SLAM. Благодаря ему можно размещать графику в реальном пространстве, ходить вокруг, при этом нет необходимости, чтобы в кадре камеры присутствовала метка. Они, в принципе, не нужны, графика будет работать где угодно, пример — Pokemon GO.
Как телефон «видит»
Очевидный ответ — через камеру. Однако изображение уточняется набором датчиков.
Магнитометр выступает как компас, определяет, где находится север.
Гироскоп определяет угол наклона и положение устройства.
Акселерометр определяет изменения скорости движения и вращения устройства.
Датчик глубины вычисляет расстояние до объекта.
Уточнять данные, полученные смартфоном от датчиков, помогает искусственный интеллект. Алгоритмы компьютерного зрения помогают отличать объекты друг от друга, понимать, где заканчивается один объект и начинается другой. Например, Google Depth API — библиотека, которая позволяет при помощи компьютерного зрения составлять 3D-карту пространства.
Такие библиотеки также помогают реализовать окклюзию — это когда реальный физический объект перекрывает виртуальный и наоборот.
Ограничения мобильной дополненной реальности
Обсчёт AR сильно расходует заряд батареи, поэтому в AR-опытах, как правило, не делают скидок на качество графики — то, что можно увидеть, должно быть красиво, хотя и недолго. На этом построен принцип использования технологий дополненной реальности.
Телефон быстрее нагревается, из-за чего процессор начинает тормозить. Это называется троттлинг — снижение частоты процессора.
Есть проблемы с реалистичностью. Ощущение реальности в 3D-графике связано с отражениями, бликами и тенями на материалах объектов. В играх — окружение виртуальное, там можно строить карты отражений, чтобы всё правильно отражалось. А в AR окружение реальное, причём вся известная о ней информация поступает с камеры.
Положение источников света во всей комнате или на улице по кадру определить невозможно, поэтому в дополненной реальности свет и тень имитируют, чтобы картинка была похожа на реальную. К физическим процессам это отношения не имеет.
Приложения, которые позволяют создавать примитивные AR-сцены на смартфоне
Есть приложения, которые поставляются с готовым набором встроенных моделей. К сожалению, импортировать свои объекты в них не получится.Такие приложения ограничены в функциональности и не позволяют подгружать свои модели и делать более проработанные сцены. Все эти приложения, кроме Assmblr, работают без маркеров:
— Around позволяет размещать 3D-объекты из готовой библиотеки, а также смотреть проекты других пользователей в определённом радиусе.
— Scenecam позволяет располагать сразу несколько объектов из библиотеки приложения на плоскости, добавлять к ним различные эффекты — например, огонь.
Источник: appadvice.com
— Assemblr позволяет создать сцены с видео, объектами из встроенной галереи, изображениями и гифками. Также есть возможность распечатать маркер и воспроизводить сцену в любом месте, где он расположен. Можно снимать видео или фото со сценой.
Источник: assemblrworld.com
— Holo включает в себя библиотеку платных и бесплатных анимированных моделей, которые можно располагать в реальном пространстве.
Источник: Mashable.com
Чтобы работать с дополненной реальностью более прицельно необходимо освоить редакторы дополненной реальности, движок Unity и прилагающиеся к нему SDK по работе с AR — например, AR Foundation или Vuforia.
Что посмотреть для знакомства с предметом:
AR for everyone — full course
Интерактивная и анимированная дополненная реальность своими руками
Один из инструментов — Reality Composer — чтобы пользоваться им не требуется никаких навыков кодинга. Это редактор дополненной реальности для iOS, iPadOS и Mac, он работает только с форматом .usdz. Размещать, двигать и поворачивать объекты дополненной реальности можно обычным перетаскиванием. Можно задавать триггеры, чтобы, например, по нажатию пальца у ваших объектов запускалась анимация.
Вот ссылка на уроки по инструменту.
Рабочее пространство Reality Composer. Источник — Lyndsey Stuttard / youtube.com
Другой полезный конструктор — Adobe Aero. Уроки по инструменту здесь.
Рабочее пространство Adobe Aero. Источник — J. Stephen Lee / youtube.com
Он способен работать с .fbx и .gltf моделями, принимать сцены из компьютерного 3D-редактора Adobe Dimension. Это открывает большие возможности для моделирования и анимации. Недостаток — приложения доступны только для платформ iOS, iPadOS и Mac.
Где брать модели для своих AR-проектов: бесплатно и красиво
Готовые модели лучше всего скачивать из следующих источников:
Free3d.com
Sketchfab
Asset Store в Unity
Turbosquid
Форматов много, но самые распространённые — .fbx, .obj, .c4d. Для ПО от Apple — главный формат это .usdz. Процесс импорта модели не идеален, разные приложения поддерживают разные форматы. Можно столкнуться с проблемами неподцепившихся текстур или пропавших анимаций.
Не все 3D-форматы содержат информацию о текстурах, анимации и так далее. Формат .obj, например, несёт только данные о геометрии, обычно вместе с ним идёт .mtl файл, который содержит цвет и текстуры.
Приложения для разработки масок
Одно из самых крупных принадлежит Snapchat — это Lens Studio. Это инструмент визуального программирования, разобраться с которым можно без знания программирования. В нём можно проектировать как маски, так и эффекты. Он не ограничивается созданием визуальных эффектов для лица. В приложении можно переключиться на основную камеру девайса и разрабатывать AR-сцену для любой плоскости.
Оно доступно как для WIndows, так и для MacOS. Предлагает большой инструментарий: работа с текстурами, со светом, анимирование и подключение звука к цифровым объектам.
Когда в AR-проекте нужен код?
Для минимального AR-приложения достаточно Unity и AR Foundation. Чтобы поставить кубик в трёхмерном пространстве, не нужно написать и строчки кода. Код потребуется для описания логики поведения объектов. Если хочется, чтобы объект, например, по нажатию подпрыгивал, этого не сделать без скрипта.
Нереальное реально. 9 эффективных кейсов AR-технологий
tproger.ru
Представим базовый кейс: вы прошлись с телефоном по квартире, просканировали пространство, поставили кубик. Теперь вы хотите, чтобы он отлетал от стен по нажатию. С некоторой точностью это можно сделать на ARKit, ARCore и AR Foundation. Они позволяют сканировать пол и стены и делать базовые физические взаимодействия. Но для того чтобы их сделать, нужно будет написать скрипт — обработчик того, что нажатие применяет импульс к объекту.
Примечание Технологии виртуальной и дополненной реальностей широко распространены в строительстве. Рекомендуем взять приведённые инструменты на заметку.
Во всём остальном SDK Unity реализовано так, что без сложной логики всё делается без кода. В большом проекте без кода не получится — там начинаются сложности, связанные с бизнес-логикой системы и тонкими настройками технологий ARCore или ARKit. В небольшом проекте можно сделать полный no-code, за исключением физических взаимодействий, описанных выше.