Производительность AR Core, кривая обучения и сравнение с другими фреймворками

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

Я хочу изучить ARCore, но он работает только на ограниченном количестве новых телефонов, я пока не могу протестировать его из-за их цены. У меня несколько вопросов по ARCore

  1. Какова производительность ARCore по сравнению с другими популярными фреймворками? Использует ли он обширные ресурсы для простых операций, таких как обнаружение движения, отслеживание и обнаружение плоскости?
  2. Требуются ли знания и использование OpenGL, как указано здесь? Это просто рисование сеток, вершин и простых объектов или вам нужно больше знать о простом 3D-моделировании? Насколько я знаю, ARKit управляет вещами с помощью собственной структуры, и это хорошо.
  3. Это стабильно? Часто ли он дает сбой или большую часть времени вызывает ANR? Мне не удалось найти ссылку на приложение, но пользователи жаловались, насколько это плохо.
  4. Разве нет другого способа протестировать и отладить код, кроме этого устройства? Можем ли мы запустить его на эмуляторе с помощью какого-нибудь хака или чего-то еще?
  5. Можете ли вы получить доступ к ручным функциям камеры, таким как ISO, замер и т. Д., Это просто, как camera.getParameters() или требуется некоторая обширная работа и / или знания NDK? Вы можете выбрать, какой api камеры использовать или это просто Camera2 api? Мне также интересно, есть ли какая-либо инфраструктура AR, которая позволяет вам изменять параметры камеры, такие как Camera1 или Camera2 api, с помощью простых методов get или set?

Я искал ARToolKit, но у меня сложилось впечатление, что это сложно изучить и сложно реализовать, Vuforia и Wikitude не являются бесплатными, поэтому на данный момент о них не может быть и речи. Я искал форумы каждого фреймворка, этой устаревшей ветки и некоторых других.

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


person Thracian    schedule 20.10.2017    source источник


Ответы (1)


ARCore, как и другие фреймворки AR, требует много ресурсов: распознавание и отслеживание сцены - непростые вещи, поэтому давайте рассмотрим весь движок AR как нечто важное в использовании ресурсов.

Знание OpenGL - это плюс, поскольку вам нужно знать, как работает цикл 3D-рендеринга, чтобы иметь возможность работать с AR. Не нужно быть мастером OpenGL, но необходимы базовые знания, чтобы понимать примеры и иметь возможность создавать свой собственный проект 3D / AR. Если вы не работаете с ARKit & Metal или, может быть, с AR с Unity.

Все библиотеки AR, которые я тестировал, стабильны, API протестированы и никогда не дают сбоев. Сложнее иметь стабильное отслеживание AR, некоторые лучше, чем другие, и у всех есть ограничения (давайте попробуем ARCore и ARKit на однородном белом каменном полу ...), но безмаркерный движок AR довольно впечатляет при отслеживании, но требует самого последнего устройств и все еще находятся в стадии бета-тестирования.

Что касается ARCore, то только некоторые устройства совместимы, насколько я знаю, без них протестировать невозможно. Эмулятору понадобится камера для тестирования, не знаю, существует ли она.

В большинстве фреймворков AR камера недоступна: я имею в виду, что фреймворк настраивает и запускает камеру, вы не можете получить даже экземпляр Camera2 большую часть времени, иногда даже трудно получить текущие настройки камеры (ARCore). Движок AR - это более или менее черный ящик с отслеживанием на выходе.

Я практиковал все эти движки, я использовал некоторые с успехом, а некоторые до сих пор не работают (требуется время, чтобы углубиться в реализацию и заставить ее работать так, как я хочу, а не как в образце). Я считаю, что ARKit и ARCore сделают Vuforia и Wikitude устаревшими, так как отслеживание лучше, без маркеров (более важный момент) и ... бесплатно!

Удачи!

person Vince    schedule 24.10.2017
comment
Спасибо за Ваш ответ. Это легко понять и очень подробно. Если что-то еще придет вам в голову, не стесняйтесь обновлять в любое время. Мне очень нравится дополненная реальность, и я в восторге от новых технологий в этой области. Я разрабатываю простые приложения на основе определения местоположения, используя камеру, местоположение и многое другое. Библиотеки AR становится проще в реализации, а хорошие функции делают их привлекательными. Я пока не приму ваш ответ, чтобы эта тема привлекла внимание, но я приму его через определенное время, если будет опубликован какой-либо лучший ответ. Я купил MacBook, чтобы изучать Swift из-за ARKit. - person Thracian; 24.10.2017
comment
Я ветеран Android и хотел бы разработать приложение 3D AR для моей магистерской диссертации, а также выпустить его как коммерческий продукт. Я выберу AR Core, но эти устройства с огромными налогами недоступны. Некоторые из них в 5 раз меньше минимальной заработной платы. Я также проверю OpenGL, алгоритм SLAM, чтобы полностью изучить 3D AR. Есть ли что-то существенное, что нужно, если я собираюсь разработать академический продукт? - person Thracian; 24.10.2017
comment
Хотелось бы, чтобы можно было установить параметры камеры. Можете ли вы записать видео с помощью любого из этих фреймворков? - person Thracian; 24.10.2017
comment
В зависимости от того, что вы пытаетесь сделать, ARCore все еще находится в стадии бета-тестирования, будем надеяться, что некоторые недостающие функции будут скоро добавлены ... Начиная с OpenGL и Slam, почему бы и нет, но давайте начнем с самого начала и узнаем, как создать 3D-движок , управлять объектами, визуализировать их, перемещать камеру и так далее. Когда у вас все хорошо получится, вы можете подумать об игре с AR. Я ветеран 3D-движков, плохо разбираюсь в openGl, и я работал над каждым из упомянутых здесь фреймворков AR, и все еще работаю над ними, поскольку каждый из них отличается и нуждается в адаптации для интеграции в тот же 3D-движок, что и я. - person Vince; 24.10.2017
comment
С помощью ARKit вы можете получить последнее изображение камеры в виде буфера YUV, так что, допустим, вы можете зарегистрировать видео ... если вы делаете это самостоятельно. Поскольку я сейчас использую ARCore, я не помню функций ARKit, но ARKit все еще находится в разработке, поэтому API может измениться, но, похоже, у них есть что-то довольно хорошее и довольно простое для работы. - person Vince; 24.10.2017