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

Фильтры и искажения

Каждый фильтр — проход по всем пикселям. Чем двигают и размывают картинку, почему Displace сдвигает картинку вбок и как блюр сделать дешёвым.

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

Обработка картинки — это проходы по пикселям, и каждый узел стоит примерно «разрешение × сложность». Вся оптимизация отсюда.

Оператор Что делает Стоимость
Transform Сдвиг, поворот, масштаб, повтор Низкая
Blur Размытие: гауссово, прямоугольное и другие ядра Растёт с радиусом
Bloom Свечение вокруг ярких мест, как в объективе Средняя
Edge Контуры Низкая
Threshold Порог: чёрное или белое Низкая
Displace Смещение пикселей по второй картинке Средняя
Convolve Свёртка произвольным ядром Зависит от ядра
Emboss Рельеф Низкая
Chroma Key Ключ по цвету Низкая
Luma Blur Размытие, зависящее от яркости второго входа Высокая
Slope Градиент яркости в вектор Низкая
Analyze Свёртка всей картинки в одно значение Низкая
Resolution / Fit Пересчёт размера Низкая
Flip / Reorder Переворот, перестановка каналов Очень низкая

Displace

Displace TOP двигает пиксели первого входа по данным второго, обычно шума, и из него растёт почти всё «жидкое», «дымное» и «стеклянное». Какие каналы второго входа двигают по X и Y, выбирают Horizontal Source и Vertical Source, силу — Displace Weight. Source Midpoint — значение, которое считается нулём; у беззнаковой картинки 0…1 это 0,5. Картинка смещается в одну сторону — почти всегда середина выставлена не там.

Дешёвый блюр

Размытие дорожает с радиусом, Filter Size. У Blur TOP есть Pre-Shrink: картинка уменьшается вдвое столько раз, сколько указано, и размывается уже маленькой — выходит как больший радиус за меньшую цену, хоть и чуть грубее честного большого ядра. То же вручную — Resolution TOP перед блюром и растяжка после. Для свечения есть Bloom TOP: сам находит яркое, размывает и складывает с картинкой. Руками это уменьшение, блюр и Add к оригиналу в 16 битах.

Analyze

Analyze TOP сворачивает картинку в среднее, минимум, максимум, сумму или число пикселей — целиком, по строкам или по столбцам. Свёртка идёт на видеокарте, и TOP to CHOP забирает после неё пару чисел вместо кадра. На этом строят автояркость, детект движения и реакцию на камеру.

Порядок

Сначала уменьшают, потом обрабатывают, в конце увеличивают. И что можно посчитать один раз, считают один раз и выводят в Null.

Одна цепочка вместо трёх

Один блюр для трёх эффектов считают один раз и раздают из Null. Три копии одного узла в разных ветках — частая причина «почему у меня 25 кадров».

Цепочку из десятка узлов, которые по сути делают над пикселем одну формулу, дешевле и понятнее заменить одним GLSL TOP. Порог — пять-шесть узлов в полном разрешении ради одной формулы.

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

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