2016-08-24 3 views
4

Буду признателен, если кто-то может предоставить любые источники, которые могут помочь мне понять, как Vuforia samples для работы на Android? Я все установил и могу запускать их на своем телефоне, но сложно понять структуру проекта.Vuforia Android SDK объяснил образцы?

Было бы здорово, если бы было какое-либо учебное пособие о том, как создать простейшее приложение AR с Android Studio (не Unity).

Я также узнал, как создавать сцены AR с помощью Unity, экспортировать их в Android и запускать на устройстве, но до сих пор не понимаю, как работать с экспортированным проектом в Android Studio далее.

Моя цель - иметь одну цель изображения и несколько 3D-объектов. Я хочу иметь простой интерфейс, например ListView, чтобы выбрать, какой объект поместить на цель.

Кроме того, возможно ли построить ListView с Android и на объекте переключателя событий объекта объекта 3D с другим в единственной сцене, созданной в Unity? Я знаю, что могу динамически загружать 3D-модели с помощью сценария Unity C#, так что я могу запустить некоторые функции в этом скрипте через Android?

Я бы очень признателен за любые советы.

ответ

3

Резюме:

Сначала вы загрузите изображение на Vuforia облаке, так что возвращает XML и файл .dat. Те, которые хранятся в потоковых активах. Файл dat содержит всю информацию в двоичном формате о вашем маркере. Xml содержит информацию о имени и размере и связан с компонентом C#.

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

При запуске приложения аппаратное обеспечение камеры (а не камера Unity, помните об этом различии) предоставляет канал. Этот канал отображается на текстуре на сцене Unity, UC Unity обращается к этой текстуре. Они фиксируются в пространстве, только контент текстуры обновляется тем, что CH предоставляет каждый кадр. Это реальность вашего приложения.

В то же время Vuforia просматривает канал CH и выполняет распознавание образов https://en.wikipedia.org/wiki/Pattern_recognition, пытаясь найти совпадение с предоставленным файлом данных. Когда шаблон найден, он выполняет второй прогон, чтобы определить расстояние и поворот этого шаблона относительно CH. Это возможно, так как файл xml содержит размеры вашего реального маркера. Если xml говорит 50x50, а ваш маркер равен 25x25, он будет в два раза меньше ожидаемого, так как система понимает, что маркер находится дальше, чем на самом деле.

Когда маркер признается, Vuforia призывает государства слушателя на DefaultTrackableEventHandler (Проверьте скрипт на материнской модели), он реализует этот метод:

public void OnTrackableStateChanged(
           TrackableBehaviour.Status previousStatus, 
           TrackableBehaviour.Status newStatus) 
{ 
    if (newStatus == TrackableBehaviour.Status.DETECTED || 
     newStatus == TrackableBehaviour.Status.TRACKED || 
     newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) 
    { 
     OnTrackingFound(); 
    } 
    else 
    { 
     OnTrackingLost(); 
    } 
} 

В принципе, если Vuforia обнаруживает изменения, он вызывает этот метод. Затем вы можете распространять событие, в результате чего OnTrackingFound/Lost публичное событие может регистрироваться. Или создайте новый скрипт, который реализует ITrackableEventHandler. Это касается только прослушивания, если модель найдена или потеряна. В примере, когда он найден, он показывает модель и наоборот. Это наиболее вероятный и базовый сценарий, но все может быть вызвано.

Результат расчетов представляет собой преобразование (положение, поворот). Это преобразование передается второй камере Unity в сцене.Координаты определяются с (0,0,0) в качестве положения маркера. Скорее всего, он нацелен на 3D-модель, которую вы там разместили. Обратите внимание, что вы можете разместить модель в любом месте сцены, она будет просто смещена. Камера Vuforia НЕ МОЖЕТ быть управляемой, если вы попытаетесь передать значение Transform, они будут перезаписаны Vuforia. Вы просто не должны играть с этими ценностями. С другой стороны, вы можете установить его и выключить, повлиять на часть рендеринга и так далее.

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

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

+0

Это полезная информация, но вы объясняете теорию и как все это работает. Я хочу узнать, как использовать инструменты Vuforia на практике. Я знаю, как настроить AR-проект с Unity и как запустить его на устройстве, но сложно понять сгенерированный код после того, как Unity экспортирует его на Android, например. И даже если я использую Vuforia SDK для Android Studio и могу запустить свои образцы, есть еще слишком много кода, который необходимо подробно объяснить. –

Смежные вопросы