Использование камеры Intel RealSense с TouchDesigner. Часть 1
Содержание материала
Страница 1 из 2
TouchDesigner компании Derivative — популярная платформа и программа, используемая во всем мире для создания интерактивных решений и анимации реального времени в ходе выступлений, а также для отображения трехмерной анимации, создания карт и схем, а также с недавнего времени в системах виртуальной реальности. Благодаря поддержке камеры Intel RealSense TouchDesigner становится еще более многоцелевым и мощным средством. Следует отметить и возможность импортировать в TouchDesigner объекты и анимацию из других трехмерных пакетов с помощью файлов .fbx, а также возможность работать с уже рендеринговыми анимационными роликами и изображениями.
В этой статье, состоящей из двух частей, я расскажу об интеграции камеры Intel RealSense в TouchDesigner и о возможностях ее использования. В демонстрациях в первой части используется камера Intel RealSense с узлами TOP. В демонстрациях во второй части используются узлы CHOP. Во второй части также поясняется создание последовательностей виртуальной реальности и полукруглых панорам с использованием камеры Intel RealSense.
Обе части включают анимации и загружаемые файлы TouchDesigner* (.toe), которые можно использовать для просмотра. Для получения файлов TouchDesigner* (.toe) нажмите здесь. Кроме того, доступна бесплатная копия TouchDesigner* для некоммерческого использования. Она полностью функциональна (за исключением того, что максимальное разрешение ограничено значением 1280 на 1280).
Примечание. В настоящее время существует два типа камер Intel RealSense: камера ближнего обзора F200 и камера дальнего обзора R200. Благодаря своему сверхкомпактному размеру камера R200 очень удобна для выступлений и других сценариев использования, когда камера должна быть скрытой. В отличие от более крупной модели F200 камера R200 не поддерживает отслеживание рук и пальцев, а также отслеживание маркеров. TouchDesigner* поддерживает обе модели камер Intel RealSense: и F200, и R200.
Цитирую веб-страницу TouchDesigner: «TouchDesigner* — это революционная программная платформа, дающая возможность художникам и дизайнерам работать с материалами в открытой свободной среде. TouchDesigner* — идеальное решение для интерактивных мультимедиапроектов, использующих видео, звук, трехмерную графику, ввод с помощью контроллеров, Интернет и базы данных, источники света DMX, датчики окружающей среды и вообще все, что только можно вообразить. Это мощная среда для смешения всех названных элементов бесконечным числом способов».
«Благодаря процедурной архитектуре TouchDesigner* на основе узлов данные камеры Intel RealSense можно немедленно получать, визуализировать, затем передавать на другие узлы, не тратя времени на написание кода. Можно быстро создавать прототипы идей и вести разработку с мгновенной обратной связью. Камера представлена узлом в TouchDesigner*, а это означает, что нет необходимости закрывать и перекомпилировать приложение на каждой итерации разработки. Камера Intel RealSense дополняет возможности TouchDesigner*, предоставляя пользователям значительное количество готовых модулей, таких как жесты, отслеживание рук, отслеживание лица, данные глубины. Все это можно использовать для взаимодействия. Нет необходимости применять низкоуровневый анализ данных о положении рук для распознавания жестов: это уже сделано».
TouchDesigner* — программа и платформа на основе узлов, использующая Python* в качестве основного языка сценариев. Существует пять категорий узлов, выполняющих разные операции и обладающих разными функциями: узлы TOP (текстуры), SOP (геометрия), CHOP (анимация и звук), DAT (таблицы и текст), COMP (трехмерные геометрические узлы, а также узлы для создания двухмерных панелей управления) и MAT (материалы). Программисты компании TouchDesigner*, посоветовавшись с разработчиками Intel, создали два особых узла, узел камеры Intel RealSense TOP и узел камеры Intel RealSense CHOP для интеграции камеры Intel RealSense в программу.
Примечание. Эта статья предназначена для пользователей, уже знакомых с программой TouchDesigner* и с ее интерфейсом. Если у вас нет опыта работы с TouchDesigner* и вы собираетесь постепенно разбираться в этой статье, то рекомендую сначала просмотреть документацию, доступную здесь.
Примечание. При использовании камеры Intel RealSense для достижения оптимальных результатов следует учитывать дальность. На этой веб-странице Intel указана дальность всех моделей камер и даны рекомендации по использованию камер.
Узлы TOP в TouchDesigner* выполняют множество операций, обычно содержащихся в программах для композиции изображений. Узел камеры Intel RealSense TOP дополняет эти возможности за счет двухмерных и трехмерных данных, поступающих от камеры Intel RealSense. Узел камеры Intel RealSense TOP содержит ряд настроек для получения разных видов данных.
Примечание. Можно загрузить этот файл RealSensePointCloudForArticle.toe для использования в качестве простого начального шаблона для создания трехмерной анимированной геометрии из данных камеры Intel RealSense. Этот файл можно изменять разными способами. Вместе три узла TOP камеры Intel RealSense — Point Cloud, Color и Point Cloud Color UV — позволяют создать трехмерную геометрию из точек (частиц) с наложением цветного изображения. Это открывает множество интересных возможностей.
Геометрия облака точек. Это анимированная геометрия, создаваемая с помощью камеры Intel RealSense. Ее очень хорошо использовать при выступлениях на публике. Можно добавить и звук говорящего анимационного персонажа. TouchDesigner* также может использовать звуковые данные для создания анимации в реальном времени.
Примечание. Существует еще один узел CHOP камеры Intel RealSense, отвечающий за данные трехмерного отслеживания и положения. Мы обсудим его во второй части этой статьи.
Для получения первой демонстрации TOP нажмите кнопку в верхней части статьи: settingUpRealNode2b_FINAL.toe.
Демонстрация 1, часть 1. Вы узнаете, как настраивать узел камеры Intel RealSense TOP и соединять его с другими узлами TOP.
1. Откройте диалоговое окно Add Operator/OP Create.
2. В разделе TOP щелкните RealSense.
3. На странице параметров Setup узла камеры Intel RealSense TOP для параметра Image выберите значение Color в раскрывающемся меню. В узле камеры Intel RealSense TOP отображается изображение того, на что направлена камера, как при использовании обычной видеокамеры.
4. Задайте для камеры Intel RealSense разрешение 1920 на 1080.
Настроить узел Intel RealSense TOP очень просто.
5. Создайте узел Level TOP и соедините его с узлом камеры Intel RealSense TOP.
6. На странице параметров Pre узла Level TOP выберите Invert и передвиньте ползунок на значение 1.
7. Соедините узел Level TOP с узлом HSV To RGB TOP, затем соедините последний с узлом Null TOP.
Узел камеры Intel RealSense TOP можно соединять с другими узлами TOP для получения нужного изображения и создания нужных эффектов.
Затем мы передадим созданное изображение в узел Phong MAT (материал), чтобы можно было налагать его на различные геометрические фигуры в качестве текстуры.
Демонстрация 1, часть 2. В этом упражнении показано, как использовать узел камеры Intel RealSense TOP для создания текстур и как добавлять их в узел MAT, чтобы можно было назначать их геометрии в проекте.
1. Добавьте узел Geometry (геометрия) COMP в сцену.
2. Добавьте узел Phong MAT.
3. Возьмите узел Null TOP и перетащите его на параметр Color Map узла Phong MAT.
Узел Phong MAT использует данные с камеры Intel RealSense для своего параметра Color Map.
4. На странице параметров Render узла Geo COMP добавьте тип phong1 к параметру Material, чтобы использовать узел phong1 в качестве материала.
Узел Phong MAT использует данные с камеры Intel RealSense для своего параметра Color Map, добавленного в параметр Render/Material узла Geo COMP.
Демонстрация 1, часть 3. Вы узнаете, как назначить шейдер Phong MAT, только что созданный с помощью данных с камеры Intel RealSense, узлу Geometry SOP куба.
1. Перейдите в узле geo1 на его дочерний уровень (/project1/geo1).
2. Создайте узел Box SOP, узел Texture SOP и узел Material SOP.
3. Удалите узел Torus SOP, который там был, затем соедините узел box1 с узлами texture1 и material1.
4. В параметре Material узла material1 введите ../phong1. Это узел phong1 MAT, созданный на родительском уровне.
5. Чтобы поместить текстуру на каждую сторону куба, в параметрах Texture/Texture Type узла texture1 поместите face и задайте для параметра the Texture/Offset put значение .5 .5 .5.
На дочернем уровне узла geo1 COMP узлы Box SOP, Texture SOP и the Material SOP будут соединены. Узел Material SOP теперь получает текстуру из узла phong1 MAT, находящегося на родительском уровне ( …/phong1).
Демонстрация 1, часть 4. Вы узнаете, как поворачивать узел Geometry SOP с помощью узла Transform SOP и простого выражения. Затем вы узнаете, как создавать экземпляры геометрии узла Box. В результате мы получим экран с множеством вращающихся кубов, на каждом из которых будут текстуры из узла камеры Intel RealSense TOP.
1. Для анимации вращения куба вокруг оси X вставьте узел Transform SOP после узла Texture SOP.
2. Поместите выражение в компонент X (первое поле) параметра Rotate в узле transform1 SOP. Это выражение не зависит от кадров, оно будет продолжать работать и не начнет повторяться по окончании кадров на временной шкале. Я умножил значение на 10, чтобы увеличить скорость: absTime.seconds*10
Здесь видно, что куб вращается.
3. Для создания кубов перейдите на родительский уровень (/project1) и на странице параметров Instance узла geo1 COMP установите для параметра Instancing значение On.
4. Добавьте узел Grid SOP и узел SOP–DAT.
5. Задайте параметры сетки: 10 строк и 10 столбцов, размер — 20 и 20.
6. В параметрах узла SOP–DAT для SOP задайте grid1 и убедитесь, что для параметра Extract задано значение Points.
7. На странице параметров Instance узла geo1 COMP введите для параметра Instance CHOP/DAT: sopto1.
8. Заполните параметры TX, TY и TZ, используя соответственно P(0), P(1) и P(2), чтобы указать, какие столбцы из узла sopto1 использовать для положений экземпляров.
9. Если нужно, чтобы изображение с камеры Intel RealSense передавалось без фильтрации, отключите узлы Level TOP и HSV to RGB TOP либо обойдите эти узлы.
В этой статье, состоящей из двух частей, я расскажу об интеграции камеры Intel RealSense в TouchDesigner и о возможностях ее использования. В демонстрациях в первой части используется камера Intel RealSense с узлами TOP. В демонстрациях во второй части используются узлы CHOP. Во второй части также поясняется создание последовательностей виртуальной реальности и полукруглых панорам с использованием камеры Intel RealSense.
Обе части включают анимации и загружаемые файлы TouchDesigner* (.toe), которые можно использовать для просмотра. Для получения файлов TouchDesigner* (.toe) нажмите здесь. Кроме того, доступна бесплатная копия TouchDesigner* для некоммерческого использования. Она полностью функциональна (за исключением того, что максимальное разрешение ограничено значением 1280 на 1280).
Примечание. В настоящее время существует два типа камер Intel RealSense: камера ближнего обзора F200 и камера дальнего обзора R200. Благодаря своему сверхкомпактному размеру камера R200 очень удобна для выступлений и других сценариев использования, когда камера должна быть скрытой. В отличие от более крупной модели F200 камера R200 не поддерживает отслеживание рук и пальцев, а также отслеживание маркеров. TouchDesigner* поддерживает обе модели камер Intel RealSense: и F200, и R200.
Цитирую веб-страницу TouchDesigner: «TouchDesigner* — это революционная программная платформа, дающая возможность художникам и дизайнерам работать с материалами в открытой свободной среде. TouchDesigner* — идеальное решение для интерактивных мультимедиапроектов, использующих видео, звук, трехмерную графику, ввод с помощью контроллеров, Интернет и базы данных, источники света DMX, датчики окружающей среды и вообще все, что только можно вообразить. Это мощная среда для смешения всех названных элементов бесконечным числом способов».
«Благодаря процедурной архитектуре TouchDesigner* на основе узлов данные камеры Intel RealSense можно немедленно получать, визуализировать, затем передавать на другие узлы, не тратя времени на написание кода. Можно быстро создавать прототипы идей и вести разработку с мгновенной обратной связью. Камера представлена узлом в TouchDesigner*, а это означает, что нет необходимости закрывать и перекомпилировать приложение на каждой итерации разработки. Камера Intel RealSense дополняет возможности TouchDesigner*, предоставляя пользователям значительное количество готовых модулей, таких как жесты, отслеживание рук, отслеживание лица, данные глубины. Все это можно использовать для взаимодействия. Нет необходимости применять низкоуровневый анализ данных о положении рук для распознавания жестов: это уже сделано».
Использование камеры Intel RealSense в TouchDesigner
TouchDesigner* — программа и платформа на основе узлов, использующая Python* в качестве основного языка сценариев. Существует пять категорий узлов, выполняющих разные операции и обладающих разными функциями: узлы TOP (текстуры), SOP (геометрия), CHOP (анимация и звук), DAT (таблицы и текст), COMP (трехмерные геометрические узлы, а также узлы для создания двухмерных панелей управления) и MAT (материалы). Программисты компании TouchDesigner*, посоветовавшись с разработчиками Intel, создали два особых узла, узел камеры Intel RealSense TOP и узел камеры Intel RealSense CHOP для интеграции камеры Intel RealSense в программу.
Примечание. Эта статья предназначена для пользователей, уже знакомых с программой TouchDesigner* и с ее интерфейсом. Если у вас нет опыта работы с TouchDesigner* и вы собираетесь постепенно разбираться в этой статье, то рекомендую сначала просмотреть документацию, доступную здесь.
Примечание. При использовании камеры Intel RealSense для достижения оптимальных результатов следует учитывать дальность. На этой веб-странице Intel указана дальность всех моделей камер и даны рекомендации по использованию камер.
Узел камеры Intel RealSense TOP
Узлы TOP в TouchDesigner* выполняют множество операций, обычно содержащихся в программах для композиции изображений. Узел камеры Intel RealSense TOP дополняет эти возможности за счет двухмерных и трехмерных данных, поступающих от камеры Intel RealSense. Узел камеры Intel RealSense TOP содержит ряд настроек для получения разных видов данных.
- Цвет. Видео с датчика цвета камеры Intel RealSense.
- Глубина. Вычисленная глубина каждого пикселя. 0 означает, что пиксель находится на расстоянии 0 метров от камеры, 1 означает, что пиксель находится на максимально возможном расстоянии или дальше.
- Необработанная глубина. Значения берутся непосредственно из Intel RealSense SDK. И вновь 0 означает 1 метр от камеры, 1 означает, что пиксель находится на максимально возможном расстоянии или дальше.
- Наглядная глубина. Изображение Intel RealSense SDK в оттенках серого, позволяющее наглядно представить глубину. Его невозможно использовать для фактического вычисления точного расстояния каждого пикселя до камеры.
- Отображение глубины на цветной UV-карте. Значения UV из 32-разрядной плавающей текстуры RG (обратите внимание, что в ней только два цвета (красный и зеленый), а синего цвета нет), необходимые для выравнивания изображения глубины в соответствии с цветным изображением. Для выравнивания изображений можно использовать узел TOP Remap.
- Отображение цвета на UV-карте глубины. Значения UV из 32-разрядной плавающей текстуры RG (обратите внимание, что в ней только два цвета (красный и зеленый), а синего цвета нет), необходимые для выравнивания изображения цвета в соответствии с изображением глубины. Для выравнивания изображений можно использовать узел TOP Remap.
- Инфракрасное изображение. Необработанное видео инфракрасного датчика камеры Intel RealSense.
- Облако точек. Это в буквальном смысле облако точек в трехмерном пространстве (с координатами X, Y, Z) или точек данных, созданных сканером камеры Intel RealSense.
- UV-карта цветов облака точек. Можно использовать для получения цвета каждой точки из потока цветного изображения.
Примечание. Можно загрузить этот файл RealSensePointCloudForArticle.toe для использования в качестве простого начального шаблона для создания трехмерной анимированной геометрии из данных камеры Intel RealSense. Этот файл можно изменять разными способами. Вместе три узла TOP камеры Intel RealSense — Point Cloud, Color и Point Cloud Color UV — позволяют создать трехмерную геометрию из точек (частиц) с наложением цветного изображения. Это открывает множество интересных возможностей.
Геометрия облака точек. Это анимированная геометрия, создаваемая с помощью камеры Intel RealSense. Ее очень хорошо использовать при выступлениях на публике. Можно добавить и звук говорящего анимационного персонажа. TouchDesigner* также может использовать звуковые данные для создания анимации в реальном времени.
Узел CHOP камеры Intel RealSense
Примечание. Существует еще один узел CHOP камеры Intel RealSense, отвечающий за данные трехмерного отслеживания и положения. Мы обсудим его во второй части этой статьи.
Демонстрация 1. Использование узла камеры Intel RealSense TOP
Для получения первой демонстрации TOP нажмите кнопку в верхней части статьи: settingUpRealNode2b_FINAL.toe.
Демонстрация 1, часть 1. Вы узнаете, как настраивать узел камеры Intel RealSense TOP и соединять его с другими узлами TOP.
1. Откройте диалоговое окно Add Operator/OP Create.
2. В разделе TOP щелкните RealSense.
3. На странице параметров Setup узла камеры Intel RealSense TOP для параметра Image выберите значение Color в раскрывающемся меню. В узле камеры Intel RealSense TOP отображается изображение того, на что направлена камера, как при использовании обычной видеокамеры.
4. Задайте для камеры Intel RealSense разрешение 1920 на 1080.
Настроить узел Intel RealSense TOP очень просто.
5. Создайте узел Level TOP и соедините его с узлом камеры Intel RealSense TOP.
6. На странице параметров Pre узла Level TOP выберите Invert и передвиньте ползунок на значение 1.
7. Соедините узел Level TOP с узлом HSV To RGB TOP, затем соедините последний с узлом Null TOP.
Узел камеры Intel RealSense TOP можно соединять с другими узлами TOP для получения нужного изображения и создания нужных эффектов.
Затем мы передадим созданное изображение в узел Phong MAT (материал), чтобы можно было налагать его на различные геометрические фигуры в качестве текстуры.
Использование данных с камеры Intel RealSense для создания текстур для геометрии
Демонстрация 1, часть 2. В этом упражнении показано, как использовать узел камеры Intel RealSense TOP для создания текстур и как добавлять их в узел MAT, чтобы можно было назначать их геометрии в проекте.
1. Добавьте узел Geometry (геометрия) COMP в сцену.
2. Добавьте узел Phong MAT.
3. Возьмите узел Null TOP и перетащите его на параметр Color Map узла Phong MAT.
Узел Phong MAT использует данные с камеры Intel RealSense для своего параметра Color Map.
4. На странице параметров Render узла Geo COMP добавьте тип phong1 к параметру Material, чтобы использовать узел phong1 в качестве материала.
Узел Phong MAT использует данные с камеры Intel RealSense для своего параметра Color Map, добавленного в параметр Render/Material узла Geo COMP.
Создание узла Box SOP и текстурирование с помощью только что созданного шейдера Phong
Демонстрация 1, часть 3. Вы узнаете, как назначить шейдер Phong MAT, только что созданный с помощью данных с камеры Intel RealSense, узлу Geometry SOP куба.
1. Перейдите в узле geo1 на его дочерний уровень (/project1/geo1).
2. Создайте узел Box SOP, узел Texture SOP и узел Material SOP.
3. Удалите узел Torus SOP, который там был, затем соедините узел box1 с узлами texture1 и material1.
4. В параметре Material узла material1 введите ../phong1. Это узел phong1 MAT, созданный на родительском уровне.
5. Чтобы поместить текстуру на каждую сторону куба, в параметрах Texture/Texture Type узла texture1 поместите face и задайте для параметра the Texture/Offset put значение .5 .5 .5.
На дочернем уровне узла geo1 COMP узлы Box SOP, Texture SOP и the Material SOP будут соединены. Узел Material SOP теперь получает текстуру из узла phong1 MAT, находящегося на родительском уровне ( …/phong1).
Анимация и создание экземпляров геометрии узла Box
Демонстрация 1, часть 4. Вы узнаете, как поворачивать узел Geometry SOP с помощью узла Transform SOP и простого выражения. Затем вы узнаете, как создавать экземпляры геометрии узла Box. В результате мы получим экран с множеством вращающихся кубов, на каждом из которых будут текстуры из узла камеры Intel RealSense TOP.
1. Для анимации вращения куба вокруг оси X вставьте узел Transform SOP после узла Texture SOP.
2. Поместите выражение в компонент X (первое поле) параметра Rotate в узле transform1 SOP. Это выражение не зависит от кадров, оно будет продолжать работать и не начнет повторяться по окончании кадров на временной шкале. Я умножил значение на 10, чтобы увеличить скорость: absTime.seconds*10
Здесь видно, что куб вращается.
3. Для создания кубов перейдите на родительский уровень (/project1) и на странице параметров Instance узла geo1 COMP установите для параметра Instancing значение On.
4. Добавьте узел Grid SOP и узел SOP–DAT.
5. Задайте параметры сетки: 10 строк и 10 столбцов, размер — 20 и 20.
6. В параметрах узла SOP–DAT для SOP задайте grid1 и убедитесь, что для параметра Extract задано значение Points.
7. На странице параметров Instance узла geo1 COMP введите для параметра Instance CHOP/DAT: sopto1.
8. Заполните параметры TX, TY и TZ, используя соответственно P(0), P(1) и P(2), чтобы указать, какие столбцы из узла sopto1 использовать для положений экземпляров.
9. Если нужно, чтобы изображение с камеры Intel RealSense передавалось без фильтрации, отключите узлы Level TOP и HSV to RGB TOP либо обойдите эти узлы.
Tags:
Урок touchdesigner
, TouchDesigner
, RealSense
, tutorial
, vj уроки
, Intel RealSense часть 1