Blend-mode. Режим смешивания слоев при наложении друг на друга.


19 Октября, 2016


Blend mode

Функция смешивания B(Cb, Cs), используемая в создании формулы для настройки операций смешивания, может быть любой функцией для фона и исходных цветов, которые дают другой цвет, Cr, как результат.

Стандартные режимы смешивания

Normal – выбранный исходный цвет, игнорирует цвет фона:

B(cb, cs) = cs

Multiply – умножение значений цвета фона и исходного цвета:

B(cb, cs) = cb × cs

Получившийся цвет всегда как минимум такой же темный, как любой из смешиваемых цветов. Умножение (Multiplying) любого цвета с черным, даст черный цвет; умножение с белым, оставит в результате исходный цвет без изменений. Создание последовательных перекрывающихся объектов с цветами отличающимися от черного или белого, в результате даст более темный цвет.

Screen – умножает обратное значение фонового цвета на обратное значение исходного цвета:

B(cb, cs) 	= 1 – [(1 – cb) × (1 – cs)]
= cb + cs – (cb × cs)

Получившийся цвет всегда как минимум такой же светлый, как любой из смешиваемых цветов. Смешивание любого цвета с белым произведет белый; смешивание с черным цветом, оставит в результате исходный цвет без изменений. Эффект похож на проекцию нескольких фото слайдов одновременно на одном экране.

Overlay – умножает (multiplies) или осветляет (screens) цвета, в зависимости от значений цвета фона. Исходные цвета перекрывают фон сохраняя при этом светотень фона. Цвет фона не заменяется, а смешивается с исходным цветом, чтобы отразить осветление и затемнение фонового изображения. Чистый белый и черный цвет фона при смешивании с исходным цветом, в результате останутся без изменений.

B(cb, cs) = HardLight(cs, cb)

Darken – выбирает более темное из фона и исходного цвета:

B(cb, cs) = min(cb, cs)

Цвет фона заменяется исходным цветом, когда исходный цвет темнее; в противном случае он остается без изменений.

Lighten – выбирает более светлое из фона и исходного цвета:

B(cb, cs) = max(cb, cs)

Цвет фона заменяется исходным цветом, когда исходный цвет светлее; в противном случае он остается без изменений.

ColorDodge – увеличивает яркость фона отражая исходный цвет. На черный цвет в фоне исходный цвет не влияет.

B(cb, cs) =  min(1, cb / (1 – cs))	if cs < 1
1 if cs = 1

ColorBurn – затемняет фон отражая исходный цвет. На белый цвет в фоне исходный цвет не влияет.

B(cb, cs) =  1 – min(1, (1 – cb) / cs)	if cs > 0
0 if cs = 0

HardLight – умножает (multiplies) или осветляет (screens) цвета, в зависимости от значений исходного цвета. Эффект похож на резкий свет от прожектора проецируемый на фон.

B(cb, cs) =  Multiply(cb, 2  × cs)	if cs ≤ 0.5
Screen(cb, 2 × cs – 1) if cs > 0.5

SoftLight – затемняет или осветляет цвета, в зависимости от значений исходного цвета. Эффект похож на рассеянный свет от прожектора проецируемый на фон.

B(cb, cs) =  cb – (1 – 2 × cs) × cb × (1 – cb)	if cs ≤ 0.5
cb + (2 × cs – 1) × (D(cb) – cb) if cs > 0.5


where D(x) = ((16 × x – 12) × x + 4) × x if x ≤ 0.25

√x if x > 0.25

Difference – из двух составляющих цветов, вычитает более темный цвет из более светлого цвета:

B(cb, cs) = |cb – cs|

Белый цвет в результате будет инвертирован; черный цвет не даст изменений.

Exclusion – производит эффект, аналогичный режиму Difference, но с меньшим контрастом. Белый цвет в результате будет инвертирован; черный цвет не даст изменений.

B(cb, cs) = cb + cs – 2 × cb × cs

Hue – создает цвет с насыщенностью и яркостью фонового цвета, и оттенком исходного цвета.

B(Cb, Cs) = SetLum(SetSat(Cs, Sat(Cb)), Lum(Cb))

Saturation – создает цвет с оттенком и яркостью фонового цвета, и насыщенностью исходного цвета. В местах где фон имеет чистый серый цвет (no saturation), в этом режиме изменений не будет.

B(Cb, Cs) = SetLum(SetSat(Cb, Sat(Cs)), Lum(Cb))

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

B(Cb, Cs) = SetLum(Cs, Lum(Cb))

Luminosity – создает цвет с оттенком и насыщенностью фонового цвета, и яркостью исходного цвета. Что дает обратный от Collor эффект.

B(Cb, Cs) = SetLum(Cb, Lum(Cs))

Приведенные выше формулы применимы к пространству RGB.

Об авторе

Перевод документа Blend Modes: Addendum

Похожие статьи

Источники

Adobe. Справочник по ActionScript