Русская Википедия:Методы наложения (компьютерная графика)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Методы наложения (англ. Blend modes, также Mixing modes — методы смешивания) в компьютерной графике используются при редактировании цифровых изображений для определения того, как слои изображения взаимодействуют или смешиваются друг с другом. Под слоями понимаются не только отдельные слои изображения, но также и инструменты редактирования внутри одного слоя такие как кисть, заливка и другие.

Существует 27 основных методов наложения, которые разбиты на 7 групп: обычные, затемнение, осветление, контраст, инверсия, отмена и компонентная группа.

Условные обозначения

<math>A</math> — передний слой, <math>B</math> — задний слой, <math>C</math> — полученный результат.

В большинстве представленных формул арифметические операции производятся над RGB-компонентами изображения соответственно: для красного, зелёного и синего каналов (<math>A + B = R_AG_AB_A + R_BG_BB_B</math>). Традиционное использование промежутка <math>0..255</math> для значений RBG-компонент нормализовано, то есть пропорционально преобразовано в промежуток <math>0..1</math>. Так, например, <math>CC_{16} = 204_{10}^{0..255} = 0.8_{10}^{0..1}</math>. При этом результат вычислений не может выйти за границы указанного промежутка.

Методы компонентной группы используют HSV-компоненты.

<math>Y</math> — яркость. Яркость используется в некоторых

<math>\leftrightarrow</math> — коммутативная операция, то есть результат <math>C</math> не зависит от взаимного расположения слоёв <math>A</math> и <math>B</math>.

<math>\nleftrightarrow</math> — операция некоммутативна.

Обычная группа (Normal group)

Обычный (Normal)

Обычный метод наложения используется по умолчанию в большинстве графических редакторов. Изображение на переднем слое полностью перекрывает стоящее за ним.

Формула: <math>C = A</math>

Затухание (Dissolve)

Отличается от обычного метода наложения только при уменьшении параметра непрозрачности переднего слоя. Фронтальное изображение затухает не равномерно, а случайно: для каждого пикселя изображения переднего слоя случайным образом определяется, останется ли она окрашенной в оригинальный цвет, либо примет цвет пикселя изображения с заднего слоя. Чем ниже показатель непрозрачности, тем больше вероятность пикселя переднего изображения сменить цвет.

Затемнение (Darken group)

Затемнение (Darken)

Данный метод поканально сравнивает два смешиваемых изображения и из каждой соответственной пары выбирает канал с более низким значением.

Формула (<math>\nleftrightarrow</math>): <math>C = \begin{cases} A, & \text{if }B \leq A \\ B, & \text{if }B > A \end{cases}</math>

Умножение (Multiply)

Каждый компонент одного слоя умножается на соответствующий компонент другого слоя и результат объединяется в изображение. Поскольку для вычислений берётся нормализованный промежуток <math>0..1</math>, получившееся изображение получается темнее исходных, если хотя бы одно из них не состоит целиком из белого цвета, равного 1. В случае смешивания с изображением чёрного цвета результат всегда будет равен 0.

Коммутативность данного метода наложения вытекает из коммутативности операции умножения.

Формула (<math>\leftrightarrow</math>): <math>C = A \times B</math>

Выжигание цвета (Color Burn)

Формула (<math>\nleftrightarrow</math>): <math>C = 1 - \frac{1 - B}{A}</math>

Линейное выжигание (Linear Burn)

Формула (<math>\leftrightarrow</math>): <math>C = A + B - 1</math>

Темнее (Darker Color)

Похож на Darken, но сравнивание производится не для каждого RGB-канала изображения отдельно, а для композитного канала целиком. Сравнивание происходит по показателю яркости, который вычисляется по формуле <math>Y = 0.3R + 0.59G + 0.11B</math>, где <math>Y</math> — яркость, <math>R</math> — красный канал, <math>G</math> — зелёный канал, <math>B</math> — синий канал.

Поскольку выбор изображения идёт из композитных каналов двух смешиваемых слоёв, а не по отдельным каналам, данный метод наложения не создаёт новые цвета, в отличие от Darken метода.

Формула: <math>C = \begin{cases} A, & \text{if }Y_B \leq Y_A \\ B, & \text{if }Y_B > Y_A \end{cases}</math>

Осветление (Lighten Group)

Методы этой группы по сути действия прямо противоположны методам из группы затемнения.

Осветление (Lighten)

Как и Darken сравнивает соответствующие каналы смешиваемых изображений, но выбирает большее значение из двух.

Формула: <math>C = \begin{cases} B, & \text{if }B \leq A \\ A, & \text{if }B > A \end{cases}</math>

Экранирование (Screen)

Формула: <math>C = 1 - (1 - A)\times(1 - B)</math>

Выгорание цвета (Color Dodge)

Формула: <math>C = \frac{B}{1 - A}</math>

Линейное выгорание (Linear Dodge), иногда Сложение (Add)

Формула: <math>C = A + B</math>

Светлее (Lighter Color)

Контрастная группа (Contrast group)

Перекрытие (Overlay)

Формула: <math>C = \begin{cases} 2\times A \times B, & \text{if }B \leq 0.5 \\ 1 - 2 \times (1 - A) \times (1 - B), & \text{if }B > 0.5 \end{cases}</math>

Мягкий свет (Soft Light)

Формула: <math>C = \begin{cases} (2 \times A - 1) \times (B - B^2) + B, & \text{if }A \leq 0.5 \\ (2 \times A - 1) \times (\sqrt B - B) + B, & \text{if }A > 0.5 \end{cases}</math>

Жёсткий свет (Hard Light)

Формула: <math>C = \begin{cases} 2 \times A \times B, & \text{if }A \leq 0.5 \\ 1 - 2 \times (1 - A) \times (1 - B), & \text{if }A > 0.5 \end{cases}</math>

Яркий свет (Vivid Light)

Формула: <math>C = \begin{cases} 1 - \frac{(1 - B)}{2 \times A}, & \text{if }A \leq 0.5 \\ \frac{B}{2 \times (1 - A)}, & \text{if }A > 0.5 \end{cases}</math>

Линейный свет (Linear Light)

Формула: <math>C = B + 2 \times A - 1</math>

Примечания

Шаблон:Примечания

Шаблон:Нет ссылок Шаблон:Изолированная статья