Прозрачность и 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 умеет в обе стороны — это и есть тот единственный узел,
который чинит большинство случаев.
Где альфа теряется
- Кодек без альфы. H.264 и H.265 альфу не несут. Нужна прозрачность — HAP Alpha, HAP Q Alpha, NotchLC с альфой, ProRes 4444 — Кодеки.
- Вывод в окно. Perform-окно отдаёт RGB; альфа никуда не уходит, если только вы не пишете картинку в файл или не отдаёте по NDI.
- Операции, которые её не считают. Многие фильтры обрабатывают RGB и оставляют альфу как есть — результат перестаёт сходиться.
- 8-битный формат — альфа тоже квантуется в 256 уровней; на плавных растворениях видны ступени.
Альфа как маска
Часто удобнее держать маску отдельным одноканальным TOP, а не тащить её в альфе:
- меньше памяти (
Monoформат вместо RGBA); - маску видно как картинку, её проще отлаживать;
Compositeв режимеMultiplyилиBlend TOPс третьим входом делают то же самое явно.
Level TOP с включённым Alpha в поле просмотра или Reorder TOP,
раскладывающий альфу в RGB, — быстрый способ увидеть, что там на самом
деле. Половина «мистики» с прозрачностью снимается одним взглядом.
Для LED и проекции
На светодиодном экране и в проекции прозрачности не существует: там либо светится, либо нет. Альфа нужна вам внутри проекта, до финального композита. Перед выводом сведите всё на непрозрачный фон, иначе процессор экрана покажет что-то своё.