Конвертация между семействами
Каждый переход между семействами — копирование, чаще всего между видеокартой и процессором. Где он нужен, сколько стоит и как его удешевить.
Переход между семействами означает копирование данных, и чаще всего между видеокартой и процессором. Такие узлы обходятся сети дороже всего, и их стоит знать.
| Из | В | Оператор | Типичное применение |
|---|---|---|---|
| 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, тормозит на любой машине — Оптимизация кука.
Нашли в статье ошибку, устаревшее или непонятное место?