Как именно работают режимы наложения?

Я сделал некоторую домашнюю работу по поиску в Google, но я все еще не понимаю, как именно работают режимы наложения.

Итак, согласно Википедии , этому посту и этому посту , способ работы режимов наложения заключается в использовании различных формул для значения или яркости пикселей накладываемых и базовых слоев для вычисления результирующего значения или яркости результирующих слоев. Однако ни один из этих источников не уточняет, что означает значение или яркость .

Соответствует ли значение или яркость значению , как в модели HSV, или яркости , как в модели HSL ? Я пробовал смешивать #ff0000 с #00ff00 (оба с яркостью 50%/значением 100%) с режимом умножения, но в результате получился цвет #000000 (яркость 0%/значение). Таким образом, значение или яркость , используемые для режимов наложения, не должны совпадать со значением или яркостью в модели HSV или HSL, верно? Потому что независимо от того, делаете ли вы .5*.5 или .01*.01, результат не будет 0.

Тогда что такое значение или яркость ?

И если режимы наложения зависят исключительно от того, сколько «белого», «черного» или «серого» содержит пиксель (что очень похоже на значение или яркость в моделях HSV или HSL), как это предлагается источниками, которые я здесь цитирую, как определяется оттенок результата ? Как, скажем, #fa0000, умноженное на #064d1e, дает #060000, а не #010600 с тем же значением HSV?

Если подумать, как пара оттенков при смешивании дает другой оттенок? Находится ли оттенок результата точно в центре сегмента, соединяющего его составляющие оттенки «точки» в спектре света или что-то в этом роде? Например, когда вы получаете желтый цвет из красного и зеленого, потому что желтый лежит точно по центру между красным и зеленым?

Я до сих пор ничего не знаю о физике восприятия света и цвета у людей, и я надеюсь, что кто-нибудь сможет просветить меня с точки зрения непрофессионала.

Ответы (1)

Я думаю, что вы неправильно читаете источники, я не могу найти ни одного упоминания о яркости в статье Википедии.

Multiply не использует яркость ни для чего, он делает только то, что говорит олово, он умножает компоненты цвета RGB по компонентам. См., что цвет представляет собой триплет значений от 0 до 1 (или любой другой диапазон, но чтобы не углубляться в битовую глубину, проще всего думать между 0,0 и 1,0). Итак, ваши цвета #ff0000 и #00ff00. Или проще тройки

 R    G   G
1.0, 0.0, 0.0
0.0, 1.0, 0.0

Красные значения становятся 1,0 * 0,0 = 0,0, зеленые — 0,0 * 1,0 = 0,0, а синие — 0,0 * 0,0 = 0,0. Таким образом, вы получаете триплет (0.0, 0.0, 0.0)*ff = #000000.

Теперь, чтобы запутать это, система может учитывать или не учитывать нелинейность цвета. Но это еще одна довольно длинная дискуссия, к которой вы пока не готовы.

Если подумать, как пара оттенков при смешивании дает другой оттенок? Находится ли оттенок результата точно в центре сегмента, соединяющего его составляющие оттенки «точки» в спектре света или что-то в этом роде?

Цвет не имеет ничего общего со спектром. Спектр — это всего лишь частный случай дельта-разброса частот Дирака, поражающего ваш глаз. Вы не сможете понять цвет, если думаете, что цвет — это длина волны света. Потому что это не то, чем является восприятие цвета.

В любом случае, на вопрос нет ответа, он просто зависит от режима наложения. Таким образом, режимы не должны иметь никакого смысла, они полностью искусственны. Не существует такого понятия, как центр сегмента между цветами, просто разные интерпретации того, что это может означать.

Обсуждать, что такое цвет, слишком долго, чтобы включать его сюда под заголовком вопросов.

Википедия использует «значение». Я поймал это. Все еще сбивает с толку.
@ Vun-HughVaw, но значение не имеет ничего общего с яркостью. В данном случае это просто число, связанное с компонентом цвета. Но на самом деле это не относится ни к чему, кроме самого числа.
Просто потому, что это триплет, это не означает, что он не имеет значения, это просто кортеж или какой-то вектор
Я имею в виду, является ли это «значением», используемым в Википедии, или «яркостью», используемым в других источниках, до сих пор не ясно, что означают эти термины. Например, «значение», которое вы используете здесь, кажется, не соответствует «значению», используемому в модели HSV, а это означает, что даже Википедия использует одни и те же слова для двух принципиально разных вещей, и это сбивает с толку. В любом случае, если вы используете какое-то преобразование из RGB (255,0,0) в RGB (1,0,0), это будет близко к тому, что описано в тех двух сообщениях, которые я цитировал. Возможно, авторы просто перепутали терминологию.
Нет, это не то же самое, что значение в HSV, это просто число. Смысл тот же, что и в математическом определении (см. en.wikipedia.org/wiki/Value_(mathematics) ) или «Значением переменной или константы является любое число или другой математический объект, присвоенный ему». Другими словами число.
Все, что я хочу сказать, это то, что тот, кто написал эту часть, должен был уточнить, что они подразумевают под «значением» и как они получают значения в диапазоне от 0 до 1. Цвета, как правило, выражаются в терминах HSL или RGB, поэтому не сразу интуитивно понятно получать значения 0-1.