Duplex effect
- From
- Boris Rudakov (2:5054/9.4)
- To
- All (2:5054/9)
- Date
- 1999-10-07T11:21:28Z
- Area
- SU.GRAPHICS
Hello All!
Есть такой графический эффект - Дуплекс. Кто не в курсе - это раскраска монохромного изображения. Красивейшая весч, между прочим.
Так вот, у меня вопрос по его реализации.
В реализации эффекта все понятно и прозрачно кроме одного - как работать с "перекрывающими красками" (overprint). По-крайней мере так это называется в Кореле, как в Фотожопе - забыл уже. Т.е. я долго-долго экспериментировал и у меня на основе наблюдений зашевелились смутные подозрения что это и как оно себя ведет, но...
Я тут сам попробовал написать дуплекс. Он похож, очень похож. Наверное, даже имеет самостоятельную ценность, но видимо из-за этих вот самых перекрывающих красок внешне выглядит не совсем так.
Короче:
1. Рассматриваем все цвета в виде нормализованых, т.е. не 0..255, а 0..1 - так проще. Для упрощения пока будем обозначать цвет одним числом (где одно - там и три и четыре, не принципиально).
2. Имеем цвет бумаги. Допустим в заданной точке она имеет цвет B.
3. Имеем в заданной точке цвет монохромного изображения K, который является коэфициентом смешения цветов краски и бумаги.
4. Я сейчас вычисляю конечный цвет как:
4.1. Если имеем одну краску с цветом в заданной точке P0:
Out = B * K + P0 * (1 - K)
Сакральный смысл: K у нас от 0 до 1, поэтому умножив на него цвет бумаги (белый) мы получим "белый" цвет там где он таким и должен быть и "черный" там где он и был. Умножив на (1- К) цвет краски, мы сделаем все наоборот: там где изображение белое - краски нет, там где оно было черным - краски лежит максимум.
4.2 Имеем N красок, имеющих в заданной точке цвета P0..Pn:
Out = B * K + Sum(P0..Pn) / N * (1 - K)
Сакральный смысл: краски при наложении смешиваются. Просто смешиваются. Поэтому в каждой данной точке цветность является их средним арифметическим. Ну а (1-K) играет все ту же роль.
Проблема:
Как я заподозрил из наблюдений над Корелом, я неправильно считаю наложение красок друг на друга - с наложением на бумагу полный порядок. Там явно что-то отличное от среднего арифметического. Для двух красок Pi и Pj больше всего смахивает на то, что формула такова:
Out = B * K + (1 - K) * \\ Эта часть как и раньше
(max(Pi, Pj) * Mij + (1 - Mij) * Pij)
Где: Pij - перекрывающая краска,
Mij = abs(Pi - Pj)
Сакральный смысл: там где красок равное количество, вместо них печатается перекрывающая, там где наличествует только одна краска - она и печатается, в остальных местах печатается та краска которой больше в смеси с перекрывающей, где доля перекрывающей тем больше, чем ближе значения смешиваемых красок.
Ремарка: как я подозреваю, ноги зресь первоначально росли из химии - натипа имеем оранжевую и синюю краски, если их смешать - выйдет черная. Т.е. если одной краски много, а другой мало - типа порядок, но если их примерно поровну - черная. Ну или зеленая :) Натипа если смешать желтую и красную краски, то выйдет зеленая, отчего бы и нет ? :)
Однако, это все понятно только для двух красок. Не понятно для N. Дело в том, что Корел для 3-х красок позволяет задать ЧЕТЫРЕ перекрывающих:
1+2, 2+3 и 1+2+3
Для четырех же это уже 11:
1+2, 1+3, 1+4,
2+3, 2+4,
3+4,
1+2+3, 1+2+4,
1+3+4, 2+3+4,
1+2+3+4
Полный перебор. ЧЕГО ? Я что, должен попарно смешивать все краски, а потом ? Что мне далать с тройками ? А с четверкой ?
Короче, чего-то я пока въехать не могу :( Окончательный цвет, провались он, похоже вычисляется по совсем страшной формуле, но по какой ?
Кто чего по этому поводу знает ?
Борис Рудаков, Ночь, улица, фонарь, аптека -
BBR практически не видно ни одного человека...
--- Be happy: BBR is looking at you !
* Origin: АлкАголь малыми дозами безвреден в любых количествах (2:5054/9.4)