Меню Закрыть

Создать приложение с дополненной реальностью

Содержание

Эти программы позволят примерить татуировку, пригласить в гости Эйнштейна и сыграть с другом в «Танчики».

1. JigSpace

JigSpace использует дополненную реальность, чтобы рассказывать пользователям о том, как устроены разные сложные механизмы, объекты или идеи. С его помощью можно узнать, из чего состоят слои Земли, за что отвечают разные отсеки космической станции, за счёт чего работает реактивный двигатель и многое другое.

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

2. Google Объектив

«Google Объектив» — это одно из тех приложений, которые первое время кажутся бесполезными, но быстро становятся незаменимыми. Оно постоянно сканирует всё, на что вы направляете камеру смартфона. Определяет объекты, растения, животных, логотипы и здания, считывает QR-коды, переводит текст. И всё это — при полной интеграции с сервисами Google.

Сценариев его использования множество. К примеру, если вы хотите узнать, что значит надпись на неизвестном языке. Или сколько стоят приглянувшиеся туфли. Или как называется незнакомый цветок. Отдельный плюс «Объектива» в том, что вам, скорее всего, даже не придётся его скачивать: он встроен в «Google Фото», «Google Ассистент» и приложение Google.

В этом гайде вы узнаете, как добавить 3D-модели в реальный мир. Библиотека ARCore от Google позволяет добавлять на 2D-изображение (картинка или видео) полноценные 3D-модели.

Вам необходимо предоставить системе некое опорное изображение, которое ARCore будет искать в реальном мире, чтобы на его основе добавить на изображение 3D-модель. Дополненная реальность уже широко используются, например, в книгах, газетах, журналах и т.д.

Прежде чем погрузиться в этот туториал, вам стоит ознакомиться с предыдущими двумя статьями на эту тему, которые познакомят вас с основными AR-терминами:

Что такое изображения дополненной реальности?

Согласно документации для разработчиков, изображения дополненной реальности в ARCore позволяют создавать приложения дополненной реальности, которые могут «оживлять» 2D-изображения, например, плакаты или упаковки продуктов.

Вы загружаете в ARCore какие-то опорные изображения, а он вам затем сообщает об их обнаружении во время AR-сессии, например во время съёмки видео. И эта информация используется для расположения 3D-модели на 2D-изображении.

Читайте также:  Adobe flash plugin ubuntu

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

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

  • ARCore может обрабатывать только до 20 опорных изображений одновременно.
  • Физическая плоскость в реальном мире должна быть плоской, а её площадь должна быть больше, чем 15 см х 15 см.
  • ARCore не может отслеживать движущиеся изображения и объекты.

Выбор подходящего опорного изображения

Вот несколько советов для выбора хорошего опорного изображения для ARCore:

  • Изображения дополненной реальности поддерживают форматы PNG, JPEG и JPG.
  • Неважно, цветное будет изображение или чёрно-белое, главное, чтобы оно было высокой контрастности.
  • Разрешение изображения должно быть не менее 300 х 300 пикселей.
  • Использование изображений с высоким разрешением не означает улучшение производительности.
  • Следует избегать изображений с повторяющимися паттернами (например, узорами или горошком).
  • Используйте инструмент arcoreimg, чтобы оценить, насколько подходит ваше изображение для работы. Рекомендуется оценка не менее 75 баллов.

Как использовать инструмент arcoreimg:

  • Загрузите ARCore SDK для Android по этой ссылке.
  • Распакуйте zip-содержимое файла в любое место.
  • В извлеченной папке перейдите по пути tools > arcoreimg > windows (даже если у вас Linux или macOS).
  • Откройте командную строку в этой директории.
  • И введите эту команду:

Замените dog.png на полный путь к вашему изображению.

Начало работы с приложением дополненной реальности

Теперь, когда вы ознакомились с ARCore и выбрали хорошее изображение с оценкой 75+, пришло время приступить к написанию кода приложения.

Создание фрагмента

Мы создадим фрагмент и добавим его в нашу Activity. Создаём класс с именем CustomArFragment и наследуем его от ArFragment . Вот код для CustomArFragment :

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

Затем мы устанавливаем режим обновления для сессии LATEST_CAMERA_IMAGE . Это гарантирует, что мы будем узнавать об обновлениях изображения всякий раз, когда обновится кадр камеры.

Настройка базы данных изображений

Добавьте выбранное опорное изображение (которое вы хотите обнаружить в физическом мире) в папку assets (создайте её, если её ещё нет). Теперь мы можем добавлять изображения в нашу базу данных.

Читайте также:  Где зарядить телефон на казанском вокзале

Мы создадим эту базу данных, как только будет создан фрагмент. В логи мы выведем результат этой операции:

Вот как будет выглядеть CustomArFragment :

Вскоре мы добавим метод setupAugmentedImagesDb в MainActivity . Теперь давайте добавим CustomArFragment в наш activity_main.xml :

Добавление изображения в базу данных

Сейчас мы настроим нашу базу данных изображений, обнаружим опорное изображение в реальном мире и добавим 3D-модель на изображение.

Давайте начнём с настройки нашей базы данных. Создайте публичный метод setupAugmentedImagesDb в классе MainActivity :

Мы также создали метод loadAugmentedImage , который загружает изображение из папки ресурсов и возвращает растровое изображение.

В setupAugmentedImagesDb мы сначала инициализируем нашу базу данных для текущей сессии, а затем добавляем изображение в эту базу данных. Мы назвали наше изображение tiger. Затем мы устанавливаем эту базу данных в конфиг и возвращаем true , сообщая о том, что изображение успешно добавлено.

Обнаружение опорных изображений в реальном мире

Теперь мы начнем обнаруживать наши опорные изображения в реальном мире. Для этого мы создадим слушателя, который будет вызываться каждый раз при обновлении видеокадра, и этот кадр будет проанализирован на предмет наличия там опорного изображения.

Добавьте эту строку в метод onCreate() в MainActivity :

Теперь добавьте метод onUpdateFrame в MainActivity :

В первой строке мы получаем сам кадр. Кадр можно представить, как обычный скриншот из видео. Если вы знакомы с тем, как работает видео, вы знаете, что это просто набор изображений, которые очень быстро сменяют друг друга, создавая впечатление чего-то движущегося. Мы просто берём одну из этих картинок.

После того, как мы получили кадр, мы анализируем его на предмет наличия на нём нашего опорного изображения. Мы берём список всех элементов, отслеженных ARCore, используя frame.getUpdatedTrackables . Затем мы перебираем её и проверяем, присутствует ли в кадре наше изображение tiger.

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

Примечание. Флаг shouldAddModel используется для того, чтобы мы добавляли 3D-модель только один раз.

Размещение 3D-модели над опорным изображением

Теперь, когда мы нашли наше опорное изображение в реальном мире, мы можем добавлять 3D-модель поверх него. Добавим методы placeObject и addNodeToScene :

  • placeObject : этот метод используется для построения отрендеренного объекта по заданному Uri . Как только рендеринг завершён, объект передаётся в метод addNodeToScene , где объект прикрепляется к узлу, и этот узел помещается на сцену.
  • addNodeToScene : этот метод создаёт узел из полученного якоря, создаёт другой узел, к которому присоединяется визуализируемый объект, затем добавляет этот узел в якорный узел и помещает его на сцену.
Читайте также:  Устройство usb не опознано любую флешку

Вот так теперь выглядит MainActivity :

Теперь запустите ваше приложение. Вы должны увидеть экран, как показано ниже. Подвигайте телефон немного над опорным объектом. И как только ARCore обнаружит опорное изображение в реальном мире, добавит на него вашу 3D-модель.

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

Если вы хотите заняться разработкой приложений дополненной реальности (Augmented Reality), то лучше начать с каких-то готовых компонентов, а не изобретать свой велосипед с нуля. В этой статье 12 платформ разработки дополненной реальности.

Набор инструментов для дизайна и разработки AR-приложений.

Kudan – это движок 2D/3D распознавания и Augmented Reality SDK.

Технологии компании реализованы в редакторе AR Creator, AR SDK и облачном распознавании изображений.

Платформа «дополненного» шоппинга.

Дополненная реальность для образовательных проектов.

Это также платформа дополненной реальности, в основном используемая брендами для продвижения своих товаров. Впрочем, использовать ее может любой разработчик.

Полноценная платформа дополненной реальности для смартфонов и других устройств.

Платформа может строить трехмерную сцену окружающего пространства и дополнять ее необходимыми элементами.

Layar Augmented Reality SDK теперь является частью Blippar и работает с крупнейшими брендами.

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

Как понятно из названия, это новая реальность для брендов и магазинов.

Первыми клиентами ViewAR были мебельные компании, но сейчас компания предлагает мощные средства 3D визуализации всем разработчикам.

Дополнение от нашего читателя из Facebook – ведущая платформа компьютерного зрения с более чем 300,000 разработчиков.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.