本帖最后由 以Porsche之名.. 于 2017-2-21 17:40 编辑
2016.8.30 Update:Anti-Aliasing Tuner的作者在2015年底有一次更新,這次更新以後至目前的FF 51.0.1(32-bit) release仍然可用,64-bit版本未經測試
2017.2.21 Update:在Firefox Nightly、Firefox Beta版本上本擴充組件會導致瀏覽器強制關閉,慎用
如果之前用過Mactype,請拉到本文的最後面看注意事項
==========================================前言===========================================
Firefox瀏覽器應該大家都不陌生,個人認為其功能強大、質量不錯的擴充套件令FireFox擁有極強的定制性,這點比Google Chrome要好(Google Chrome的擴充組件感覺和Google Chrome本身的UI各種不協調,而且用了這麼多感覺還是沒Firefox的強大);而且個人感覺當下來說網頁的相容性比Chrome更好一些。
但是,我還沒知道這個功能的時候,Firefox的缺點顯而易見的和IE一個樣:字體渲染用ClearType難看到要命,即使是使用了Freetype、ezGDI、Mactype以後也是(由於FF自帶基於Direct2D/OpenGL的GPU硬體渲染,而Windows仍然是採用GDI這樣的利用CPU進行字體渲染,前述三者便是劫持了Windows自帶的字體渲染實現它們的第三方字形渲染的)......
不過FF似乎也是留意到這個問題,在FF第六版以後的about:config裡有對於字體渲染的設定值:http://blog.timshan.idv.tw/2013/06/howto.html(由於此位址位於牆外,因此後文會做個簡略搬運供不願爬牆的天朝用家們)。雖然可以自定義調整,但是參數調錯導致顯示空白或者一片黑而要抹黑操作、或恢復預設值、或清理用戶配置檔和重裝也是挺down的,估計firefox的志願開發者也在填坑中。
=========================================正文開始==========================================
隨手在Google找了一下出了這個結果:http://www.vixual.net/blog/archives/253,原來FF還有這個擴展組件:Anti-Aliasing Tuner。這個組件可以調整about:config裡對於字形渲染的設定值,還能開啟Firefox故意隱藏起來的內建次像素平滑渲染。
這個擴充組件目前版本是 15.11.01.01
至 FF 48.0.2 release版 仍可安裝,安裝方法具體不再敘述了。
下面就介紹一下安裝完成以後的基本設定吧:
前往『選單』裏的『附加元件』一欄,開啟附加元件管理員頁面,在其左欄點『擴充套件』,找到並點選Anti-Aliasing Tuner的『選項』,出現如下畫面:

這個擴充組件作者也沒有漢化,這個是我設定以後的設定值。
下面借Anti-Aliasing Tuner的原文漢化一下:
Normal Font(普通字形)下的選項:
Gamma:字體的伽瑪值 乘以1000,值越大字體的筆劃越深越清晰。這個值預設一般是2200(伽瑪值2.2)或1800(伽瑪值1.8)。
Enchance Constrast:增強對比度,有效值0%到100%,值越大字體顯示越明顯厚實。預設是50%
Cleartype level:就是Cleartype級別了,有效值0%到100%,0%相當於灰度顯示(不開啟Cleartype),100%為全開。預設50%。
Anti-aliasing Mode(抗狗牙模式)下的單選項:
Don't Care 無視(預設值)
default 預設,這裡的第效果取決於 渲染模式 的單選項
Claertype(使用MS Cleartype那樣的渲染效果)
Greyscale(可以理解為『灰度』)
Aliased(可理解為不做任何抗狗牙處理)
注意:這個單選項決定下面 渲染模式 中可用的單選項
Rendering Mode(渲染模式)下的單選項:
Don't Care 無視(預設值),但是如果 抗狗牙模式 不是選 Don't Care 的話,此選項不能點選
default 預設
Aliased (可理解為不做抗狗牙處理,相當於沒開字形平滑化)
GDI Classics GDI經典模式,只按象形文字/方塊字佔據的像素來填充像素空間(我理解為是點陣式渲染吧,事實上出來的效果也如此)
GDI Natural GDI自然模式,在GDI經典模式的基礎上盡可能自然地顯示象形文字/方塊字(其實和GDI經典模式基本上沒差,主要是英文字形的差別)
Natural 自然模式,只在水平方向上對字形進行抗狗牙渲染
Natural Symmetric 自然對稱模式,水平方向和垂直方向上對字形進行抗狗牙渲染
Outline 輪廓模式/次像素平滑,不經過光柵化處理而直接輸出字形輪廓,效果類似於開Mactype一類的。但缺點是字形看上去有些發虛(特別是微軟正黑體一類的)
開啟Outline模式以後,伽瑪值、對比度、Cleartype級別即使在怎樣調整也好也會被視為無效。(僅於default、greyscale抗狗牙模式下可用)
注意:渲染模式單選項的可選項目取決於 抗狗牙模式 中所選取的單選項
Threshold Size between Normal and Large 大字體和普通字體的字體大小切換門檻,預設16px。
意思是字體大小超過多少px以後用大字體渲染,小於等於多少px用普通字體渲染。這個框不勾選的話,全部使用普通字體渲染,一般不需要勾選。
Large Font 大字體渲染的選項。這組參數的設定和普通字體的是一樣的,參照普通字體的參數設定選項解釋。
選取想要的效果,點擊右下角的『Apply』應用,即可實現相應的字形渲染效果,無需重啟瀏覽器。
這個簡易的擴充套件可以調整多個Direct2D/DirectWrite的文字字形渲染參數,而這些參數於about:config裡頭(下文詳細介紹)。
不過作者也說明了存在的兩個問題:
1、某些情況下字體會變成空白,無法顯示;
2、在大字體渲染模式下,可能不會獲得和普通字體下同樣參數設定的效果。
下面來看看PC426討論區貼吧模式頁面下的渲染效果:
默認的 Don't Care + Don't Care 選項:

default + default 選項:

default + aliased 選項:

default + GDI Classic 選項:

default + GDI Natural 選項:

default + Natural 選項:

default + natural symmetric 選項:

default + outline 選項,這個選項和Mactype渲染的效果類似,推薦:

Greyscale +
outline 選項,字形渲染效果比
default +
outline 的似乎厚實一些,推薦:

似乎後兩者要看個人視覺需要,畢竟低解析度熒幕下次像素平滑難免導致顯示的字形發虛
(還是期盼24英寸熒幕上4K的高PPI熒幕、高DPI時代快點到來吧,GPU也得快步跟上)
希望能幫到既想要保留Firefox硬體加速特性而又想要Mactype渲染效果的Firefox用家。
以上~~
===========================================================================================
附:about:config參數,給有需要的玩家:(參考自http://blog.timshan.idv.tw/2013/06/howto.html、)
在上面的搜尋欄鍵入『gfx』,即可找到與硬體加速相關的一些設定值。與字形有關的設定項有(尚不完全,會日後繼續補上):
gfx.font_rendering.directwrite.enabled:
字形渲染DirectWrite功能開關。開啟為Ture,關閉為False。很奇怪在Anti-Aliasing Tuner開啟了字形抗狗牙平滑化後,這一項還是False的......
gfx.font_rendering.cleartype_params.gamma
伽瑪值:值域從1000到2200,和Anti-Aliasing Tuner上的一樣。about:config的默認設定值『-1』
gfx.font_rendering.cleartype_params.enhanced_contrast
對比度:值域從0到1000,字體模糊除了調整ClearType強度之外,也可以靠調整對比度來改善。(不知道為何和Anti-Alising Tuner上的設定值不一致)
gfx.font_rendering.cleartype_params.cleartype_level
ClearType強度:值域從0到100(%),如果字體顯示模糊可以調低ClearType強度。和Anti-Alising Tuner上的設定值相同。
gfx.font_rendering.cleartype_params.pixel_structure
每個像素點RGB顏色排列:0 = flat,1 = RGB,2 = BGR,一般液晶螢幕使用RGB,不過最好根據自己用的熒幕而定。
gfx.font_rendering.cleartype_params.rendering_mode
字體渲染的模式,基本對應Rendering Mode(渲染模式)的設定項:-1 = Don't Care,0 = default,1 = Aliased,2 = GDI Classic,3 = GDI Natural,4 = Natural,5 = Natural Symmetric,6 = outline。不過很奇怪的是Anti-Aliasing Tuner裡改為outline以後,這一項在about:config裡卻變為『4』,不明
gfx.use_text_smoothing_setting
開啟字體平滑,一般設為Ture。奇怪的是Anti-Aliasing Tuner開啟了以後這裡還是顯示『False』
(還有更多等待補上)
===========================================================================================
已知問題:
偶爾會渲染失效,但滾動/切換頁面即可恢復正常。(FF36)
如果曾經因使用Mactype而將 about:config 裡的『gfx.direct2d.disabled』項改為了『ture』禁用了direct2D,請將這個選項重新開啟,因為本組件需要direct2D進行渲染
(怎麼M$不好好利用direct2D做 灰度抗狗牙 或 次像素平滑,起碼效果可以跟Freetype抗衡了(Mactype其實也是基於Freetype),不知道現在direct2D渲染效率如何(不過起碼比使用CPU渲染的GDI來得高效吧))