Blend Modes.
апреля 25, 2008
Давно хотел написать небольшую статейку по режимам наложения (blend modes), но некий пробел в знании вопроса останавливал меня. Сегодня я наконец узнал, как использовать режимы alpha, layer и erase, поэтому срочно выкладываю всю пачку знаний по вопросу режимы наложения.
Итак. Что это такое? Для тех кто не в курсе – в восьмой версии флеш плеера к обычному наложению клипов по альфа каналу добавилось несколько режимов (как в фотошопе). Говоря проще – режим наложения – это правило: как пиксели верхнего изображения будут накладываться на пиксели нижнего изображения. Что мы имели раньше. Если зеленый квадрат перекрыть красным квадратом – то мы видим красный квадрат. Если последнему задать альфа=50, мы увидим квадрат цвета, напоминающего переспелую оливку на фоне стираного солдатского кителя — это сквозь красный квадрат просвечивет зеленый.
Теперь есть несколько новых правил.
У MovieClip появилось новое свойство – blendMode, достаточно просто присвоить одно из допустимых значений – и результат на лицо (Так же эти режимы можно задавать через Property Inspector в среде разработки). Однако не все так просто. Некоторые режимы очевидны (по крайней мере для тех, кто знаком с photoshop), а некоторые (layer, alpha, erase) весьма загадочны. А разгадка проста – последние три режима имеет смысл использовать только в комплексе. Если вам неитересно знать, как устроены эти режимы – крутите вниз – там есть флешка, где можно все потрогать руками. Если небольшая теоретическая часть вас не пугает – читайте дальше. Глубоко в математику вдаваться не буду, зачастую этого знать и не нужно.
Итак, по порядку. Простые режимы. Для удобства пиксель верхнего изображения обозначим В, нижнего – Н.
- normal -как следует из названия – обычный режим наложения. В перекрывает Н.
- multiply - математика такая: Каждая составляющая RRGGBB B умножается на соответсвующую составляющую Н, затем нормализуется делением на OxFF (RRB * RRH / OxFF, GGВ * GGН / OxFF, BBB * BBH / OxFF). При этом режиме изображение всегда получается темнее, поэтому используется в основном для затемнений.
- screen - Для этого режима берутся инверсные цвета пикселей В и Н, и затем перемножаются. Режим используется для высветления.
- lighten - При этом режиме сопоставляются составляющие RRGGBB и выбирается та, значение которой больше. То есть: newR = Math.max(RRB,RRH), newG = Math.max(GGB,GGH), newB = Math.max(BBB,BBH).
- darken - обратный предидущему – в результирующий цвет попадают составляющие с меньшим значением.
- difference - Из двух составляющих выбирается большая, и из нее вычитается значение меньшей.
- add - поканальное сложение, с потолком в OxFF для каждой составляющей.
- subtract - Поканальное вычитание H из В, с ограничением до 0, для каждой составляющей.
- invert - независимо от цвета В инвертирует цвет Н. Если значение альфа канала пикселя В меньше 0хFF – то результрующий пиксель будет иметь то же значение, соответсвенно накладываться на Н как при обычном альфа наложении.
- overlay - Изменяет цвет в зависимости от яркости Н. Если яркость Н больше 50%, к пикселю применяется screen, иначе – multiply.
- hardlight - то же, но в основу берется яркость В.
Теперь о комплексных режимах. Все описанные выше режимы, могут применяться к клипу самостоятельно. Все режимы, описанные ниже, должны применятся так – клип с комплексным режимом должен содержаться в клипе, к которому применен режим layer. Фактически, этот режим автоматически применяется к клипу, в котором содержиться более одного клипа, и хотя бы к одному из них применен режим, отличный от normal.
- erase - стирает пиксели Н в соответсвии со значением альфа канала В.
- alpha - заменяет значение альфа канала Н значением альфа канала В.
Если вас глубоко заинтересовала математика каждого из процессов – почитайте вот эту статью: Blend Modes of Photoshop & Co.
В следующей флешке также можно понаблюдать работу всех режимов. Большая улитка и радужный градиент содержатся в клипе, к которому применен режим layer. Режимы наложения применяются к клипу с улиткой. маленькая улитка лежит сама по себе, к ней также применяются выбранные режимы.
Popularity: 30% [?]
Entry Filed under: ActionScript,fx,Полезное

3 комментария
1. ALFer | апреля 28, 2008 at 11:58
Классная статья! Сенкс Тебе!
А злобная улитка просто отпад! Такая гроза всех листьев ::)))
2. Lerika | мая 19, 2008 at 14:46
а-а-а… так это улитка
)))
зы: а статья хорошая
3. __i | мая 27, 2008 at 6:57
По поводу режима BlendMode.LAYER
его нужно выставлять ручками если клипы добавлялись программно
(может и всегда нужно устанавливать ручками).
Спасибо за статью, если бы не она я бы еще дня 3 колдовал с BlendMode.ERASE