12 платформ разработки приложений дополненной реальности
Если вы хотите заняться разработкой приложений дополненной реальности, то лучше начать с каких-то готовых компонентов, а не изобретать свой велосипед с нуля.
Если вы хотите заняться разработкой приложений дополненной реальности (Augmented Reality), то лучше начать с каких-то готовых компонентов, а не изобретать свой велосипед с нуля. В этой статье 12 платформ разработки дополненной реальности.
Набор инструментов для дизайна и разработки AR-приложений.
Kudan — это движок 2D/3D распознавания и Augmented Reality SDK.
Технологии компании реализованы в редакторе AR Creator, AR SDK и облачном распознавании изображений.
Платформа «дополненного» шоппинга.
Дополненная реальность для образовательных проектов.
Это также платформа дополненной реальности, в основном используемая брендами для продвижения своих товаров. Впрочем, использовать ее может любой разработчик.
Полноценная платформа дополненной реальности для смартфонов и других устройств.
Платформа может строить трехмерную сцену окружающего пространства и дополнять ее необходимыми элементами.
Layar Augmented Reality SDK теперь является частью Blippar и работает с крупнейшими брендами.
Приложение дополненной реальности для дронов, но вы можете использовать его возможности и в ваших разработках, накладывая географические метки на изображение.
Как понятно из названия, это новая реальность для брендов и магазинов.
Первыми клиентами ViewAR были мебельные компании, но сейчас компания предлагает мощные средства 3D визуализации всем разработчикам.
Дополнение от нашего читателя из Facebook — ведущая платформа компьютерного зрения с более чем 300,000 разработчиков.
Источник
ARCore: дополненная реальность на Android
Более двух миллиардов устройств работает на Android — крупнейшей мобильной платформе в мире. Последние девять лет мы работали над созданием широкого набора инструментов, фреймворков и API, благодаря которым продукты разработчиков становятся доступными каждому. Сегодня мы запускаем превью версию нового SDK (набора средств для разработки программного обеспечения) — ARCore. Это позволит применять технологию дополненной реальности на уже существующих и новых устройствах Android. Разработчики могут начать экспериментировать с ARCore уже сейчас.
В течение последних трех лет мы работаем над технологиями, которые способствуют развитию дополненной реальности на мобильных устройствах, с помощью платформы Tango. Она стала основой для создания ARCore. Благодаря тому, что этот SDK не требует дополнительного оборудования, он может применяться на различных устройствах Android. Мы планируем запустить ARCore на миллионах устройств. С сегодняшнего дня он будет доступен на Pixel и Samsung S8, работающих на Android 7.0 и более поздних версиях. К завершению тестового периода мы рассчитываем, что ARCore будет работать на 100 млн устройств. Для того чтобы он работал качественно и приносил хорошие результаты, мы сотрудничаем с Samsung, Huawei, LG, ASUS и другими компаниями.
ARCore работает на Java/OpenGL, Unity и Unreal и фокусируется на следующих направлениях:
- Отслеживание движения. Используя камеру телефона для отслеживания опорных точек в комнате (п.п. эти точки определяют место, где будет расположен виртуальный объект) и данных гироскопа, ARCore определяет положение и ориентацию устройства во время движения. При этом виртуальные объекты остаются именно там, где вы их расположили.
- Распознавание окружающей среды. Обычно объекты дополненной реальности размещаются на полу или столе. ARCore может распознавать горизонтальные поверхности, используя те же опорные точки, что и при отслеживании движения.
- Оценка освещения. ARCore определяет уровень освещенности окружающей среды и дает возможность разработчикам освещать виртуальные объекты в соответствии с обстановкой вокруг. Благодаря этому они выглядят еще более реалистично.
Наряду с ARCore мы развиваем другие приложения и сервисы, которые помогут разработчикам создавать отличные решения в области дополненной реальности. Мы запустили проекты Blocks и Tilt Brush, чтобы каждый с легкостью мог создавать хороший 3D-контент для своих AR-приложений. На конференции Google I/O мы объявили, что работаем над сервисом визуального позиционирования (Visual Positioning Service). Он позволит вывести применение технологии дополненной реальности в мире за пределы компьютера. Мы также считаем, что ключевая роль в развитии дополненной реальности будет принадлежать интернету. Поэтому запускаем прототипы браузеров для веб-разработчиков, чтобы они тоже могли начать экспериментировать с этой технологией. Специализированные браузеры позволяют создавать сайты с поддержкой дополненной реальности для Android/ARCore и iOS/ARKit.
ARCore — наш следующий шаг к тому, чтобы сделать дополненную реальность доступной каждому. Это не последнее нововведение в текущем году. Поделитесь с нами вашим мнением на GitHub. Зайдите в новый раздел AR Experiments, где вы найдете много интересных примеров применения дополненной реальности. Расскажите о своих работах в социальных сетях, добавив хэштег #ARCore. Мы обязательно поделимся теми проектами, которые понравятся нам больше всего.
Источник
Создание вашего первого ARCore-приложения
В предыдущей статье я уже объяснил, что такое ARCore и как он помогает разработчикам создавать удивительные приложения дополненной реальности без необходимости понимания математики и OpenGL.
Если вы ещё не читали её, я настоятельно рекомендую это сделать, прежде чем перейти к этой статье и начать разработку ARCore-приложений.
Начало работы
Чтобы начать разработку ARCore-приложений, сначала необходимо добавить поддержку ARCore в свой проект. Это очень просто, так как мы будем использовать Android Studio и Sceneform SDK. Есть две основные операции, которые благодаря Sceneform выполняются автоматически:
- Проверка наличия ARCore.
- Запрос на разрешение использования камеры.
Вам не нужно беспокоиться об этих двух шагах при создании ARCore-приложения с помощью Sceneform SDK. Вам просто нужно добавить Sceneform SDK в ваш проект.
Создайте новый проект Android Studio с пустой Activity.
Добавьте следующую зависимость в файл build.gradle на уровне проекта:
А эту зависимость добавьте в файл build.gradle на уровня приложения:
Теперь синхронизируйте проект с Gradle-файлами и дождитесь окончания сборки. Таким образом, в проект будут добавлены Sceneform SDK и плагин Sceneform для Android Studio. Это позволит вам просматривать файлы с разрешением .sfb , которые представляют собой 3D-модели, которые будут рендериться в вашей камере, а также поможет вам импортировать, просматривать и создавать 3D-ресурсы.
Создание вашего первого ARCore-приложения
Теперь, когда настройка Android Studio завершена и SDK Sceneform установлен, мы можем начать создание нашего первого ARCore-приложения.
Во-первых, нужно добавить Sceneform-фрагмент в наш layout. Это так называемая сцена, где будут размещаться все наши 3D-модели. Фрагмент самостоятельно позаботится об инициализации камеры и обработке разрешений.
Перейдите к своему основному layout файлу. В моём случае это файл activity_main.xml . И добавьте туда Sceneform-фрагмент:
Я установил значения ширины и высоты match_parent , чтобы сцена занимала весь экран. Вы можете выбрать размеры в соответствии с вашими требованиями.
Проверка совместимости
Это всё, что нужно сделать в layout файле. Теперь переходим к Activity, в моём случае это MainActivity . Добавьте в Activity метод:
Этот метод проверяет, поддерживает ли ваше устройство Sceneform SDK или нет. SDK требует Android API уровня 27 или выше и OpenGL ES версии 3.0 или выше. Если устройство не поддерживает эти два параметра, сцена не будет загружена, и ваше приложение отобразит пустой экран.
Однако вы по-прежнему можете реализовывать все другие функции своего приложения, для которых не требуется Sceneform SDK.
После проверки совместимости мы можем создать нашу 3D-модель и прикрепить её к сцене.
Добавление assets
Теперь нужно добавить в проект 3D-модели, которые будут отображаться на вашем экране. Вы можете создавать эти модели самостоятельно, если вы знакомы с процессом их создания. Или же вы можете зайти на Poly.
Там вы найдете огромный репозиторий 3D-ресурсов на выбор. Кроме того, они бесплатны для скачивания.
В Android Studio откройте папку своего приложения в панели слева. Вам нужна папка sampledata. Эта папка будет содержать все ваши 3D-модели. Внутри этой папки создайте папку с названием своей модели.
В архиве, который вы скачаете с Poly, вы, скорее всего, найдёте 3 файла:
Наиболее важным из этих трёх файлов является файл .obj . Это и есть ваша модель. Поместите все 3 файла в sampledata -> «папка вашей модели».
Теперь щёлкните правой кнопкой мыши на файле .obj . Первым вариантом будет Import Sceneform Asset. Нажмите на него, не меняйте настройки по умолчанию, просто нажмите Finish в следующем окне. После этого синхронизируйте проект с Gradle-файлами.
Импорт 3D-ресурса, который будет использован в вашем проекте, завершён. Далее давайте используем 3D-модель в нашем коде и включим его в сцену.
Создание модели
Добавьте следующий код в вашу Activity, а я объясню его построчно:
Сначала мы находим arFragment , который мы ранее добавили в layout. Этот фрагмент отвечает за хранение и работу сцены. Вы можете представить его в виде контейнера для нашей сцены.
Далее мы используем класс ModelRenderable для построения нашей модели. С помощью метода setSource мы загружаем нашу модель из .sfb -файла, который был сгенерирован при импорте ресурсов. Метод thenAccept получает модель после её создания, и мы устанавливаем загруженную модель в нашу переменную lampPostRenderable .
Для обработки ошибок у нас есть метод exceptionally , который вызывается в случае возникновения исключения.
Всё это происходит асинхронно, поэтому вам не нужно беспокоиться о многопоточности.
Теперь, когда модель загружена и сохранена в переменной lampPostRenderable , мы добавим её в нашу сцену.
Добавление модели в сцену
В arFragment находится наша сцена, и он будет получать события пользовательских касаний. Поэтому нам нужно установить слушатель onTap для нашего фрагмента, чтобы обрабатывать касания и размещать объекты, там, где это потребуется. Добавьте следующий код в метод onCreate :
Мы устанавливаем слушатель onTapArPlaneListener для нашего AR-фрагмента. Далее используется синтаксис лямбда-выражений. Если вы с ним не знакомы, то ознакомьтесь с этим небольшим гайдом по этой теме.
Сначала мы создаем якорь из HitResult с помощью hitresult.createAnchor() и сохраняем его в объекте Anchor .
Затем создаём узел из этого якоря. Он будет называться AnchorNode и будет прикреплён к сцене при помощи метода setParent .
Далее мы создаём TransformableNode , который и будет являться нашей моделью, и привязываем его к нашему узлу. TransformableNode по-прежнему не имеет никакой информации об объекте, который он должен отобразить. Мы передадим ему этот объект с помощью метода setRenderable , который в качестве параметра принимает объект типа ModelRenderable (помните, мы получили такой объект и назвали его lampPostRenderable ?). И, наконец, вызоваем метод lamp.select() ;
Ох! Слишком много терминологии. Не волнуйтесь, сейчас всё объясню:
Сцена: это место, где будут отображаться все ваши 3D-объекты. Эта сцена размещена в AR-фрагменте, который мы добавили в layout.
HitResult: это воображаемая линия (или луч), идущая из бесконечности, которая даёт точку пересечения себя с объектом реального мира.
Якорь: это фиксированное местоположение и ориентация в реальном мире. Его можно понимать как координаты (x, y, z) в трехмерном пространстве. Поза — это положение и ориентация объекта на сцене. Она используется для преобразования локального координатного пространства объекта в реальное координатное пространство.
Якорный узел: это узел, который автоматически позиционирует себя в реальном мире. Это первый узел, который устанавливается при обнаружении плоскости.
TransformableNode: это узел, с которым можно взаимодействовать. Его можно перемещать, масштабировать, поворачивать и так далее. В этом примере мы можем масштабировать наш объект и вращать его. Отсюда и название Transformable.
Здесь нет никакого ракетостроения. Это действительно относительно просто. Всю сцену можно просмотреть в виде графа, в котором родительским объектом является сцена, а дочерними — якорные узлы, которые затем разветвляются в различные другие узлы и объекты, которые будут отображаться на экране.
По итогу ваша Activity должна выглядеть следующим образом:
Поздравляю! Вы только что завершили создание своего первого ARCore-приложения. Начните добавлять в него объекты и вы увидите, как они начнут оживать в реальном мире.
Это был ваш первый взгляд на то, как создать простое ARCore-приложение с нуля в Android Studio. В следующем уроке я углублюсь в ARCore и добавлю больше функциональности в приложение.
Источник