Jak oceniany jest strzał
Każdy strzał w Color Hunch oceniany jest po tym, jak daleko twój kolor leży od prawdziwego — nie w suwakach, które przesunąłeś, lecz w tym, jak różne wydają się oba ludzkiemu oku. Miarą jest CIEDE2000, a ta strona wyjaśnia, co to znaczy i dlaczego rozróżnienie ma znaczenie.
Ma znaczenie, bo oczywista alternatywa myli się w sposób, który gracze czują.
Dlaczego odległość suwaka to zła miara
Prosty sposób oceny strzału to porównanie położeń suwaków: jak daleko twój odcień od docelowego, twoje nasycenie od jego. To jedna linia kodu i daje grę, do której ludzie po cichu tracą zaufanie.
Powód: równe ruchy suwaka nie są równymi zmianami dla oka. Dziesięć stopni odcienia krzyczy w zieleniach i jest niemal niewidoczne w głębokich błękitach. Przesuń jasność odrobinę w jasnym kolorze i widzą to wszyscy; przesuń tyle samo w ciemnym i prawie nikt. Ocena po odległości suwaka karze za podejście od złej strony odcienia i nagradza wynik, który wyraźnie wygląda źle.
Czym naprawdę jest różnica kolorów
Różnicę kolorów mierzy się, umieszczając oba kolory w przestrzeni zbudowanej tak, by odległość w niej odpowiadała różnicy dla oka, a potem mierząc dystans między nimi. Ta liczba nazywa się ΔE — delta E, gdzie E pochodzi od Empfindung, po niemiecku «wrażenie».
Pierwsza taka formuła, CIE76, była prostą linią między dwoma punktami w przestrzeni Lab. Była realnym postępem i miała znane słabości: wyolbrzymiała różnice w kolorach nasyconych i zaniżała je w błękitach. CIEDE2000 to poprawka, dodająca człony wagowe dla jasności, chromy i odcienia oraz człon interakcji dla obszaru niebieskiego, gdzie starsza formuła radziła sobie najgorzej.
Co Color Hunch z tym robi
Gdy wysyłasz strzał, ustawiony przez ciebie kolor i kolor, który tam należy, są przeliczane z sRGB na Lab, a CIEDE2000 podaje odległość między nimi. Ta odległość staje się wynikiem rundy, a gwiazdki poziomu biorą się z wyników jego rund.
Liczba, którą widzisz, to procent bliskości, a nie samo ΔE. To wybór celowy: ΔE równe 4,2 nie mówi ci nic, na co możesz zareagować, a «Bliskość 87» mówi to samo w formie porównywalnej z poprzednią próbą. ΔE zostaje tam, gdzie jego miejsce — w punktacji.
Dlaczego wszędzie działa ta sama formuła
Aplikacja, serwer gry i ta strona oceniają tą samą implementacją, sprawdzoną wobec tych samych wartości odniesienia. Strzał, który daje 87 w przeglądarce, daje 87 w aplikacji.
Brzmi oczywiście i łatwo o pomyłkę: trzy bazy kodu w trzech językach rozjeżdżają się, jeśli nic ich nie trzyma razem. Tutaj trzyma je test ze stałymi parami wejściowymi i oczekiwanymi wyjściami — jeśli port odbiega od odniesienia, build pada, zamiast żeby ranking po cichu stracił sens.
Co znaczą wartości ΔE
Z grubsza: tak wygląda dana różnica kolorów dla kogoś z normalnym widzeniem barw, przy przyzwoitym świetle:
| ΔE | Co byś zauważył |
|---|---|
| Poniżej 1 | Nie do rozróżnienia okiem. Oba czyta się jako ten sam kolor. |
| 1 do 2 | Widoczna dla wprawnego oka z bliska, zwykle obok siebie. |
| 2 do 10 | Zauważalna na pierwszy rzut oka. Większość nazwie to dwoma odcieniami tego samego koloru. |
| 11 do 49 | Wyraźnie różne, ale spokrewnione kolory — czerwień i czerwień lekko pomarańczowa. |
| 50 i więcej | Zupełnie różne kolory. Nikt by ich nie pomylił. |
Te przedziały to konwencja, nie specyfikacja: tak dziedzina mówi o tych liczbach, a różne źródła kreślą granice nieco inaczej. Traktuj je jako sposób czytania wyniku, nie jako standard.
CIEDE2000 jest zdefiniowana przez CIE (Commission Internationale de l'Éclairage) w CIE 142-2001. Implementacja tutaj idzie za pracą Sharmy, Wu i Dalala (2005), »The CIEDE2000 Color-Difference Formula« — artykułem, wobec którego sprawdza się większość implementacji i który dokumentuje użyte do tego dane testowe.