Как оценивается попытка
Каждая попытка в Color Hunch оценивается по тому, насколько ваш цвет далёк от настоящего — не в ползунках, которые вы двигали, а в том, насколько разными эти два цвета кажутся человеческому глазу. Мера — CIEDE2000, и эта страница объясняет, что это значит и почему различие важно.
Оно важно, потому что очевидная альтернатива ошибается так, что игрок это чувствует.
Почему расстояние ползунка — неверная мера
Простой способ оценить попытку — сравнить положения ползунков: насколько ваш тон далёк от целевого, ваша насыщенность от его. Это одна строка кода, и она даёт игру, которой люди молча перестают доверять.
Причина в том, что равные движения ползунка — не равные изменения для глаза. Десять градусов тона кричат в зелёных и почти незаметны в глубоких синих. Сдвиньте светлоту чуть-чуть в светлом цвете — увидят все; сдвиньте так же в тёмном — почти никто. Оценка по расстоянию ползунка наказывает за подход не с той стороны тона и вознаграждает попадание, которое явно выглядит неверно.
Что на самом деле такое разница цветов
Разницу цветов измеряют, помещая оба цвета в пространство, построенное так, чтобы расстояние в нём соответствовало разнице для глаза, и затем измеряя отрезок между ними. Это число называется ΔE — дельта E, где E от Empfindung, по-немецки «ощущение».
Первая такая формула, CIE76, была прямой между двумя точками в пространстве Lab. Она была настоящим шагом вперёд и имела известные слабости: преувеличивала различия в насыщенных цветах и занижала их в синих. CIEDE2000 — это исправление: добавлены весовые члены для светлоты, цветности и тона, плюс член взаимодействия для синей области, где прежняя формула работала хуже всего.
Что с этим делает Color Hunch
Когда вы отправляете попытку, подобранный вами цвет и цвет, который там должен быть, переводятся из sRGB в Lab, и CIEDE2000 даёт расстояние между ними. Это расстояние становится очками раунда, а звёзды уровня складываются из очков его раундов.
Число, которое вы видите, — процент близости, а не сам ΔE. Это осознанный выбор: ΔE 4,2 не говорит вам ничего, на что можно опереться, тогда как «Близость 87» говорит то же самое в виде, сравнимом с вашей прошлой попыткой. ΔE остаётся там, где ему место — в подсчёте.
Почему одна и та же формула работает везде
Приложение, игровой сервер и этот сайт считают одной и той же реализацией, сверенной по одним и тем же эталонным значениям. Попытка, дающая 87 в браузере, даёт 87 в приложении.
Звучит очевидно и легко ломается: три кодовые базы на трёх языках расходятся, если их ничто не держит вместе. Здесь это тест с фиксированными парами входов и ожидаемыми выходами — если порт расходится с эталоном, падает сборка, а не таблица лидеров тихо теряет смысл.
Что значат значения ΔE
Как грубый ориентир — так выглядит данная разница цветов для человека с нормальным цветовым зрением при приличном свете:
| ΔE | Что вы бы заметили |
|---|---|
| Меньше 1 | Глазом не различить. Оба читаются как один и тот же цвет. |
| От 1 до 2 | Видно натренированному глазу при близком рассмотрении, обычно рядом. |
| От 2 до 10 | Заметно с первого взгляда. Большинство назовёт это двумя оттенками одного цвета. |
| От 11 до 49 | Явно разные, но родственные цвета — красный и слегка оранжевый красный. |
| 50 и выше | Совершенно разные цвета. Никто бы их не спутал. |
Эти диапазоны — соглашение, а не спецификация: так о числах говорят в отрасли, и разные источники проводят границы чуть по-разному. Считайте их способом читать оценку, а не стандартом.
CIEDE2000 определена CIE (Commission Internationale de l'Éclairage) в CIE 142-2001. Реализация здесь следует работе Sharma, Wu и Dalal (2005) «The CIEDE2000 Color-Difference Formula» — статье, по которой сверяют большинство реализаций и в которой описаны использованные для сверки тестовые данные.