Фильтры и искажения
Blur, Edge, Displace, Transform, Feedback-соседи: чем обрабатывают картинку и сколько это стоит.
Обработка картинки — это набор проходов по пикселям. Каждый узел стоит примерно «разрешение × сложность», и на этом строится вся оптимизация.
Основные операторы
| Оператор | Что делает | Стоимость |
|---|---|---|
| Transform | Сдвиг, поворот, масштаб, повтор | Низкая |
| Blur | Размытие | Растёт с радиусом |
| Edge | Контуры | Низкая |
| Threshold | Порог: чёрное или белое | Низкая |
| Displace | Смещение пикселей по второй картинке | Средняя |
| Convolve | Свёртка произвольным ядром | Зависит от ядра |
| Emboss / Sharpen | Рельеф и резкость | Низкая |
| Chroma Key | Ключ по цвету | Низкая |
| Luma Blur | Размытие, зависящее от яркости | Высокая |
| Slope | Градиент яркости в вектор | Низкая |
| Analyze | Свёртка всей картинки в одно значение | Низкая |
| Resolution / Fit | Пересчёт размера | Низкая |
| Flip / Reorder | Переворот, перестановка каналов | Очень низкая |
Displace — рабочая лошадка генеративной графики
Displace TOP сдвигает пиксели первого входа по данным второго. Второй вход
обычно шум. Отсюда растёт большинство «жидких»,
«дымных» и «стеклянных» эффектов.
Ключевые параметры: Displace Weight (сила), Source (какие каналы второго
входа считать смещением), Offset (нулевая точка). Если картинка уезжает
в одну сторону — почти всегда Offset не 0,5 при беззнаковых данных.
Blur — самый дорогой из простых
Стоимость размытия растёт с радиусом. Как делают дёшево:
- Уменьшить картинку (
Resolution TOP), размыть, растянуть обратно. Визуально почти неотличимо, стоит в разы дешевле. - Использовать несколько проходов малого радиуса вместо одного большого.
- Для свечения — уменьшить, размыть, сложить с оригиналом в режиме
Addна 16 битах.
Analyze — картинка в число
Analyze TOP сворачивает всё изображение в один пиксель: среднее, максимум,
минимум, сумма. Дальше TOP to CHOP даёт число.
Так делают автояркость, детект движения, реакцию на камеру — и всё это
на GPU, без выгрузки кадра в процессор.
Порядок операций
Правило: сначала уменьшать, потом обрабатывать, в конце увеличивать. Второе правило: всё, что можно сделать один раз, делайте один раз и кладите в Null, а не пересчитывайте в трёх ветках.
Если один и тот же блюр нужен трём эффектам — посчитайте его один раз, положите в Null, и все трое возьмут оттуда. Копии одного и того же узла в разных ветках — самая частая причина «почему у меня 25 кадров».
Когда пора в GLSL
Если для эффекта выстраивается цепочка из десяти узлов, которые по сути делают одну математическую операцию над пикселем, — она дешевле и понятнее одним GLSL TOP. Порог примерно такой: пять-шесть узлов, работающих в полном разрешении, ради одной формулы.