К содержанию
fohbookбета/ TouchDesigner

Конвертация между семействами

Каждый переход между семействами — копирование, чаще всего между видеокартой и процессором. Где он нужен, сколько стоит и как его удешевить.

Ветка вашего пульта:
Быстрый выбор:

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

Из В Оператор Типичное применение
TOP CHOP TOP to CHOP Пиксель-мэппинг, анализ картинки, цвет в число
CHOP TOP CHOP to TOP Данные как текстура: позиции инстансов, LUT
SOP CHOP SOP to CHOP Координаты точек геометрии в сигнал
CHOP SOP CHOP to SOP Построить геометрию из сигнала
DAT CHOP DAT to CHOP Таблица чисел становится каналами
CHOP DAT CHOP to DAT Значения в текст: логи, отправка наружу
DAT TOP Text TOP (параметр DAT) Текст из таблицы как картинка
TOP SOP Trace SOP Контуры светлых областей картинки как полигоны
TOP POP TOP to POP Пиксели в точки: карта глубины, облако точек, карта высот
POP TOP POP to TOP Атрибуты точек в пиксели, 32-битный float
CHOP POP CHOP to POP Каждый сэмпл — точка, каналы — атрибуты
POP CHOP POP to CHOP Атрибуты точек в каналы, с прореживанием
SOP POP SOP to POP Перенести готовую геометрию на видеокарту
POP SOP POP to SOP Вернуть геометрию на процессор

TOP to CHOP

Самый нужный и самый опасный: забирает пиксели из видеопамяти в процессор, и так видео становится уровнями светодиодов — Пиксель-мэппинг. Его цена растёт вместе с числом пикселей.

Ресайз до конвертации

Нужно 512 значений — уменьшите картинку до 512 перед TOP to CHOP. Если тянуть в процессор кадр 1920 × 1080 ради 512 чисел, почти вся работа и всё ожидание уходят впустую.

Download Type в положении Next frame (Fast) отдаёт данные с опозданием на кадр, зато процессор не ждёт видеокарту; Immediate (Slow) ждёт. Для шоу почти всегда нужен первый. На странице Crop выбирают, что забирать — пиксель, строку, столбец, прямоугольник или всю картинку, — и от этого же зависит раскладка по каналам и сэмплам. RGBA Units отдаёт цвет в 0…1, 0…255 или 0…65535; для DMX удобно сразу 0…255.

Обратно на видеокарту

CHOP to TOP кладёт каналы в текстуру, по умолчанию 32-битную float, чтобы не терять точность. Через него данные массово попадают на видеокарту: позиции, цвета и повороты для инстансинга, таблица подстановки для Lookup TOP, любой массив для GLSL. Обычно это дешевле обратного пути — процессору не надо ждать готовый кадр.

SOP to CHOP отдаёт атрибуты точек как каналы, например X, Y, Z: так позиции приборов из 3D-сцены становятся адресами для света — Наведение по 3D-цели. CHOP to SOP строит из каналов геометрию — аудиоволну линией, траекторию кривой. DAT to CHOP превращает таблицу чисел в каналы и пересчитывается только при её изменении; так грузят патч, координаты пикселей, списки значений.

POP

POP считаются на видеокарте, как TOP, так что TOP to POP и POP to TOP через процессор данные не гоняют. Дорого всё, что возвращает геометрию на CPU, — POP to CHOP, POP to DAT, POP to SOP; часть из них умеет асинхронную выгрузку с задержкой в кадр, как TOP to CHOP.

Как проектировать

Данные держат в том семействе, где они нужны, а границу переходят один раз, в одном месте и на минимальном объёме. Сеть, где TOP уходит в CHOP, потом в TOP и снова в CHOP, тормозит на любой машине — Оптимизация кука.

Нашли в статье ошибку, устаревшее или непонятное место?

рядом по смыслу