字體渲染策略的發展趨勢是什麼?

我是看到這篇文章才想到這個問題的:

http://www.smashingmagazine.com/2012/04/24/a-closer-look-at-font-rendering/

理想的形狀(左),黑白渲染(中)及灰度渲染(右)

彩色像素增加了解析度

我的理解是字體渲染策略的發展遵循 黑白渲染》灰度渲染》次像素渲染 這樣的趨勢,從第二張圖也可以看出次像素渲染較灰度渲染使字看起來更圓滑。那為什麼 ios 使用灰度渲染? 難道說次像素渲染只是 ppi 達不到要求時的一種妥協?


字體渲染策略談不上什麼「發展趨勢」。你提到的這幾種策略只是硬體技術發展過程中的幾種向硬體設備能力妥協的 hacking 策略而已,這些都是必然被歷史車輪碾碎的臨時階段。

我們平時說的「字體渲染」實際上主要指的就是把輪廓字體柵格化,即把矢量圖形轉換為點陣圖,這事兒很平白。

你提到這這幾個 hacking 策略都是在彌補顯示設備解析度不夠高的問題。

Hinting、gridding 之類的事情是另一個方面了,在此不說。

  • 最初,因為顯示器的像素密度不夠高,所以如果只把輪廓柵格化為 1 bit 的黑白點陣圖,那麼鋸齒很明顯,精度也太低,難以體現字體設計原貌;如果做灰度抗鋸齒,那麼既消耗系統資源,效果又不好(最早的顯示器像素密度太低了)。所以最初的屏幕字體都是點陣字體,人工安排黑白像素來達到最佳效果。後來用 hinting 來教字體渲染引擎怎麼把字體輪廓扭曲一下再柵格化。

  • 後來隨著顯示設備解析度提高了一些,計算能力提高了一些,電腦成熟了一些,對屏幕字體的要求高了一些,開始使用灰階抗鋸齒(灰階反走樣)。灰度抗鋸齒的機制非常容易理解,很有道理,應用也很普遍,不過我還是覺得它是一種 hacking 策略。用灰度抗鋸齒使柵格化結果平滑多了,小字型大小時有了更多的信息容量,可以傳達更多細節,大字型大小時字體邊緣更平滑。

  • 後來,隨著 CRT 顯示器慢慢被 LCD 顯示器取代,亞像素和像素的位置關係更簡明、可預測了,於是人們開始利用僅有像素 1/3 大小的亞像素來變相提高顯示設備的解析度,這是亞像素抗鋸齒(亞像素反走樣)。這就是很典型的 hacking 了,頗受爭議。

我心目中未來理想的字體渲染策略當然是如印刷介質一樣的 1 bit 黑白——未來顯示設備的解析度或許會足夠高,於是不需要任何抗鋸齒了。

或者,就只用簡單的灰階抗鋸齒。

亞像素抗鋸齒永遠都會讓字體細節更豐富,讓邊緣更平滑,但它實在比較臟。


為什麼ios用灰度渲染以前有過討論:

為什麼 iOS 設備文字渲染方式不是次像素渲染? http://www.zhihu.com/question/20164367

未來的屏幕發展極致的話,就不需要渲染了,直接黑白2色像素柵格化輸出都能很清晰,這就是我眼中的趨勢


補充 @梁海。目前印刷品並不是 1bit 黑白。也不是純靠拼 ppi。印刷品的像素大小是可變的。其實已經不能稱為像素,只是在特定位置出現的色粒。這個和 Kindle 的 e-ink 類似,e-ink 屏幕雖然解析度低,但是每個像素可以採用可變大小的黑色體。


推薦閱讀:

哪種字體最適合在電腦屏幕上閱讀?
為何某些中文字體的設計下部會留下很多行距?
chrome 字體發虛模糊是因為什麼?
繁體字真的美觀嗎?

TAG:字體 | 字體渲染 |