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

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

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

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

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

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

В большинстве представленных формул арифметические операции производятся над RGB-компонентами изображения соответственно: для красного, зелёного и синего каналов (A+B=RAGABA+RBGBBB). Традиционное использование промежутка 0..255 для значений RBG-компонент нормализовано, то есть пропорционально преобразовано в промежуток 0..1. Так, например, CC16=204100..255=0.8100..1. При этом результат вычислений не может выйти за границы указанного промежутка.

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

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

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

 — операция некоммутативна.

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

Обычный (Normal)

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

Формула: C=A

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

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

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

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

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

Формула (): C={A,if BAB,if B>A

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

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

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

Формула (): C=A×B

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

Формула (): C=11BA

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

Формула (): C=A+B1

Темнее (Darker Color)

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

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

Формула: C={A,if YBYAB,if YB>YA

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

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

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

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

Формула: C={B,if BAA,if B>A

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

Формула: C=1(1A)×(1B)

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

Формула: C=B1A

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

Формула: C=A+B

Светлее (Lighter Color)

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

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

Формула: C={2×A×B,if B0.512×(1A)×(1B),if B>0.5

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

Формула: C={(2×A1)×(BB2)+B,if A0.5(2×A1)×(BB)+B,if A>0.5

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

Формула: C={2×A×B,if A0.512×(1A)×(1B),if A>0.5

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

Формула: C={1(1B)2×A,if A0.5B2×(1A),if A>0.5

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

Формула: C=B+2×A1

Примечания

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

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