- Как работает любое приложение с дополненной реальностью
- Чему я должен научиться, чтобы стать разработчиком дополненной реальности?
- Языки программирования
- SDK дополненной реальности
- 3D-моделирование и игровые движки
- К какому типу относится ваше будущее AR-приложение?
- 1. Дополненная реальность, привязанная к маркеру.
- 2. Дополненная реальность, НЕ привязанная к маркеру.
- 3. Дополненная реальность, привязанная к конкретной локации.
- Применение
- AR устройства
- Мнение специалистов
- Как используется дополненная реальность?
- Виды AR
- Материалы для старта разработки мобильного AR-приложения
- Путь 1: Есть собственный контент
- Путь 2: У вас нет готового контента
- Как начать самим делать AR?
Как работает любое приложение с дополненной реальностью
С помощью камеры телефон распознает пространство вокруг себя, выясняет габариты и опорные точки, находя горизонтальные поверхности, на которых можно расположить виртуальный объект — заранее собранную 3D-модель или даже 2D-объект. Например специально разработанную картинку или снятое видео.
61% населения России пользуется мобильным интернетом 5 лет AR разработка прогрессирует на рынке IT Мало кто знает, что дополненная реальность может быть создана на основе обычного видео, снятого на аппаратуру, которая имеется в вашем распоряжении. Например, на камеру смартфона. Этот метод позволит вам значительно снизить стоимость вхождения в мир AR.
Чему я должен научиться, чтобы стать разработчиком дополненной реальности?
Это захватывающее время, чтобы войти в область AR. Технологические усовершенствования постоянно улучшают качество дополненной реальности, и новые отрасли начинают искать решения дополненной реальности.
Итак, чему вы должны научиться, чтобы стать разработчиком AR-приложений? Конкретный ответ зависит от того, над какими проектами вы хотели бы работать. При этом, вот некоторые основные навыки, которые пригодятся любому разработчику дополненной реальности.
Языки программирования
Разработчикам дополненной реальности требуются сильные навыки программирования. Независимо от того, начинаете ли вы с нуля или переходите из другой области, имеет смысл сосредоточиться на языках, обычно используемых в разработке дополненной реальности.
Наиболее распространенные языки зависят от платформы и включают в себя:
- Apple (iOS): C/C++, C#, или Swift
- Google (Android): Java
JavaScript — еще один полезный язык, особенно если вы планируете создавать веб-приложения.
SDK дополненной реальности
Как разработчик приложений AR, вам не обязательно знать все тонкости алгоритмов компьютерного зрения (если только вы не планируете участвовать в исследованиях и разработках). Комплект для разработки программного обеспечения для дополненной реальности (SDK) может справиться с этой и многими другими задачами — не нужно изобретать велосипед.
AR SDK — это полнофункциональные наборы инструментов для создания дополненной реальности. Задача AR SDK — объединить цифровой контент с реальным миром. С этой целью SDK AR содержат библиотеки, которые решают сложные задачи, такие как отслеживание, распознавание объектов, оценка освещенности, рендеринг контента и т. д.
И Apple (iOS), и Google (Android) предлагают SDK дополненной реальности для своих мобильных платформ. SDK от Apple называется ARKit, а от Google — ARCore. Другие известные SDK дополненной реальности включают Wikitude и Vuforia.
3D-моделирование и игровые движки
В какой-то момент вам нужно будет создать реальный цифровой контент, который вы будете размещать в своих приложениях дополненной реальности (например, покемонов!). Для этого необходимы навыки 3D-моделирования.
3D-моделирование само по себе является обширной областью, и существует множество инструментов на выбор. Большинство профессиональных разработчиков дополненной реальности работают с популярными игровыми движками, такими как Unity (использующий язык программирования C#) и Unreal Engine (использующий C++).
К какому типу относится ваше будущее AR-приложение?
Всего бывает 3 типа приложений с дополненной реальностью. Выбрать, какое подходит именно вам, можно, исходя из свойств предмета, на который будет направлен AR-эффект, и из ваших бизнес-целей:
1. Дополненная реальность, привязанная к маркеру.
Когда для встраивания цифрового контента в реальный мир приложение должно точно знать, на что смотрит пользователь.
Пример: AR в музеях — приложение считывает маркер, зашитый в картину, и точно понимает, что это — «Мона Лиза» или «Утро в сосновом лесу», разворачивая перед вами информацию о картине или оживляя ее персонажей. Таким маркером может быть QR-код, специфическое изображение, силуэт объекта — все, что имеет достаточное количество уникальных точек, которые становятся триггером для дополненной реальности. Если картина или книга с маркером будут двигаться в пространстве, виртуальный объект станет перемещаться вслед за ними как привязанный.
В коммерческих целях такие приложения уже использует Coca Cola и Zara. В первом случае при наведении камеры на рисунок, изображенный на банке напитка, на экране смартфона эта самая банка превращается в музыкальный плеер. Во втором маркером выступает витрину магазина Zara или манекен, на экране смартфона появляются живые модели, демонстрирующие одежду в динамике.
2. Дополненная реальность, НЕ привязанная к маркеру.
Безмаркерный AR позволяет разместить объект виртуальной реальности, где вы пожелаете.
Пример: одно из самых знаменитых в мире коммерческих AR-приложений Ikea Place работает именно по такому принципу. Вы можете разместить виртуальную мебель в вашей гостиной, приложение поймет, что это помещение, ориентируясь на точки пола, стен и потолка, и позволит расставить трехмерные кресла и столы так, что виртуальный мир идеально впишется в реальный.
3. Дополненная реальность, привязанная к конкретной локации.
В этом случае AR-приложение связывает контент дополненной реальности с конкретным местоположением, определяя его с помощью GPS, компаса или систем компьютерного зрения. Распознавая улицу, оно может показывать туристическую информацию или развлекательный контент. Так работает, например, Pokemon Go и приложения-гиды.
Применение
Наиболее распространенными сферами применения технологии в мире стали медицина, обучение, культура и туризм, промышленность. Важно понимать, что технологии дополненной и виртуальной реальности еще не настолько продвинуты, чтобы доверять им жизнь и здоровье людей, поэтому когда говорят об AR в медицине или промышленности, зачастую имеют в виду обучение сотрудников.
AR устройства
Устройства для дополненной реальности можно разделить на две группы. Первые, используют видео дисплеи, вторые — оптические.
Их также называют True AR. Устройства похожи на обычные очки и добавляют информацию или цифровой контент к тому, что видит пользователь сквозь линзы. Выглядит круто, но есть большой недостаток — цена. Продвинутые устройства с оптическими дисплеями стоят от 1000 до 5000 долларов. Они подразумевают использование сложных в изготовлении оптических дисплеев и технологий проецирования контента. Поэтому производители ориентируются в основном на клиентов корпоративного уровня.
Примеры популярных AR очков: Vuzix Blade Smart Glasses, Meta 2, ODG R-9.
Существуют более простые и дешевые технологии, вроде Laser Beam Scanning, но с их помощью пока можно проецировать только примитивный контент. По сути, это просто очки с уведомлениями.
Самым доступным устройством с видео дисплеем, пригодным для AR является смартфон. Стал доступен для массового потребления благодаря приложениям, использующим дополненную реальность. Это позволяет использовать дополненную реальность в развлекательных, корпоративных и практических целях. Пользователь просто направляет камеру мобильного телефона на объект в реальном мире, и приложение AR накладывает на него цифровой контент.
Мнение специалистов
Для того, чтобы лучше разобраться в том, как работает дополненная реальность, мы задали несколько вопросов специалистам компании-разработчика визуальных решений на основе искусственного интеллекта, дополненной и виртуальной реальности Phygitalism.
В качестве маркера можно использовать почти что угодно. Для нашего приложения ArtLife 2020 мы использовали как обычные абстрактные изображения, собранные пазлы, купюры, так и настоящие картины. Однако есть некоторые ограничения на то, как должен выглядеть маркер. Исходя из наиболее часто применяемых алгоритмов, маркерное изображение должно иметь достаточно острых углов и быть контрастным (т.к. часто рассматривается в градациях серого), иметь не бликующую поверхность и не быть слишком маленьким. Например, четырех-сантиметровый круг — плохой маркер, а десяти-сантиметровый квадрат — уже лучше.
Есть ли разница в разработке AR для приложений и для Web?
Главное отличие между созданием AR на базе приложения и на базе сайта — это пайплайн разработки, который напрямую зависит от языка программирования (они отличаются для создания веб и mobile решений).
При создании WebAR решения нужно помнить об ограничениях, которые пока что есть у технологии, например невозможность распознавания плоскости (обращаем внимание, что в этом случае мы говорим именно про WebAR, не про веб 3D AR форматы как usdz). Пока с этим лучше всего работает платформа 8th wall, однако о таком качестве как на ARkit/ARcore пока говорить рано. И это влияет на создание концепции взаимодействий в AR, сценария контента — нужно продумать механики так, чтобы несовершенства технологии были минимально заметны для пользователя. Хороший пример — онлайн-магазин предметов искусства Saatchi Art, запустивший AR-просмотр продаваемых картин. Чтобы сбалансировать отсутствие привязки виртуального объекта к стене, разработчики добавили возможность механически выбрать край стены, чтобы относительно него размещать произведение искусства и предупреждать пользователя, если он подходит слишком близко к стене.
Основными ограничениями WebAR можно назвать вес 3D сцены, формат и сложность 3D моделей.
Какова роль движка в разработке AR?
Первичная задача движка — упростить и ускорить разработку. И чем более популярным становится движок, тем большим количеством плагинов и библиотек он обрастает, что хорошо сказывается на скорости разработки. Однако нужно особенно чутко отбирать необходимые инструменты.
Насколько Unity подходит для работы с AR?
Unity — пример движка, который немало уделяет внимания AR разработке. Последние проекты, такие как MARS или XR Interaction Toolkit, этому подтверждение. Большой плюс в том, что с помощью Unity можно создавать кросс-платформенные приложения, которые потребуют минимального изменения кода, а не создания приложения с нуля для другой платформы. В этом скрываются и некоторые минусы, но это требует отдельного обсуждения. Также много зависит и от требований к приложению. Если необходимо использовать уникальные или новые AR функции, то вполне возможно, их интеграция в Unity может быть еще не реализована, поэтому такие вещи стоит уточнять.
Одно из главных отличий Unity от других игровых движков — это существенно больший охват различных SDK, которые предлагают новый функционал в AR. Подавляющий объем библиотек для AR скорее имеют интеграцию с Unity, нежели с другим игровым движком. Это всегда нативные библиотеки, часто Unity плагин, немного реже можно встретить интеграцию с Unreal Engine и т.д.
Какие смежные знания будут плюсом при обучении AR разработке?
Помимо навыков работы с выбранным движком и программирования, понадобится хотя бы базовое понимание, что такое SLAM, как это работает в ARKit/ARCore, какие функции и датчики устройств задействованы и почему. Это особенно полезно, когда заходит речь о взаимодействиях с пространством, навигации и мультиплеера в контексте AR.
Как используется дополненная реальность?
В последние годы технологические достижения привели к взрывному росту в области дополненной реальности. Дополненная реальность вскоре может коснуться почти всех секторов экономики и стать частью повседневной жизни многих из нас.
Вот лишь некоторые из текущих и потенциальных вариантов использования AR:
- Развлечения: Сделайте видеочаты более увлекательными с помощью наклеек, линз и игр.
- Покупки: виртуально примерьте одежду или визуализируйте мебель в своем доме перед покупкой.
- Спорт: нарисуйте линии на спортивных площадках, чтобы проиллюстрировать и проанализировать игру.
- Навигация: используйте наложение GPS поверх реальной среды, чтобы указать направление.
- Медицина: создание проекций мозга для помощи в нейрохирургии.
- Военные: проецируйте высоту, скорость и другие данные на козырьки шлемов пилотов-истребителей, чтобы улучшить фокусировку.
- Логистика: доставляйте информацию о грузовых контейнерах членам экипажа, чтобы ускорить время погрузки.
- Музеи: оживите экспонаты, предоставив повествование, изображение художника или другую дополнительную информацию.
- Археология: проецируйте изображения древних цивилизаций на сегодняшние руины, чтобы помочь в исследованиях.
Виды AR
Существует три основных технологии привязывания цифрового контента к объектам в реальном мире.
Привязанный к локации AR.
AR-приложение связывает контент дополненной реальности с конкретным местоположением, определяя его с помощью GPS, компаса или систем компьютерного зрения. Распознавая улицу, оно может показывать туристическую информацию или развлекательный контент. Так работает всем известный Pokemon Go и приложения-гиды.
Безмаркерный AR
Позволяет разместить объект виртуальной реальности в любом месте. Одно из самых знаменитых в мире коммерческих AR-приложений Ikea Place работает именно по такому принципу.
Маркерный AR
Приложение привязывает цифровой контент к определенным меткам на реальном объекте. В качестве маркера могут выступать любые уникальные точки объекта. На данный момент, это наиболее развитая технология. Она широко применяется для оживления графического контента в искусстве и рекламе, используется при создании всевозможных масок для Instagram, TikTok и прочего.
Материалы для старта разработки мобильного AR-приложения
Итак, вы определились, какие коммерческие, развлекательные или информационные цели у вашего AR-проекта, а также с приложением какого типа их легче достичь. Для любого приложения потребуется виртуальный контент — аудио, видео, 3D-модели, текстуры, что-то одно или комбинация из перечисленного. Вы можете предоставить нам эти материалы при их наличии или мы можем помочь вам в их создании. В соответствии с этим есть два пути:
Путь 1: Есть собственный контент
- Видео лучше всего прислать в форматах mp4 или .mov
- Звук в формате MP3
- 3D-объекты в форматах .dae или .scn для iOS и в .obj или .fbx для Android
Путь 2: У вас нет готового контента
Как начать самим делать AR?
Apple, Facebook, Snapchat, Google и другие уже предлагают AR приложения и комплекты разработки программного обеспечения (SDK), благодаря которым пользователь любого уровня может попробовать свои силы в создании AR. Например Spark AR от Facebook. В этой программе можно создавать маски, менять окружающее пространство через фильтры и добавлять свои 3D объекты. Для более сложных масок потребуются углубленные знания CG и программирования, но простые можно создать без специальной подготовки. Так же хорошее приложение по экспериментам с Image Tracking — EyeJack.
Для тех кто интересуется 3D моделированием, стоит посмотреть платформу Vectary 3D. Файлы, созданных на ней сцен, можно экспортировать в формате, который откроется в виде AR стандартными средствами вашего iPhone.