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)