К содержанию
fohbook/ TouchDesigner
уверенный

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

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

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

Premultiplied и straight

Есть два способа хранить цвет вместе с альфой:

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

TouchDesigner внутри работает с premultiplied. Когда картинка приходит снаружи в другом виде — появляется кайма.

Симптомы и лечение

Симптом Что произошло Что делать
Тёмная кайма по краю логотипа Straight-картинку сложили как premultiplied Premultiply TOP в режиме Multiply
Светлый ореол Дважды умножили на альфу Premultiply TOP в режиме Divide (unpremultiply)
Полупрозрачное выглядит блёкло То же самое, обратный случай Проверить порядок операций
Прозрачность вообще не работает Композит игнорирует альфу Проверить операцию: Over, а не Add

Premultiply TOP умеет в обе стороны — это и есть тот единственный узел, который чинит большинство случаев.

Где альфа теряется

  1. Кодек без альфы. H.264 и H.265 альфу не несут. Нужна прозрачность — HAP Alpha, HAP Q Alpha, NotchLC с альфой, ProRes 4444 — Кодеки.
  2. Вывод в окно. Perform-окно отдаёт RGB; альфа никуда не уходит, если только вы не пишете картинку в файл или не отдаёте по NDI.
  3. Операции, которые её не считают. Многие фильтры обрабатывают RGB и оставляют альфу как есть — результат перестаёт сходиться.
  4. 8-битный формат — альфа тоже квантуется в 256 уровней; на плавных растворениях видны ступени.

Альфа как маска

Часто удобнее держать маску отдельным одноканальным TOP, а не тащить её в альфе:

  • меньше памяти (Mono формат вместо RGBA);
  • маску видно как картинку, её проще отлаживать;
  • Composite в режиме Multiply или Blend TOP с третьим входом делают то же самое явно.
Смотрите на альфу глазами

Level TOP с включённым Alpha в поле просмотра или Reorder TOP, раскладывающий альфу в RGB, — быстрый способ увидеть, что там на самом деле. Половина «мистики» с прозрачностью снимается одним взглядом.

Для LED и проекции

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

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