Введение
Цифровой композитинг — это процесс цифровой сборки нескольких изображений для создания финального изображения, как правило, для печати, кино или отображения на экране. Это цифровой аналог оптического компоновки киноплёнки. Это часть обработки визуальных эффектов.
Алгебраические свойства
Когда необходимо объединить множество частично прозрачных слоев, стоит рассмотреть алгебраические свойства используемых операторов композиции. В частности, ассоциативность и коммутативность определяют, когда повторного вычисления можно или нельзя избежать. Рассмотрим случай, когда у нас есть четыре слоя, которые необходимо объединить для получения финального изображения: F = A * (B * (C * D)), где A, B, C, D – частично прозрачные слои изображения, а "*" обозначает оператор композиции (при этом левый слой находится поверх правого). Если изменяется только слой C, необходимо найти способ избежать повторного объединения всех слоев при вычислении F. Без каких-либо специальных соображений потребуется выполнить четыре полных операции объединения изображений. Для коммутативных операторов композиции, таких как аддитивное смешивание, безопасно переупорядочивать операции объединения. В этом случае можно вычислить T = A * (B * D) только один раз и затем просто объединить T * C, чтобы получить F, выполнив всего одну операцию. К сожалению, большинство операторов не являются коммутативными. Однако многие из них ассоциативны, что позволяет предположить, что безопасно перегруппировать операции в F = (A * B) * (C * D), то есть не меняя их порядок. В этом случае можно вычислить S := A * B один раз и сохранить этот результат. Чтобы сформировать F с ассоциативным оператором, потребуется всего две дополнительные операции композиции для интеграции нового слоя S, вычислив F := S * (C * D). Это выражение означает объединение C со всеми слоями, находящимися ниже него, за один шаг, а затем объединение всех слоев, находящихся выше, с предыдущим результатом для получения финального изображения на втором шаге. Если все слои изображения регулярно меняются, но многие слои все еще необходимо объединять (например, при распределенном рендеринге), коммутативность оператора композиции все еще можно использовать для ускорения вычислений за счет параллелизма, даже если предварительное вычисление не дает выигрыша. Снова рассмотрим изображение F = A * (B * (C * D)). Каждая операция композиции в этом выражении зависит от следующей, что приводит к последовательному вычислению. Однако ассоциативность позволяет нам переписать F = (A * B) * (C * D), где явно есть две операции, не зависящие друг от друга и которые могут быть выполнены параллельно. В общем случае можно построить дерево попарных операций композиции с высотой, логарифмически зависящей от количества слоев.
Программное обеспечение
Наиболее исторически значимой нелинейной системой компоновки был Cineon, работавший в логарифмическом цветовом пространстве, которое точнее соответствует естественной светочувствительности пленочных эмульсий (Система Cineon, разработанная Kodak, больше не выпускается). Из-за ограничений скорости обработки и объема памяти художники по компоновке обычно не могли позволить себе, чтобы система выполняла промежуточные преобразования в линейное цветовое пространство для этапов компоновки. Со временем эти ограничения стали менее существенными, и теперь большинство компоновки выполняется в линейном цветовом пространстве, даже если исходные изображения находятся в логарифмическом цветовом пространстве. Компоновка часто также включает масштабирование, ретушь и цветокоррекцию изображений.
Композиция на основе узлов и слоев
Существует два принципиально разных цифровых рабочих процесса композитинга: композитинг на основе узлов и композитинг на основе слоев. Композитинг на основе узлов представляет собой весь композит в виде направленного ациклического графа, связывающего медиа-объекты и эффекты в процедурной карте, интуитивно отображая последовательность преобразований от исходного материала к конечному результату. Фактически, именно так все приложения для композитинга внутренне обрабатывают композиты. Этот тип интерфейса обеспечивает большую гибкость, включая возможность изменять параметры предыдущего этапа обработки изображения "в контексте" (непосредственно при просмотре финального композита). Программные пакеты для композитинга на основе узлов часто испытывают трудности с ключевыми кадрами и временными эффектами, поскольку их рабочий процесс не основан напрямую на временной шкале, в отличие от пакетов для композитинга на основе слоев. Программное обеспечение, использующее интерфейс на основе узлов, включает Natron, Shake, Blender, Blackmagic Fusion и Nuke. Узлы – отличный способ организовать эффекты в сложном кадре, сохраняя контроль над мелкими деталями. Композитинг на основе слоев представляет каждый медиа-объект в композите как отдельный слой во временной шкале, каждый со своими временными границами, эффектами и ключевыми кадрами. Все слои располагаются друг над другом в любом желаемом порядке, при этом нижний слой обычно рендерится как основание в конечном изображении, а каждый последующий слой рендерится поверх ранее откомпозированных слоев, поднимаясь вверх, пока все слои не будут объединены в финальный композит. Композитинг на основе слоев очень хорошо подходит для быстрой 2D и ограниченной 3D графики, например, в моушн-дизайне, но становится громоздким для более сложных композитов, содержащих множество слоев. Частичным решением является возможность некоторых программ визуализировать порядок композиции элементов (таких как изображения, эффекты или другие атрибуты) с помощью диаграммы, называемой блок-схемой, а также встраивать композиции, или "компы", непосредственно в другие композиции, тем самым усложняя порядок рендеринга: сначала происходит композитинг слоев в исходной композиции, затем полученное изображение объединяется со слоями из последующей композиции и так далее.