Как сделать дополненную реальность
Перейти к содержимому

Как сделать дополненную реальность

  • автор:

Лучшие инструменты разработки дополненной реальности в 2021

В начале 2 части мы рассказывали на что стоит обратить внимание при выборе SDK для разработки своего продукта с дополненной реальностью, и теперь, когда вы знаете, какие функции вам следует рассмотреть, пришло время сделать обзор самых популярных, на наш взгляд, лучших framework дополненной реальности на рынке. Хотя их довольно много, мы отобрали семь AR SDK.

Vuforia — лучший доступный SDK для пользователей Unity, легко интегрируется и поддерживает кроссплатформенное развертывание с такими платформами, как Unity, предлагает широкий набор функций.

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

  • SDK дополненной реальности Vuforia может распознавать 2D и 3D объекты (например, цилиндры, коробки и потребительские товары).
  • Распознавание текста. Vuforia имеет стандартный английский, словарный запас, содержащий более 100 000 слов, или вы можете использовать свой собственный словарь.
  • Проигрывание видео. Vuforia может воспроизводить видео при обнаружении целевых поверхностей.
  • VuMarks — это собственные штрих-коды Vuforia, которые не только кодируют данные, но и действуют как маркеры.
  • Локальное (на устройстве) или облачное распознавание.
  • Виртуальные кнопки позволяют использовать различные поверхности в качестве сенсорного экрана.

Этот SDK доступен бесплатно, но с водяными знаками Vuforia и ограниченной функциональностью. Дополнительные функции, которые раскрывают весь потенциал этого AR SDK доступны по нескольким коммерческим лицензиям, например, стоимость базового пакета Basic — составляет 42$ в месяц, а ежегодная оплата — 504$, пакет Basic+Cloud — 99$ в месяц.

Есть специальные предложения для больших агентств и корпораций — пакет Agency, который включает в себя 5 краткосрочные лицензии, и пакет PRO.

Подробнее о возможностях пакетов можно узнать на официальном сайте по данной ссылке https://www.ptc.com/en/products/vuforia/vuforia-engine/pricing

EasyAR предлагает свой SDK нового поколения, который предлагает ряд передовых функций, таких как SLAM, 2D-3D-отслеживание и запись экрана.

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

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

EasyAR Sense предоставляет четыре режима подписки: Personal Edition (Free), Профессиональная версия (ежемесячная оплата в размере 39$), Классическая версия (единовременная плата за пожизненное использование за 1399$) и специальное предложение Enterprise Edition (Customized).

Подробнее ознакомиться с тарифами можно по ссылке https://www.easyar.com/price.html

Maxst предлагает два типа программного обеспечения для создания приложений дополненной реальности: Maxst AR SDK 2D и Maxst AR SDK 3D.

Как следует из названия, один инструмент может распознавать только 2D-изображения , а другой гораздо более мощный и может отслеживать 3D-объекты . Также в этом году MAXST официально запустил технологию платформы пространственной дополненной реальности vps.maxst.com с VPS-технологией, которая будет определять местоположение и предоставлять услуги AR как для помещений, так и на открытом воздухе.

Этот SDK — это инструмент разработки на основе Unity, полностью работающий на Android и iOS.

  • Maxst AR SDK 3D может похвастаться такими функциями, как SLAM, эффект физического движка (используемый, например, для создания эффекта падающего и накапливающегося снега на крыше) и эффект окклюзии (когда виртуальный контент полностью или частично экранируется реальным объект).
  • Maxst AR SDK 2D поставляется с функцией распознавания нескольких изображений (до 200 изображений на канал), увеличением видео и многим другим.
  • Мгновенное отслеживание объектов, изображений и отслеживание нескольких маркеров, сканер QR/штрих-кода.

Инструменты для разработки дополненной реальности Maxst доступны бесплатно с водяными знаками, а также по коммерческой лицензии. Так, пакет Pro-One time fee обойдется вам в 699$ разово за одно приложение, или пакет Pro-Subscription с ежемесячной подпиской 49.9$ в месяц со всеми возможностями. Также Maxst предлагает специальное предложение — пакет Enterprise для предприятий.

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

ARKit 4 представляет способ доступа к подробной информации о глубине, собранной сканером LiDAR на iPhone 12 Pro, iPhone 12 Pro Max, а также iPad Pro. Привязка местоположения использует данные с более высоким разрешением в Apple Maps, чтобы разместить возможности AR в определенной точке мира в приложениях для iPhone и iPad.

Самый большой недостаток ARKit — он доступен только на свежих устройствах iOS и недоступен на устройствах Android, которые более популярны, а распознавание объектов не самое лучшее. Давайте рассмотрим наиболее важные функции Apple AR SDK:

  • Обнаружение плоскости позволяет iPhone и iPad сканировать окружающую среду и обнаруживать горизонтальные плоскости (полы, столы и т. д.).
  • Оценка освещения автоматически анализирует количество света в реальном мире и регулирует количество света, падающего на виртуальные объекты.
  • Вычисление глубины резкости камеры и наложение соответствующего эффекта размытия.
  • Симуляция «шумовых» эффектов съемки камеры для полноценного погружения виртуального объекта в реальность.
  • ARKit можно использовать в сочетании с движками Unity и Unreal.
  • Отслеживание лиц поддерживается на всех устройствах с Apple Neural Engine и фронтальной камерой, так что еще больше пользователей могут испытать радость от AR на фотографиях и видео.

Однако, ARKit будет работать только с процессорами Apple A9+, поэтому функции дополненной реальности будут доступны только для устройств, произведенных после 2015 года.

ARKit — это собственный AR SDK от Apple, поэтому он идеально адаптирован для iOS и работает по бесплатной лицензии, подробнее https://developer.apple.com/augmented-reality/arkit/

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

Примечательно, что AR-приложения на ARCore поддерживаются не только на Android, но и на устройствах iOS, позволяя разрабатывать кроссплатформенные AR-приложения. У него мало недостатков, большинство из которых относится к поддержке SDK на нескольких устройствах.

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

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

Лицензия ARCore — бесплатная, подробнее по ссылке https://developers.google.com/ar/develop

AR.js — это AR SDK с открытым исходным кодом на основе JavaScript для создания приложения в браузере (WebAR), так что нет необходимости устанавливать приложение. Подробнее о WebAR мы писали здесь —

Его можно использовать для создания сцен AR на основе маркеров. Инструмент поставляется с расширением A-Frame и three.js, которое работает с любым смартфоном, независимо от версии его ОС, включая Android, iOS 11 и Windows Mobile.

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

  • Дополненная реальность на любом смартфоне в браузере.
  • Настраиваемые, сенсорными жестами AR-объекты.
  • Легкодоступная и быстрая разработка Marker Tracking (маркер с определенным паттерном).
  • AR на основе местоположения.

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

8th Wall — лидер в области дополненной реальности на базе Интернета (WebAR). Платформа 8th Wall также используется для разработки дополненной реальности, которая работает на всех устройствах — приложение не требуется и обеспечивает максимально широкий охват, поддерживая более 3 миллиардов смартфонов на iOS и Android.

Targets работает как с плоскими, так и с изогнутыми поверхностями, такими как бутылки, чашки и банки, обеспечивает потоковую передачу объемного видео в WebAR (или то, что часто называют голограммами).

В версии 16 система SLAM теперь на 50% точнее, чем раньше, с частотой кадров, которая на 70% выше, в зависимости от используемого устройства, обновление вышло этой весной. Это означает уменьшение дрейфа, дрожания и задержки для более плавного, и стабильного воспроизведения, согласно, информации на сайте 8th Wall.

  • Поддержка маркеров (Image Target), World Effects, Face Effects, SLAM.
  • Поддержка React, Vue.js, A-Frame, Babylon.js, Three.js.
  • Функция записи видео в браузере.
  • Разные стадии развертывания, включая промежуточную среду, защищенную паролем.
  • Оценка освещения и относительный масштаб.
  • Можно использовать в сочетании с движками Unity и Unreal.

Функции, которые раскрывают весь потенциал этого AR SDK, доступны без коммерческой лицензии за 99$ в месяц, но обязательно с водяными знаками 8th Wall, неважно коммерческий проект или нет.

Ежемесячная оплата лицензии также различается в зависимости от просмотров. Коммерческая лицензия Basic обойдется — от 1250$ в месяц, пакет Standart — от 3000$, Premium — от 5000$. И конечно же есть специальное предложение в пакете Pro. Также можно воспользоваться бесплатной пробной 14-дневной версией.

Основываясь на приведенных выше критериях, мы составили сравнительную таблицу 7 ведущих платформ дополненной реальности.

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

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

Теперь, когда вы знаете, какие SDK дополненной реальности доступны и какие основные функции они предлагают, вы можете выбрать наиболее подходящий инструмент для создания отличных приложений AR. Решите, какие функции вам нужны в мобильном приложении или веб-браузере (WebAR), проверьте список SDK, примите во внимание цены и вы готовы разработать первоклассное приложение.

➕Читайте также начало 2 части «Практическое руководство по разработке AR — продукта. Выбор SDK и стоимость» — о том, на что нужно обращать внимание при выборе SDK.

➕Читайте 1 часть «Цена на дополненную реальность под ключ: как формируется стоимость» — где мы рассказали о стоимости разработки приложения дополненной реальности и формирования цены на российском рынке.

Как создать приложение дополненной реальности с помощью ARCore

Как создать приложение дополненной реальности с помощью ARCore

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

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

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

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

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

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

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

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

  • 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-модель поверх обнаруженного изображения.

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

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

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

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

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

Введение

Андрей Шагин

Возможно, вас в последнее время тоже, как и меня, заинтересовала постоянно растущая сфера дополненной реальности. В том или ином виде или форме эта технология встречается практически везде: играете ли вы в мегапопулярную игру Pokemon GO или используете фильтры Snapchat, например.

И вы уже, наверняка, задались вопросом, как же сделать что-то подобное. Тем более что такие лидеры ИТ-индустрии, как Марк Цукербург, утверждают, что за дополненной реальностью будущее.

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

В этом руководстве я покажу, как создавать кросс-платформенные приложения с дополненной реальностью, используя React Native и Viro.

Установка Viro

Во многих руководствах написано, что для создания кросс-платформенных приложений с дополненной реальностью следует задействовать Unity или Unreal Engine. Но как веб-программист, занимающийся созданием мобильных приложений, я предпочел бы использовать то, в чем немножко разбираюсь. Лично я считаю, что чем меньше технологий задействуется, тем лучше. Поэтому искал способ использовать вместе дополненную реальность и React Native. Найденная мной платформа Viro именно для этого и предназначена.

Вот ссылка на краткое руководство для установки и быстрого начала работы с Viro.

После установки Viro на компьютер вам также пригодится приложение Viro Media для тестирования будущих приложений. Установите его на свое мобильное устройство.

Использование Viro

А дальше — самое время сделать примерный проект. Сначала запустите в терминале react-viro init ViroSample — verbose . Примерный проект будет создан в любом каталоге, который выберете. Откройте этот проект и наберите в терминале классические npm start . Появится ссылка и что-то вроде этого:

Теперь найдите приложение Viro в телефоне, нажмите на меню-гамбургер и перейдите в раздел enter testbed . Введите здесь ссылку NGrok, которую получили в терминале.

А теперь присмотритесь: вот уже и появился «Hello World!».

Заключение

Поздравляю! Вы только что создали свое первое мобильное приложение с дополненной реальностью. И теперь надо будет пробежаться по документации Viro, продолжая изучать дополненную реальность и узнавая о том, что бы еще такого сумасшедшего сделать с ее помощью. Удачи!

1. Дополненная реальность (AR)

Гайд по виртуальным мирам: AR и VR

Дополненная реальность (англ. augmented reality) – это технология, которая расширяет физический мир, накладывая на него слои цифровой информации: звуки, видео, графику.

1.1. Виды AR

Обычно рассматривают четыре типа дополненной реальности:

  • на основе маркера (marker-based),
  • безмаркерная (markerless),
  • на основе проекции (projection-based),
  • на основе суперпозиции (superimposition-based).

В marker-based AR требуется конкретный шаблон, маркер, например, QR-код, поверх которого накладывается виртуальный объект.

 Рис. 1. Маркерная ARРис. 1. Маркерная AR

Как видно из названия, для разработки markerless приложения маркер не нужен. На окружающую среду накладывается сетка и обнаруживаются ключевые точки, к которым привязывается виртуальная модель.

 Рис. 2. Безмаркерная ARРис. 2. Безмаркерная AR

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

Superimposition-based AR частично или полностью заменяет исходное представление объекта дополненным представлением того же самого объекта.

1.2. Софт для AR

Чтобы создать приложение дополненной реальности, понадобится набор средств разработки (software development kit, SDK). Ниже мы рассмотрели наиболее популярные SDK.

ARKit

ARKit – это SDK для создания приложений дополненной реальности и игр для iPhone и iPad. Для него характерны следующие черты:

  • Надежное отслеживание лиц – легко применять эффекты для лица или создавать мимические выражения.
  • Отслеживание уровня освещенности среды для корректной постановки светового окружения виртуальных объектов.
  • Обнаружение 2D-объектов: горизонтальных, вертикальных и наклонных плоскостей. То есть, к примеру, столов и стен.
  • Интеграция с Unity и Unreal Engine.

Reality Composer – редактор для создания 3D-моделей.

RealityKit – рендеринг и анимация.

Поддерживаемые платформы: iOS 11.0 и выше.

Цена: бесплатно.

ARCore

На ARKit компания Google ответила своей разработкой – ARCore.

  • ARCore использует камеру телефона для определения функциональных точек и изменения их положения во времени. Визуальная информация комбинируется с данными, полученными от датчиков, для вычисления положения и ориентация телефона в пространстве.
  • Обнаружение плоских и наклонных поверхностей.
  • Автоматическая регулировка освещенности. Например, если вы находитесь в комнате с тусклым освещением, ARCore автоматически скорректирует изображение.
  • Привязка виртуальных объектов (котенок) к физическим объектам (стол). Если выйти из комнаты и вернуться, котенок останется на прежнем месте.
  • Интеграция с Unity и Unreal Engine.

Поддерживаемые платформы: Android 7.0 и выше, iOS 11 и выше.

Цена: бесплатно.

Vuforia

  • Распознавание текста и различных типов визуальных объектов (коробка, цилиндр, плоскость).
  • Поддерживает создание маркерных и безмаркерных AR.
  • 3D-сканирование окружения.
  • Обнаружение нескольких объектов.
  • Режим Simulation Play, позволяющий проходить сквозь или вокруг 3D-модели и наблюдать за этим на компьютере.
  • API: C# для Unity, С++ для iOS, Java для Android.

Поддерживаемые платформы: Android 4.4.4 и выше, iOS 11 и выше.

Цена: от 99$/мес.

EasyAR

  • Сканирование среды и генерация 3D-сетки в реальном времени.
  • Совместимость с Android смартфонами, которые ARCore не поддерживает.
  • Отслеживание 3D объектов.
  • Распознавание и отслеживание плоских изображений в режиме реального времени.
  • Запись экрана в форматах H.264/AAC/MP4.
  • Интеграция с Unity.

Поддерживаемые платформы: Android, iOS.

Цена: бесплатно.

Lens Studio

  • Отслеживания лица, шеи, локтей, рук.
  • Изменение цвета волос и наложение масок на лица.
  • Отложенная публикация «линз».
  • Создание 3D-моделей без написания кода в Material Editor.

Поддерживаемые платформы: Snapchat.

Цена: бесплатно

Spark AR

  • Создание масок для Instagram.
  • Цветовые фильтры.
  • Трекинг лица, частей тела.

Поддерживаемые платформы: Instagram.

Цена: бесплатно

2. Виртуальная реальность (VR)

Виртуальная реальность (англ. virtual reality) – компьютерная симуляция альтернативной реальности.

2.1. Виды VR

Автономная VR работает сама по себе, без необходимости использования дополнительного внешнего оборудования (компьютер, консоль), например, Oculus Quest. Всё, что нужно, – это гарнитура и контроллеры VR.

VR на базе ПК – это любые гарнитуры, требующие постоянного подключения к ПК, такие как: PC Oculus Rift S, Valve Index, HTC Vive, Pimax и Windows Mixed Reality.

Когда говорят о VR для консоли, обычно имеют ввиду PlayStation VR для PlayStation 4.

Рис. 4. PlayStation VRРис. 4. PlayStation VR

2.2. Типы отслеживания движения

Наиболее распространенный способ отслеживания движений – система Inside-Out с камерами, встроенными в гарнитуру. Такой подход реализован в Oculus Rift S, HTC Vive Cosmos и всех гарнитурах Windows Mixed Reality.

Существует также схема отслеживания Outside-In с размещением базовых станций в углах комнаты, помогающих гарнитуре и контроллерам отслеживать их точное местоположение (HTC Vive Cosmos Elite, Valve Index).

Рис. 5. Отслеживание Outside-In и Inside-OutРис. 5. Отслеживание Outside-In и Inside-Out

В продвинутых гарнитурах используют одновременную локализацию и построение карты (SLAM), отслеживающую особенности физической среды, окружающей человека.

2.3. Базовые термины и понятия

Поле зрения (FOV). В контексте гарнитур VR поле зрения относится ко всему, что вы можете видеть в виртуальном мире при использовании гарнитуры.

Рис. 6. Поле зрения (FOV)Рис. 6. Поле зрения (FOV)

Степени свободы (DoF). Чем больше степеней свободы, тем больше физических движений будет отслеживаться гарнитурой. 3DoF (3 степени свободы) отслеживает только перемещение головы: крен, тангаж, рыскание, но не положение в пространстве по координатам (x, y, z). В современных гарнитурах используется 6DoF, отслеживающий как движения головы, так и ее координаты.

Рис. 7. Степени свободы 3DoF и 6DoFРис. 7. Степени свободы 3DoF и 6DoF

Frames Per Second (FPS) – количество кадров в секунду.

Screen Resolution – количество пикселей, отображаемых на экране.

Spatial Audio (3D аудио) – пространственное звучание (используется для создания звука, который исходит из определенной точки виртуального мира).

Рис. 8. Spatial Audio (3D аудио)Рис. 8. Spatial Audio (3D аудио)

2.4. VR через веб-браузер

WebGL – кроссплатформенный API для 3D-графики в браузере. Исполняется как элемент HTML5 и поэтому является полноценной частью объектной модели документа (DOM API) браузера. Может использоваться с языками программирования, поддерживающими DOM API: JavaScript, Rust, Java, Kotlin и др.

Для упрощения работы с WebGL существуют различные фреймворки. Все они распространяются под свободной лицензией (MIT, Apache 2 или BSD), написаны на JavaScript и имеют сходный набор функций: работа с геометрией, материалом, светом, анимацией, камерами, шейдерами, текстом и 3D-аудио. Вот некоторые из них:

  • three.js – сайт, GitHub, MIT.
  • Babylon.js – сайт, GitHub, Apache 2.
  • A-Frame – сайт, GitHub, MIT.
  • PlayCanvas – сайт, GitHub, Apache 2.
  • React 360 – сайт, GitHub, BSD.
  • AR.js – GitHub, MIT.

2.5. Программное обеспечение

Blender

Blender – это профессиональное и свободное ПО, предназначенное для создания трехмерной компьютерной графики . Он включает в себя инструменты для моделирования, анимации и рендеринга.

Unity

Unity является наиболее распространенным инструментом для разработки VR. С его помощью можно импортировать модели, созданные в Blender, настроить взаимодействие с этими моделями, а также их физику. Для скриптинга используется C# и UnityScript, напоминающий JavaScript. На этом движке можно создавать приложения для WebGL, Oculus Rift и HTC Vive. Также есть интеграция с ARCore, ARKit.

Цена: бесплатно и не требует отчислений с прибыли.

Ограничение: объем привлеченных инвестиций не более 100 тыс. долл. за последние 12 мес.

Unreal Engine

Основной конкурент Unity – Unreal Engine. В нем можно писать на C++ и Blueprints (визуальное программирование). Поддерживаемые платформы: AR (Android, iOS), VR (Google VR, Oculus, Gear VR, SteamVR, Windows MR)

Цена: бесплатно.

Ограничение: 5% от выручки с продаж, если ежеквартальная выручка превышает 3 тыс. долл.

3. Уроки и курсы по AR и VR

3.1. AR

3.2. VR

Итак, для разработки AR-приложений основными инструментами являются ARkit и ARCore. Если вы пишете на JavaScript, обратите внимание на AR фреймворки, работающие через веб-браузер. С языками в VR всё очевидно: C# в Unity, C++ в Unreal Engine. Рынок AR и VR будет расти, так что успейте запрыгнуть в поезд, пока он не ушел!

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *