Мое личное путешествие по Экспо и Виро

Я был очень рад попробовать React Native, многие функции мне понравились. Возможность кодировать javascript на iOS, предварительные просмотры в реальном времени на вашем устройстве и в симуляторе iOS. Кросс-платформенное кодирование на языке, который мы изучали в школе, казалось несложным, поэтому мне пришлось попробовать. Ооо, если я делаю мобильное приложение, я мог бы сделать это и в дополненной реальности. Принимая желаемое за действительное, я еще не осознавал.

Все началось хорошо, я начал гуглить

и нашел многообещающие результаты.

Очень здорово, это видео показало мне, как создать приложение дополненной реальности, подключенное к Google Poly Api, которое позволяет пользователям искать любой объект дополненной реальности на платформе и видеть его расширенным в своей среде.

20:00, ночь перед тем, как я выступлю: Это будет легко ... класс получит удовольствие от просмотра этой демонстрации.

Итак, я начинаю следовать и загружаю Expo (что, кстати, больно, если вы ничего не пытаетесь сделать в AR)

Expo - действительно отличное программное обеспечение, которое предлагает как среду командной строки, так и онлайн-интерфейс для работы с React Native. Подобно другим React Native API. Они предоставляют множество встроенных компонентов, которые вы можете подключить прямо к вашему JSX-файлу, чтобы сделать процесс кодирования более эффективным. Например, чтобы использовать AR, вы можете легко добавить компонент THREE-EXPO, который позволяет вам получить доступ к three.js из expo, не растягиваясь слишком далеко.

Я кодирую вместе

и продолжаем смотреть видео. Дела шли хорошо, хотя платформа выставки обновлялась так часто, что потребовалась небольшая реорганизация, чтобы следить за потоком видео. А затем мы переходим к самому интересному - доступу к камере. Мне не терпелось увидеть, как это работает в действии. Итак, я все это настроил.

Получите эту ошибку - expo больше не поддерживает дополненную реальность. Проверьте www. для получения дополнительной информации

Бум!

Поэтому я проверял их документацию по API и указывал, что первый вариант - это «AR», так как это первый вариант, который мне очень нравится.

21:00: Я понял, что AR была удалена из библиотеки expo, поэтому я больше не мог ее использовать. Закройте видео. И начал очень расстраиваться

Требуется найти другое решение ... вот это сообщение от Эндрю Сантоса

Мастер Эндрю Сантос упомянул, что я предыдущий ученик работал на платформе под названием Viro React. Это выглядело довольно простым в использовании, поэтому я проверил их документацию.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

команда установки homebrew

brew install node

команда установки узла

yum install watchman

установить сторож

npm install -g react-native-cli

установить интерфейс командной строки React

npm install -g react-viro-cli

установить интерфейс командной строки Viro

npm install -g react-viro-cli

И приступил к отработке документации

react-viro init ViroSample

Скачал приложение Viro



Вот ссылка для загрузки приложения, она позволяет вам тестировать свой мобильный опыт в процессе разработки. Как и в обычных приложениях для iPhone, AR требует использования камеры телефона, поэтому вы не можете использовать симулятор xCode. Так что загрузка приложения здесь - важный шаг. Все было хорошо

22:00: плавное плавание под парусом

С самого начала все работало хорошо, образец проекта Viro работал, как и было обещано, и следующим шагом в документации было добавление компонентов. Это выглядело довольно просто, поскольку все реагировало на это, импортируя разные материалы.

./HelloWorldSceneAR.js
import {
  ...
    ViroBox,
  ViroMaterials,
} from 'react-viro';

а затем я создал поле под компонентом ViroText

<ViroBox position={[0, -.5, -1]} scale={[.3, .3, .1]} materials={["grid"]} />
ViroMaterials.createMaterials({   grid: {     diffuseTexture: require('./res/grid_bg.jpg'),
 }, 
});

и добавил к нему материалы.

Добавление 3D-объектов в сцену

Продолжая в документации, я начал добавлять 3D-объекты, необходимые для импорта компонентов Viro3DObject, ViroAmbientLight и ViroSpotLight.

Добавьте следующее в свой оператор импорта

import {
    ...
  Viro3DObject,
  ViroAmbientLight,
  ViroSpotLight,
} from 'react-viro';

После того, как вы закончите импорт, создайте новый Viro3DObject и импортируйте предоставленные файлы с помощью viro в свой проект в качестве источника. Укажите положение, масштаб и тип - vrx - это преобразованный тип файла 3D-объекта

<Viro3DObject source={require('./res/emoji_smile/emoji_smile.vrx')}            position={[-.5, .5, -1]} scale={[.2, .2, .2]} type="VRX" />

Расположите объект в пространстве, задайте масштаб и укажите тип - обратите внимание, что существует много разных типов объектов, и все они по-разному обрабатываются в viro. Для получения дополнительной информации о 3D-объектах, просмотрите этот документ

Создайте плоскость AR

Чтобы это была дополненная реальность, она должна быть хорошо расположена в космосе, и Viro предлагает отличное решение. Для этого импортируйте ViroARPlaneSelector в оператор импорта вашего приложения реакции. А затем добавьте следующий код в свой ViroARPlaneSelector

<ViroARPlaneSelector />

Чтобы вложить объекты в пространстве в ViroPlane, вы просто оборачиваете объект в ViroARPlane Selector. И теперь у вас все готово к «рабочему» проекту дополненной реальности с помощью react. Теперь, когда у нас есть несколько объектов в сцене, мы можем оживить ее.

Распознавание изображений

Доделал документацию и начал работать над распознаванием изображений и привязкой

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

Я понял, что вознаграждение того не стоит, и сильно переживал из-за этого сообщения в блоге и из-за этого фреймворка.

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

Так как сейчас состояние дополненной реальности и реагировать - не здорово.

Спасибо