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

Прозрачность и premultiply

Кайма по краю — почти всегда путаница между straight и premultiplied. Чем домножить, чем разделить и где альфа теряется по дороге.

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

Альфа — четвёртый канал, мера непрозрачности пикселя, и все её проблемы выглядят одинаково: тёмная или светлая кайма по краю объекта.

Straight (unpremultiplied) Premultiplied
Цвет Полный, независимо от альфы Уже умножен на альфу
Полупрозрачный красный RGB = 1, 0, 0; A = 0,5 RGB = 0,5, 0, 0; A = 0,5
Кто так делает Многие форматы файлов Рендер, композитинг

Композитинг в TouchDesigner рассчитан на premultiplied. Отсюда у Movie File In параметр Pre-Multiply RGB by Alpha с вариантами Off, On и Automatic, а у Constant TOP — Multiply RGB by Alpha. Пришла картинка в другом виде — по краю пошла кайма.

Симптом Что произошло Что делать
Тёмная или цветная грязь по краю логотипа Straight-картинку сложили как premultiplied Домножить: Pre-Multiply RGB by Alpha в Movie File In или Math TOP → Multiply RGB by Alpha
Края слишком тёмные после обработки Картинку домножили на альфу дважды Math TOP → Divide RGB by Alpha (обратно в straight), потом один раз домножить
Прозрачность вообще не работает Композит игнорирует альфу Проверить операцию: Over, а не Add

Большинство случаев исправляют две операции Math TOP — Multiply RGB by Alpha и Divide RGB by Alpha; у Level TOP есть свой переключатель Pre-Multiply RGB by Alpha.

Где альфа пропадает

H.264 и H.265 альфу не несут, прозрачности нужны HAP Alpha, HAP Q Alpha, NotchLC или ProRes 4444 — Кодеки. Если формат альфы не умеет, её записывают серым в нижнюю половину кадра, а в Movie File In включают Bottom Half is Alpha (AAA).

Perform-окно отдаёт RGB, и альфа уходит наружу только в файл, по NDI или Spout. Многие фильтры считают RGB и оставляют альфу как есть, после чего каналы перестают сходиться. И в 8 битах альфа квантуется на 256 уровней — на плавных растворениях видны ступени.

Маска отдельно

Маску часто проще держать одноканальным TOP: памяти меньше, видно её как картинку, отлаживать легче. Matte TOP кладёт первый вход на второй по каналу третьего — то же, что альфа, только явно.

Смотрите на альфу глазами

Viewer Active на TOP, RMB по картинке — в меню вьюера есть показ отдельных каналов, в том числе Alpha. Reorder TOP раскладывает альфу в RGB, чтобы смотреть её дальше по цепочке.

На LED-экране и в проекции прозрачности нет, там светится или не светится. Альфа нужна только внутри проекта до финального композита, а перед выводом всё сводят на непрозрачный фон, иначе процессор экрана покажет что-то своё.

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

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