[情報] Firefox和Chrome的字體渲染效果

作者: mayuyu ((・ω・)ノ)   2015-02-02 23:14:53
先放幾張字體渲染效果
圖(1920x1080)不能放大縮小要1:1(100%)顯示才不會模糊失真
Firefox
http://i.imgur.com/B2JdEBX.png
Chrome
http://i.imgur.com/p0r5sxI.jpg
Firefox
http://i.imgur.com/4QI1tSt.png
Chrome
http://i.imgur.com/07DdUR4.png
Firefox
http://i.imgur.com/pLwbWtN.png
Chrome
http://i.imgur.com/f7vCBls.png
Firefox
http://i.imgur.com/dMQtuaa.png
Chrome
http://i.imgur.com/5P458zV.jpg
日文
http://i.imgur.com/701yoqG.png
簡中
http://i.imgur.com/pLnHXJC.png
好讀
http://i.imgur.com/p6mdoYz.png
我平常看文章的瀏覽器都是用火狐,因為火狐很早就支援
微軟的DirectWrite字體渲染加速,在以前的時候
如果系統沒有用Mactype另外做字體渲染,Chrome開起來的字體
實在不能看,文字的線條很細,顏色淡到快看不到,而且邊緣支離破碎,
線條比較密集的文字就會整個黏在一起、糊成一團。
所以那時候兼顧瀏覽器硬體加速的效能,還要看起來輕鬆易讀不傷眼,
我最好的選擇就是用火狐來閱讀文章,同時可以搭配ScrapBook來擷取網頁。
後來Chrome也開始支援DirectWrite,但是早期支援的效果很差,
文字破碎得更嚴重,有些系統甚至會發生文字消失,介面變成一片空白的情況,
所以當時大家都是進chrome://flags,把實驗性的DirectWrite功能給停用。
又過了一段時間,Chrome的DirectWrite終於到了可以正常使用的程度了,
而且預設也改成是開啟的,但是很可惜Chrome沒有開放參數給大家調整,
字體渲染的效果和強度都是固定的,使用者不能隨自己的喜好改變。
我當時有比較了一下Fx和Chrome的渲染效果,覺得自己調整後
還是Fx看起來稍微好一點,再加上Fx有二個模擬平板觸控拖曳滑動的擴展,
可以在網頁上任何位置用拖曳或滾輪的方式來慣性滑動或滾動畫面
(請參考#1KiIIJVN),用桌機版瀏覽器看Pocket、Evernote Clearly、
Instagram、Pinterest、Twitter、Facebook等網頁,可以自由的拖曳滑動,
就像用手機版一樣方便,再搭配Imagus圖片預覽擴展,滑鼠游標移到圖片上
就可以預覽原始大圖,看500px、Flickr等圖片網站甚至更方便。
雖然Chrome也有類似的擴展,但是我覺得Fx版的比較好用,滑動更順暢。
再加上FireGestures的手勢操作幾乎無所不能,實在太好用,
(我很少需要去點擊標籤頁來開關分頁、跳轉分頁,也沒有按過
上下一頁的按鈕來前進後退,都是在原地畫手勢就可以完成這些操作)
所以後來仍然繼續使用Fx作為主要的閱讀工具。
幾個星期前,我突然注意到同樣開啟美好的一天首頁
http://skyinc.net/zh-tw/
Fx的字體渲染很慘,天氣和時鐘的數字邊緣都是鋸齒狀,
可是用Chrome開同一個網頁,數字的邊緣卻非常的平滑
http://i.imgur.com/j4E13Zq.jpg
很奇怪,看起來好像Fx的字體在這個網頁上沒有成功渲染,
但是Chrome也未免太平滑了吧?!
因為實在太奇怪了,所以我研究了一下,
結果發現差異是在於我使用的t7yang大寫的字體替換樣式
「KillSerif 明蘭秀月 Style v3.0」(#1JodN9L7)
將網頁常用的襯線字體替換為自己指定的無襯線字體,
讓網頁看起來更美觀、清楚,變得更好閱讀。
這個樣式最後有一個為字體加上陰影(稍微加粗加黑)的效果
/* 文字陰影效果,開啟後會有文字加粗的感覺,粗度建議範圍0.001~0.01em */
body {
text-shadow: 0 0 0.001em;
}
我有把它打開,Chrome開啟這個css渲染後,渲染效果非常強,
字體已經可以開始感覺到有一點霧霧的,但是還不到非常模糊的程度,
而且這樣顯示起來的效果字體邊緣非常平滑
而Fx同樣用0.001em,渲染效果卻很微弱,
我試了調整0.001em~0.014em,看起來效果完全一樣,沒有變化。
但是調整到0.015em的時候,渲染效果就突然增強了,瞬間跳了一級,
字體也變得非常平滑,但是卻比Chrome模糊一點,
也就是說渲染強度排起來比較的話:
Fx0.001em~0.014em < Chrome0.001em < Fx0.015em
Fx從0.014em到0.015em一下子就四捨五入跳了很大的一級,
沒有像Chrome0.001em那樣中間的效果。
所以我覺得很傷腦筋,Fx調0.014em效果太弱,調0.015em效果又太強。
我嘗試調整Fx的about:config裡面的gfx.font_rendering.cleartype.*
這一群調整字體渲染效果的設定,嘗試把硬體渲染的效果改銳利一點。
然後也換過css渲染的單位,改成text-shadow: 0 0 0.21px;
但還是沒有辦法,一經過css渲染以後,渲染的效果還是太強,
最終顯示的結果字體還是會變得霧霧的。
我已經很久沒有使用Mactype來渲染Fx,一直都是用Fx的硬體加速渲染。
百般無奈之下,我只好關閉Fx的硬體加速(Direct2D),
讓Fx可以使用系統上的Mactype的渲染,用Mactype來試試看
能不能取得折衷的效果。
只要在Fx的選項設定中,把「可用時開啟硬體加速」這個選項取消勾選,
Mactype就可以成功渲染Fx。
但是用這個方法取消硬體加速會連OMTC圖層合成加速的功能也一起失效,
也就是layers.acceleration.disabled這一項參數會被設為true。
所以我不是直接取消勾選,而是在about:config中,單獨關閉Direct2D,
把gfx.direct2d.disabled設為true,重新啟動Fx。
這樣子就可以保留OMTC加速的功能,單獨關閉Direct2D和DirectWrite。
如果成功的話,在about:Support裡面會顯示
「已啟用 DirectWrite」false
「GPU 加速視窗」1/1 Direct3D 11 (OMTC)
「AzureCanvasBackend」skia
「AzureContentBackend」cairo
「AzureFallbackCanvasBackend」cairo
Azure圖形處理引擎的介面會從Direct2D變成skia/cairo,
同時「已啟用 DirectWrite」會顯示false,
但是「GPU 加速視窗」會顯示1/1,使用Direct3D或者是OpenGL,
如果這一項顯示的是0/1 Basic (OMTC),代表OMTC加速啟用失敗。
使用Mactype渲染美好的一天
Firefox
http://i.imgur.com/2mdCt4K.jpg
看起來很完美。
不過我遇到幾個以前沒遇過的問題:
1. 新版的Fx改用skia/cairo + OMTC後,會變得很不穩定。
我使用的是pcxfirefox 35.0.1 x64的版本,
切換標籤頁的時候常常會發生卡住的現象,
Fx會暫時失去回應,而且時常發生閃退,程式會自己關閉。
我翻了一下bugzilla,目前已知skia/cairo在雙GPU上會發生問題,
同時也已經在37a版修復這個bug,可是我是單GPU 囧
或者是我使用的x64 + Mactype渲染組合的問題,
可能x86不會發生這個現象,我沒有測試。
2. 我將字體改為「明蘭」和「秀月」,結果Fx啟動的時候,
不會馬上載入無襯線的明蘭字體,英數字會變成有襯線,
要等經過120秒以後,英數字才會變回無襯線。
解決的方法:
將gfx.font_loader.delay的數值由120000改為1000(一秒鐘)
你可以自己修改延遲的時間長短。
3. 經過Mactype渲染後,網址列和標籤頁的文字會被削頭。
文字的頂端會有一部份不見,看起來好像被切掉一樣。
解決的方法:
Mactype新版有為這個問題提供一個參數作修正,
把下面的參數加到Mactype的ini設定裡:
;指定對Firefox.exe做文字削邊的修正
[Experimental@Firefox.exe]
ClipBoxFix=1
加了這個參數以後,網址列和標籤頁削頭的現象就修正了,
但是我發現在某些網頁上,會變成文字的底端有輕微的削邊現象。
4. BBSFox裡移動游標的時候頁面更新會產生字體劇烈抖動的現象。
同時版面顯示,左右會稍微的擴大。
尤其是在BBSFox底下,OMTC + skia/cairo + Mactype更容易發生閃退的現象,
有時候剛開啟Fx,打開BBSFox滑沒幾下,Fx就瞬間閃退了Orz
所以雖然真的很好看,我用一用還是換回原本的DirectWrite渲染xD
作者: abccbaandy (敏)   2015-02-02 23:37:00
借個標題問問,如果網頁有指定字型,替換好像就會失效難道要一個個字型加入?
作者: mayuyu ((・ω・)ノ)   2015-02-02 23:51:00
t7yang大的樣式已經將中文網頁常見的字型都寫好了如果網站指定的字型在這些預設的字型之外而你又想強制替換的話 確實是要手動加入沒錯例如pocket使用的襯線字體我就覺得不好讀所以就手動把pocket用的chaparral-pro給換掉有別種寫法可以強制替換所有字型 可是這種無條件替換法反而會造成更多的問題 所以還是用t7yang大的樣式比較好因為要貼圖又打開Mactype 結果剛剛推到一半 Fx又閃退了Orz
作者: Wcw5504 (五月雨)   2015-02-03 00:11:00
FX到36也要支援unicode-range了 以後寫CSS會比較方便
作者: Triedge (...喔...嘎...)   2015-02-03 00:28:00
mayuyu桑請問一下你這字型有分字重嗎,還是單一款式@@?
作者: t7yang (t7: 我認為這是一種背叛)   2015-02-03 01:35:00
樓樓上說的要是成真的,我就被感動到了(淚那個問題在bugzilla都不知道擺了多久了 囧興這篇文章大概要仔細讀一下,應該會獲得一些新的資訊尤其是Chrome的部分。倒是我比較在意的是 FX 成像上的延遲就是之前我一直反覆提到的,以Gmail作為例子,只要捲動卷軸文字就失去強化成像的效果,要等個1秒左右才會恢復這點也很煩人,不曉得mayuyu大有沒有遭遇這樣的情況
作者: abccbaandy (敏)   2015-02-03 02:48:00
還是有那種排除特定字型不要換的?會出問題是好像都是icon font?
作者: sziwu1100 (田橋仔)   2015-02-03 06:32:00
我是用stylish 基本上覺得GC的效果比FF漂亮http://drp.io/nqS/+ 使用GC看yahoo網頁的效果
作者: sate5232 (Hao)   2015-02-03 10:58:00
有沒有標點符號在中間而非在下面的推薦字體?在底下的一直都不太習慣,所以我現在還在用iLiHei-FA
作者: kaoh08 (AIR -the 1000th summer-)   2015-02-03 11:15:00
花在搞這些東西的時間 換成時薪都可以加錢買台macbook了
作者: sziwu1100 (田橋仔)   2015-02-03 11:54:00
樓上 還好吧 只是按按鍵改點設定而已 不花多少時間呀
作者: ettoolong (ettoolong)   2015-02-03 12:24:00
這篇很有用耶, 可是東西好多, 我要研究一下. 謝謝分享.
作者: karst10607 (誰可以協助我開板?)   2015-02-03 17:52:00
太複雜啦… 有沒有簡單無痛教學設定
作者: Triedge (...喔...嘎...)   2015-02-03 19:33:00
了解了,謝謝mayuyu桑 <3無痛教學搜尋ma桑的文章就有嘍,整個很實用!
作者: Kreen (每天要更優秀一點)   2015-02-03 19:57:00
推~~
作者: Wcw5504 (五月雨)   2015-02-04 02:10:00
思源黑體標點就是在中間了
作者: sate5232 (Hao)   2015-02-04 09:08:00
思源體我弄起來連微軟正黑都比她好看...
作者: sziwu1100 (田橋仔)   2015-02-04 10:44:00
sate大 微軟正黑體就可以了吧 用stylish效果也不差http://drp.io/nvN/+ stylish使用微軟正黑體http://drp.io/nvO/+ pttchrome 使用華康細黑體
作者: mstar (Wayne Su)   2015-02-04 12:01:00
個人喜歡「華康中黑體-UN」,是華康三款 unicode 字型之一不過不是免費的
作者: mayuyu ((・ω・)ノ)   2015-02-04 16:10:00
抱歉我這幾天比較忙 懶人包我之後再放上來標點符號在中間的字型可以自己替換 例如FontCreator只要改標點符號那幾個字元拿別的在中間的字型來替換就可以了 像明蘭有一些字的舊字體寫法看起來可能會不習慣 也是替換掉那幾個字就可以了sziwu1100的stylish渲染蠻好看的 可以分享你的樣式嗎?
作者: sate5232 (Hao)   2015-02-04 16:36:00
我用DirectWrite怎麼調都還是沒辦法好看...最後只好繼續MacType..text-shadow:多少以下不作用會不會和解析度有關?我在我15.5吋筆電上要0.36以上才會看到差異,可是就太糊了,0.35以下則跟沒加一模一樣
作者: mayuyu ((・ω・)ノ)   2015-02-04 18:07:00
@sate5232 我這裡沒辦法讓Mactype來渲染Fx 否則Fx會當得很厲害 囧興 調整一下alpha值試試看 alpha越低字體顏色越淡不過霧霧的情況會減輕 看起來會比較清晰範例圖用的Mactype設定檔下載http://paste2.org/_EZAe7YsX我試過調整Mactype設定DirectWrite=1或0 看起來都一樣Fx都會當得很厲害 >< 不過不同系統結果可能不一樣大家自己調整看看這個Mactype設定檔字很粗 最好不要再加stylish渲染否則比較複雜的字 密集的筆畫會黏在一起 看起來反而很吃力雖然字比較粗 不過清晰度還是比Mac差一點Mac系統預設字型很難看 不過換成明蘭後還是很漂亮http://i.imgur.com/qht2P77.png 明蘭雖然有些字體的舊字形看起來不習慣 但是真的很好讀 看很久也不會累

Links booklink

Contact Us: admin [ a t ] ucptt.com