Battlefield — Дополненная Реальность. Часть Iii: Возможности Движка, Анимация И Poi

В двух последних статьях мы познакомились с основами процесса и начали разбирать кейс работы с AR. Читайте дальше, чтобы оставаться в курсе.

Часть I: Основы распознавания объектов Часть II: как распознать объект и показать 3D-модель Мы рады представить заключительную третью часть (уууу!), в которой мы подробнее обсудим возможности движка и узнаем:

  • Как анимировать 3D-объект для AR. Давайте отображать текст при нажатии на объект.
  • Как показать 3D-объект по заданным координатам как POI (достопримечательность).

  • Как показать 3D объект относительно вас.



Несколько слов о 3D моделях и анимации

Мы уже видели приложение для загрузки изображений для распознавания.

Ну, в Wikiitude есть редактор для загрузки моделей и анимации.

Инструмент называется Wikitude 3D encoder. С его помощью вы можете загружать контент из файлов *.

fbx или *.

dae, а затем экспортировать его в удобный для Wikitude формат *.

wt3.

Battlefield — дополненная реальность.
</p><p>
 Часть III: возможности движка, анимация и POI

3D-модель в 3D-кодере Wikitude Пример с 3D-моделью мы уже обсуждали, поговорим об анимации.

Анимацию можно экспортировать из специального программного обеспечения или запрограммировать самостоятельно.

В первом случае для этого использовалась программа Autodesk Maya.

Battlefield — дополненная реальность.
</p><p>
 Часть III: возможности движка, анимация и POI

Пример анимации прямо в редакторе.

Обратите внимание, что все доступные анимации отображаются справа.

Немного кода никогда не помешает: Это запустит анимацию.

Сама исходная анимация содержится в файле *.

wt3. Давайте разнообразим задачу: запрограммируем анимацию.

Сделаем так, чтобы модель появлялась с анимацией при распознавании картинки.

Останется лишь немного отредактировать функции инициализации трекера и мы получим вот такой пример: Мы рассмотрели два подхода к анимации: — Создано ранее и хранится в формате файла *.

wt3. — Программируется вручную

Как отобразить подпись

Самый распространенный случай — отображение текста.

Это довольно просто.

Так: Давайте посмотрим, что мы получили:

  • Создается текстовое поле.

  • Появится 3D-модель.

  • При загрузке назначается анимация вращения.

  • При нажатии на модель в окне появляется надпись.

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

При загрузке ему назначается анимация, вращающая модель вокруг своей оси.

Когда мы нажимаем на эту модель, в окне появляется надпись.

В окне также есть кнопка анимации.

Он появляется только тогда, когда объект распознается и по-своему оживляет машину.



Геолокация и POI

POI — точки интереса, объект, отмеченный на карте булавкой.

В нашем случае POI означает объект, находящийся слишком далеко от нас.

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

реальности и мы получаем возможность взаимодействовать с ней.

Возникает вопрос: почему модель нельзя использовать сразу? Как вы видели в игре Pokemon go, в определенный момент перед вами появляются покемоны.

Получается, что они не привязаны к своей геопозиции, они привязаны к вашей геопозиции, и вы для них центр Вселенной (точка 0.0.0), от которой они ведут отсчет. Это связано с несколькими моментами, наиболее очевидным из которых является датчик GPS, который определяет объекты по географическому признаку.

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

Второй нюанс – мы показываем POI в виде 2D изображения и его размеры не зависят от расстояния до точки.

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

Первым делом запускаем датчик геотрекинга: Далее нам нужно сделать несколько вещей: — Добавить достопримечательность.

Сделаем это в методе loadPoisFromJsonData. — Добавьте 3D-модель.

Мы уже сделали это выше.

Теперь мы просто обернем его в функцию createModelAtLocation() и добавим триггер + прикрепим его к geo. — Контролировать расстояние до заданной точки и принимать соответствующие меры.



Battlefield — дополненная реальность.
</p><p>
 Часть III: возможности движка, анимация и POI

Мы видим POI на расстоянии от нас

Battlefield — дополненная реальность.
</p><p>
 Часть III: возможности движка, анимация и POI

Подносим объект ближе и видим 3D модель с анимацией постоянного вращения.

Подведем итоги нашей работы по делу.

Вот что мы получили: - Распознавание образов.

— Наложение анимации на 3D-модель в месте распознавания.

— 3D-модель, которая находится далеко от нас по геолокации и отображается как POI. — Преобразование POI в 3D-модель при приближении.

— Обработка кликов, отображение надписей.

— 3D-модель не имеет географической привязки, а привязана к нашему географическому положению и расположена относительно нас.

При этом у нас не возникло абсолютно никаких проблем с загрузкой картинки для распознавания или загрузкой 3D-модели/анимации.

Весь процесс интуитивно понятен и прост. Надеюсь, вы сможете найти хорошее применение всему, что я написал.

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

Всем дополненной реальности, мира и жвачки! P.S. Изначально я даже не смел подумать, что тема растянется на целых три статьи.

Парадокс в том, что это еще не все.

Эта область чрезвычайно интересна и сложна.

Буквально вчера Google объявила о закрытии Google Tango, так как он больше не нужен, ведь ARCore уже замечательно справляется с задачей.

Ну, нет нужды говорить, что происходит на рынке нейронных сетей.



Battlefield — дополненная реальность.
</p><p>
 Часть III: возможности движка, анимация и POI

Автор: Виталий Зарубин, старший инженер-разработчик Рексофт Теги: #vr #AR #3d #ios разработка #ios разработка #Разработка для iOS #Разработка для AR и VR

Вместе с данным постом часто просматривают: