Использование камеры Intel RealSense с TouchDesigner. Часть 2
Содержание материала
Демонстрация 2. Отслеживание маркера RealSense CHOP
В этой демонстрации мы задействуем функцию отслеживания маркеров в RealSense CHOP, чтобы показать, как использовать изображение для отслеживания. Вы создадите изображение, у вас будет две его копии: печатная копия и цифровая копия. Они должны в точности совпадать. При этом можно изначально располагать цифровым файлом и напечатать его либо, располагая изображением на бумаге, отсканировать его для получения цифровой версии.
- 1. Добавьте узел RealSense CHOP в сцену.
- 2. На странице параметров Setup узла RealSense CHOP выберите для параметра Mode значение Marker Tracking.
- 3. Создайте ресурс Movie File в TOP.
- 4. На странице параметров Play узла TOP в разделе File выберите и загрузите цифровое изображение, для которого у вас также есть печатная версия.
- 5. Перетащите Movie File в TOP на страницу параметров Setup узла RealSense CHOP и в ячейку Marker Image TOP в нижней части страницы.
- 6. Создайте узлы Geometry COMP, Camera COMP, Light COMP и Render TOP.
- 7. Как было сделано ранее на шаге 7 в демонстрации 1, экспортируйте канал tx из RealSense CHOP и перетащите его в параметр Translate X узла Geometry COMP.
- 8. Создайте узел Reorder TOP и соедините его с узлом Render TOP. На странице параметров Reorder узла Output Alpha выберите One в раскрывающемся списке.
- 9. Поместите напечатанное изображение цифрового файла перед камерой Intel RealSense и подвигайте его. Камера должна отслеживать движение и выдавать его узлу Render TOP.
- Числа в RealSense CHOP также изменятся.
Рисунок 5. Это полный макет демонстрации с отслеживанием маркера
Рисунок 6. На странице параметров узла Geo COMP канал tx из узла RealSense CHOP перетащен на параметр Translate x
Отслеживание глаза в TouchDesigner с помощью узла RealSense CHOP
На палитре программ TouchDesigner в разделе RealSense есть шаблон eyeTracking, который можно использовать для отслеживания движения глаз пользователя. Этот шаблон использует отслеживание пальцев/лица узла RealSense CHOP; для узла RealSense TOP должен быть задан Color. В шаблоне зеленые прямоугольники WireFrame двигаются в соответствии с движением глаз человека и накладываются на цветное изображение человека в RealSense TOP.
Вместо открытых зеленых прямоугольников можно использовать любые другие геометрические фигуры или частицы. Это очень удобный шаблон. Вот изображение с шаблоном.
Рисунок 7. Обратите внимание, что глаза отслеживаются даже через очки
Демонстрация 3, часть 1. Простой способ настройки полнокупольного рендеринга или виртуальной реальности
В этой демонстрации мы берем файл и показываем, как представить его в полнокупольном рендеринге и в 360-градусной виртуальной реальности. Я уже подготовила такой файл для загрузки. Это файл chopRealSense_FullDome_VR_render.toe.
Краткое описание процесса создания этого файла
В этом файле я хотела разместить геометрические фигуры (сферу, тор, цилиндры и прямоугольники) в сцене. Поэтому я создала несколько узлов SOP для этих различных геометрических фигур. Каждый узел SOP был присоединен к узлу Transform SOP для перемещения (преобразования) геометрических фигур в разных местах сцены. Все узлы SOP соединены с одним узлом Merge SOP. Узел Merge SOP подан узлу Geometry COMP.
Рисунок 8. Это первый шаг в разметке геометрических фигур, размещенных в сцене, в загружаемом файле
Затем я создала узел Grid SOP и узел SOP–DAT. Узел SOP–DAT был использован для получения экземпляра Geometry COMP, чтобы можно было добавить в сцену больше геометрических фигур. Я также создала узел Constant MAT, выбрала зеленый цвет и включила параметр WireFrame на странице Common.
Рисунок 9. Узел SOP–DAT был создан с помощью узла Grid SOP
Затем я создала узел RealSense CHOP и соединила его с узлом Select CHOP, в котором я выбрала канал hand_r/wrist:tx для отслеживания и переименовала его в x. Я соединила Select CHOP с узлом Math CHOP, чтобы можно было изменить дальность, и соединила Math CHOP с узлом Null CHOP. Рекомендуется всегда завершать цепочку узлом Null или Out, чтобы было удобнее вставлять новые фильтры в цепочку. Затем я экспортировала x Channel из узла Null CHOP в параметр Scale X узла Geometry COMP.
Это обеспечивает управление всеми перемещениями геометрических фигур по оси x в сцене, когда я провожу правой рукой перед камерой Intel RealSense.
Рисунок 10. Данные отслеживания из узла RealSense CHOP используются для создания анимации в реальном времени и движения геометрических фигур вдоль оси x
Для создания полнокупольного 180-градусного рендеринга из этого файла
- 1. Создайте узлы Render TOP, Camera COMP и Light COMP.
- 2. На странице параметров Render узла Render TOP выберите Cube Map в раскрывающемся меню Render Mode.
- 3. На странице параметров Common узла Render TOP задайте для параметра Resolution разрешение с соотношением сторон 1:1, например 4096 на 4096, для получения разрешения 4K.
- 4. Создайте узел Projection TOP и соедините с ним узел Render TOP.
- 5. На странице параметров Projection узла Projection TOP выберите Fish-Eye в раскрывающемся меню Output.
- 6. (Это необязательно, в этом случае у файла будет черный фон.) Создайте узел Reorder TOP и на странице параметров Reorder в правом раскрывающемся меню Output Alpha выберите One.
- 7. Теперь все готово либо к непосредственному выполнению анимации, либо к экспорту файла фильма. Инструкции см. в первой части этой статьи. Вы создаете круговую купольную анимацию типа «Рыбий глаз». Это будет окружность с квадратом.
Чтобы использовать альтернативный метод, вернитесь на шаг 2 и вместо выбора Cube Map в раскрывающемся меню Render Mode выберите Fish-Eye(180). Теперь перейдите к шагу 3, а также при желании — к шагу 6. Теперь анимация готова к запуску или к экспорту. - Для создания 360-градусной виртуальной реальности из этого файла
1. Создайте узлы Render TOP, Camera COMP и Light COMP. - 2. На странице параметров Render узла Render TOP выберите Cube Map в раскрывающемся меню Render Mode.
- 3. На странице параметров Common узла Render TOP задайте для параметра Resolution разрешение с соотношением сторон 1:1, например 4096 на 4096, для получения разрешения 4K.
- 4. Создайте узел Projection TOP и соедините с ним узел Render TOP.
- 5. На странице параметров Projection узла Projection TOP выберите Equirectangular в раскрывающемся меню Output. При этом будет автоматически установлено соотношение сторон 2:1.
- 6. (Это необязательно, в этом случае у файла будет черный фон.) Создайте узел Reorder TOP, затем на странице параметров Reorder в правом раскрывающемся меню Output Alpha выберите One.
- 7. Теперь все готово либо к непосредственному выполнению анимации, либо к экспорту файла фильма. Инструкции см. в первой части этой статьи. При экспорте фильма вы создаете прямоугольную анимацию с соотношением сторон 2:1 для просмотра в очках виртуальной реальности.
Рисунок 11. В файл добавлены длинные оранжевые узлы Tube SOP. Вы можете добавить собственную геометрию в этот файл
Вывод на Oculus Rift* из TouchDesigner при использовании камеры Intel RealSense
В TouchDesigner создано несколько шаблонов для загрузки. В них показано, как настроить Oculus Rift в TouchDesigner. Один из этих шаблонов — OculusRiftSimple.toe — можно найти в архиве. Для просмотра в Oculus Rift, естественно, компьютер должен быть подключен к Oculus Rift. Без Oculus Rift можно создать файл, просмотреть изображения в узлах LeftEye Render TOP и RightEye Render TOP и отобразить их в фоне сцены. Я добавила поддержку Oculus Rift в файл, использованный в демонстрации 3.
Таким образом, камера Intel RealSense анимирует изображение, которое я вижу в Oculus Rift.
Рисунок 12. Здесь в фоне отображается левый глаз и правый глаз. Большая часть анимации этой сцены управляется путем отслеживания из узла CHOP камеры Intel RealSense. Файл, использованный для получения этого изображения, можно загрузить, нажав на кнопку в правом верхнем углу этой статьи, chopRealSense_FullDome_VRRender_FinalArticle2_OculusRiftSetUp.toe
Источник: habrahabr.ru