Такое свойство слоя как непрозрачность, пожалуй, одно из самых используемых в практике, при этом все манипуляции базируются на визуальном контроле за изображением, что очень удобно и наглядно. Простота и естественность процесса плюс недеструктивность привлекает. Использование непрозрачности как свойства присутствует и в настройках кисти.
Непрозрачность можно рассмотреть как один из режимов наложения и было бы нелишним уточнить закономерности, согласно которым слой с изменяемой непрозрачностью взаимодействует с нижележащим или нижележащими слоями.
Напомню, что непрозрачностью «заведует» специальный альфа-канал. В АФ он представлен явно. В ФШ, я думаю, принцип работы тот же. Цветояркостная информация (прошу прощения за это определение, другого не придумал) хранится в трихроматических каналах и от прозрачностей не зависит.
Результирующая непрозрачность двух слоёв определяется как
Ropacity = 1 — (1-Baseopacity)*(1-Blendopacity).
Важное замечание,которое следует из вышепрведенной формулы: если хотя бы один из слоёв будет непрозрачен, результат будет «просвечивать», следует быть внимательным и обращать на это внимание.(Имеется в виду случай, когда фоновый слой Background отсутствует — он по умолчанию 100% непрозрачен).
Это было введение, больше теоретического характера.На практике нас больше интересует яркость, получающаяся в результате наложения мазков кисти. Она (эта яркость) определяется по формуле :
« Формула имеет один и тот же вид для 8-битного режима и отнормированной яркости, где: s — яркость исходного изображения; с — яркость корректирующего изображения; r — яркость финального изображения; k — значение параметра Opacity в процентах.
При изменении порядка наложения слоев результат сохраняется, если непрозрачность верхнего слоя изменить на 100-k. ».
Формула и пояснение к ней взята без разрешения из статьи Андрея Журавлёва «Режимы наложения. Методика анализа» .
Рассмотрим пример, где в качестве испытуемого взята кисть серая R=63,G=63,B=63 в RGB или L=25 в HSL цветовой модели с непрозрачностью 20%.
Непрозрачность вычислим : Ropacity = 1 — (1-Baseopacity)*(1-Blendopacity), а яркость соответственно: R=Base+(Blend-Base)* Opacity/100
1-(1-0)*(1-0,2)=1-1*0,8=0,2
1-(1-0,2)*(1-0,2)=1-0,8*0.8=1-0.64=0.36
1-(1-0,36)*(1-0,2)=1-0.64*0,8=0,488~0,49
1-(1-0,49)*(1-0,2)=1-0,51*0,8=0,592~0,59 …
Непрозрачность отнормирована к единице.
100+(25-100)*0,2=100+(-75)*0,2=100-15=85
85+(25-85)*0,2=85+(-60)*0,2=85-12=73
73+(25-73)*0,2=73+(-48)*0,2=73-9,6=63,4 ~ 63
63+(25-63)*0,2=63+(-38)*0,2=63-7,6=55,4 ~ 55 …
255+(63-255)*0,2=255-192*0,2=255-38,4=216,6~ 217
217+(63-217)*0,2=217-154*0,2=217-30,8=186,2 ~ 186
186+(63-186)*0,2=186-123*0,2=186-24,6=161,4 ~ 161 …
Если использовать цвет кисти чёрный (на белом фоне),то есть R=G=B=0 или L=0 , (ну к примеру вспомните манипуляции с масками,) ситуация ещё больше упростится. Непрозрачность по прежнему 20%.
Каждый следующий мазок кисти поверх предыдущего формирует яркость равную произведению отнормированной к единице яркости предыдущего мазка и инвертированного значения прозрачности кисти, проще глянуть на формулу, чем вникать в вышенаписанное — и так бывает:
Lp= Ln-1*(1-Opacity) ,
то есть инвертируем прозрачность 1-0,2=0,8 и множим на неё результат с каждым новым мазком кисти.
1*0.8=0.8
0.8*0.8=0.64
0.64*0.8=0.51
0.51*0.8=0.41
0.41*0.8=0.33 …. .
Кстати, учитывая исходную формулу, понятно, что сколько бы мазков мы не делали, закрасить до полностью чёрного у нас не получиться.
В цвете картина похожая, правда есть ньюансы, которые разбираться не будут. Не хочу.
В общем, почему-то многие думали и думают (я, кстати, тоже когда-то так считал), что мазки кисти просто суммируют непрозрачности. Оказалось нет, о чём собственно и предоставленная Вашему вниманию заметка.
Всё.
PS.Савсэм забыл.Ссылка на хорошее видео по теме (на английском,извините): About the Opacity Blend Mode