是否有從 Windows 渲染層解決其字體渲染問題的方案?

Windows 的 DirectWrite 由於歷史包袱在渲染風格上偏近 Cleartype,導致了在小字型大小下的字體設計失真。是否可以替換其渲染?


gdi(不是 dwm 也不是 explorer, @陳宇 要記得多查資料啊)是 Windows 的內核組件,從第一代 Windows 就有了,幾乎是個程序都對它有依賴;而且裡面有一大堆黑魔法級別的彙編代碼(《代碼之美》里提過一個案例:BitBlt 內部有一個 JIT 編譯器),你確定想把它換掉?


你要解決什麼渲染問題?


補個圖。忽略hinting、啟用Y軸抗鋸齒的原生ClearType,你們隨便感受一下。

按照某些人的說法是功力未到?

我可能用了假的Windows。

發現有點跑題了,說點正經的。DirectWrite這麼做,說到底還是為了照顧低dpi顯示設備的用戶,首先要解決看清楚的問題,只有把這個問題解決了,才能討論美不美觀的問題。

直到兩年後的2017年,23寸上下1920*1080解析度的顯示器仍然是主流,高dpi產品更是小眾。步子大了扯著蛋,在高解析度顯示器全面普及之前,如果一步到位把依賴hinting構造小字的渲染方式一下子砍掉,勢必會引來視力不好的用戶的反感和厭惡。而微軟對生態的把控能力畢竟不如蘋果,能不能倒逼硬體廠商提升硬體性能,能不能加速高解析度顯示器的普及,誰都說不好。

就像蘋果用蘋方取代華文黑體系列那樣,Windows 10 Build 1703對GDI的大改可謂是振奮人心的一件大事。但是,此次對GDI的改進,仍然只是針對無hinting的字體,像微軟雅黑這樣把持著UI指示的字體,hinting仍然在指示著小字的構造。這種做法,是在試探用戶對新渲染方式的接受程度。至少在對UI字體渲染有一定追求的用戶來說,只需要把微軟雅黑hack掉就行了。而MacType,它的歷史使命就要終結。

再來張蘭亭黑Pro的——

有人仍然覺得蘭亭黑Pro字形扭曲仍然是微軟的鍋,請你認真看看這篇答案。順便,OpenType CFF可以做hinting。以及,方正絕大多數的黑體和宋體都帶有hinting,不要一上來就扣帽子。至於hinting做得好做得爛,跟微軟沒有一毛錢關係。


整個扔掉 dwn.exe / explorer.exe( @Belleve,我是為了防止 MacType 無法伸手的地方(如窗體邊框)有 DirectWrite 渲染題主不滿意),自己換一套 shell,管理文件用 TC;從 system32 直接開刪,刪不掉的都是核心組件,這個時候那些顯卡驅動都被刪了,真正解決硬體加速問題。

到了這一步,你會發現圖標(包括但不止包括桌面圖標)全部看不見了,任務欄就算開了 dwn.exe 也沒有響應,很多地方都出了故障(但是不影響使用)但是還能開程序,乃至於 MacType 還能用。

此時如果你開 MacType,就是真正的全局,不過效果還是不夠。如果你不想進一步 hack,可以在 MacType 裡面把「交付 MacType 渲染的最大字型大小」設成 17px,Enjoy!

如果你覺得還不算好的話,反向到 gdi.dll,看完代碼後按需刪除,只留一部分 API manager,然後就可以開心地找一台 Mac,把裡面 CoreText 負責文字渲染的部分摳出來改一下替換就行了。

此方案大約比黑蘋果麻煩 10.97 倍。


其實。。。如果不失真的話文字會變得很難閱讀的。。。不過對於非uwp應用,裝個mactype就好。

(表示當年喜歡微軟雅黑不是因為他好看,而是因為有hinting,不會筆畫粗細不均勻。。。現在嘛,自己設計的英文字體裡面帶了auto hinting,結果不抗鋸齒的時候雖然筆畫粗細不鬼畜,字形還是有高低不齊的問題


推薦閱讀:

如何評價微軟的Universal Windows Platform(UWP)?
支持 LaTeX 實時預覽的離線 Markdown 編輯器有哪些?
編寫一個新的操作系統,兼容windows(仿寫)合法嗎?
為什麼使用優化軟體會讓 Windows 變得不穩定?
有沒有可以替代驅動精靈的工具?

TAG:字體 | MicrosoftWindows | 字體渲染 |