一次猜測如何計分
Color Hunch 裡的每一次猜測,都按你的顏色與真實顏色相差多遠來計分——不是按你拉動了多少滑桿,而是按人眼看這兩個顏色有多不同。尺度是 CIEDE2000,這一頁解釋它是什麼意思,以及為什麼這個區別重要。
之所以重要,是因為最容易想到的替代方案,錯得讓玩家能感覺出來。
為什麼滑桿距離是錯的尺度
給顏色猜測計分最省事的辦法,是比較滑桿的位置:你的色相離目標有多遠,飽和度差多少。一行程式碼就夠,而它做出的遊戲,人們會悄悄不再信任。
原因是滑桿上相等的移動,對眼睛並不是相等的變化。色相偏十度,在綠色裡刺眼,在深藍裡幾乎看不出來。在淺色上把明度挪一點,人人都看得見;在深色上挪同樣多,幾乎沒人看得見。按滑桿距離計分,會因為你從色相的另一側靠近而扣你分,又會獎勵一次明明看著不對的走運命中。
色差究竟是什麼
色差的測量方式,是把兩個顏色都放進一個專門構造的空間——空間裡的距離對應眼睛看到的差別——再量它們之間的距離。這個數叫 ΔE,即 delta 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)在 CIE 142-2001 中定義。這裡的實作遵循 Sharma、Wu 與 Dalal(2005)的《The CIEDE2000 Color-Difference Formula》——多數實作都以這篇論文為核對基準,用於核對的測試資料也記錄在其中。