為什麼 MacType 這種「邪魔歪道」的軟體會出現併流行?

關於標題,參見:在 Windows 10 一周年更新中如何使用 MacType ? - Belleve 的回答


Colliot 邀請你回答此問題

謝邀。這是個帶有很強預設立場的問題嘛(笑

GDI++(請容許我在此使用 MacType 的前身的名字)在國內出現的時點,我沒記錯的話是 2007 年。Windows XP 還是主流的操作系統,在極限主題——GDI++ 最新被「引進」的那個社區,偶爾有人發真正使用 Windows Vista 的桌面秀,就會引來一陣羨慕——當然,用 Mac 的就更是鳳毛麟角了。

討論這個問題的基礎事實:GDI++ 是在極限主題這個系統美化 (Customization) 社區走出來的。脫離系統美化這個語境,是沒辦法理解 GDI++ 為什麼會流行的。

那時,中易宋體還是 Windows 的默認 UI 字體;微軟雅黑,雖然也有人在 Vista 中扒出來用了,但 ClearType 的效果——說清晰是夠清晰了,但實在說不上是好看。更何況,當年支持 ClearType 的中文字體,也只有微軟雅黑和微軟正黑兩款,其他中文字體碰上 ClearType 都得歇菜。哦,現在也沒有別的了,除非自己加 hinting.

當時,使用修改過的麗黑之類的字體,關閉 ClearType(其實 XP 默認是關閉的),利用較粗的字重來補足 GDI 本身灰度抗鋸齒欠奉的效果,來模仿 OS X 的字體渲染風格,是很常見的「字體美化」手段。在 GDI 灰度抗鋸齒的環境下,「N 卡字體效果比 A 卡好」這種說法,現在在極限主題里搜索一下,也肯定能找到。

甚至,當時還流行用 FontForge 將字體格式轉換成使用 CFF / PostScript 曲線的 OTF 文件,並且利用 ClearType 無法渲染這類字體,來實現「美化」的手段也很常見,這樣,Arial、Tahoma、Verdana 之類的西文字體可以通過 ClearType 獲得比點陣更好的觀感,而中文方面也不必「忍受」 ClearType 的不足。我也做過不少這樣的事情。

能提供比 GDI 質量要好得多的灰度抗鋸齒(同時也支持次像素抗鋸齒);不像 ClearType 那樣極度依賴 hinting 從而幾乎不具有普適性;對於追求「清晰」的使用者還可以通過調參實現對齊像素網格但又有 y 軸抗鋸齒的渲染效果。更重要地,效果還「很 Mac」——可想而知,GDI++ 這樣的東西出現在一個系統美化社區當中,會帶來怎樣的震動。我記得,當時看到那個帖子的瞬間,激動程度應該比大一時將用了三年半的 Nokia 5630 XM 換成 iPhone 5 的時候要強得多。

* * * * * *

說 GDI++ / MacType「邪魔歪道」,我猜可以有兩種解讀——

  1. 不惜犧牲性能(當然這點性能損耗在今天不算什麼),乃至冒著影響穩定性地風險也要 hook Windows 本身的字體渲染機制這種行為,是邪魔歪道;
  2. 放著清晰的字體渲染風格不用,偏要去模仿 Mac 的模糊的風格,是邪魔歪道。

第一種含義我是比較理解且同意的。不過這是個風險自負的問題,而且在後來有了 GDI++ Tray 這樣的軟體來動態載入之後,也不是那麼容易崩潰了。

而第二種含義,無非是個人偏好。你認為「模糊」的字體是邪魔歪道,我也可以認為 ClearType 那種不惜扭曲字體本身的設計也要追求所謂清晰——更糟糕的是,扭了也就算了,還莫名其妙地只給 x 軸一個方向的抗鋸齒——的風格,是真正的邪魔歪道。

Mac 風格的字體渲染和 ClearType 風格的字體渲染哪個更「好」,都被翻來覆去地討論了快十年了,誰也說服不了誰。這些爭論,恐怕只有到高分屏真正普及才能終結了。

* * * * * *

強烈建議喜歡 ClearType 風格字體渲染、並且有一定折騰興趣的 Windows 使用者使用 @Belleve 魔改過的字體。


MacType是邪門歪道?MacType是把用戶從微軟的邪門歪道上拉回來好不好?

如果MacType是邪門歪道,那麼世界上除了Windows和點陣,其他顯示文字的方式都是邪門歪道了。

MacType的FreeType,諸Linux發行版在用,Android在用,iOS在用,基於FreeBSD的PSP/3/Vita/4在用,甚至電視機系統菜單的文字都用的是FreeType啊……

其他非FreeType的文字渲染如Mac OS X也是橫向縱向均有反鋸齒,橫向可選純灰度渲染。Adobe內建的字體平滑,PDF的文字渲染,都是橫縱灰度渲染,沒有第二個像微軟一樣只以RGB子像素渲染橫向,然後縱向筆畫黏成一團不管的。

PS3

PSVita

松下等離子電視

某山寨機頂盒貌似也是FreeType啊…

FreeType無處不在啊!

只有微軟到了21世紀還鍾情點陣,弄了一個高度依靠hinting才能看的Cleartype,而且縱向沒有反鋸齒(「消除混疊」一詞放到這裡更直觀)。Hinting好的字體小字型大小滿滿點陣味兒,沒有hinting的字體小字型大小瞎成一團。可以使用的字體,除微軟那四個對應簡繁日韓的字體(雅黑正黑hinting還不全)、Belleve給思源加入hinting的那套字體以外,就沒有能用的了吧。

FreeType這邊小字型大小低dpi屏幕照樣擁有較舒適的可讀性。大字型大小或高dpi屏幕文字邊緣也比DirectWrite平滑。用平滑的灰階統一整個文字的灰度。完全以保留字體曲線為根本的渲染,最大限度地在屏幕上展現印刷後的效果。而不是Cleartype、DirectWrite為了顯示清晰而改動筆畫。

誰才是邪門歪道?像FreeType這樣的橫向縱向都進行灰度渲染的才是主流啊!

然後說說高分屏。以下截圖來自12寸1920×1200筆記本,200dpi,150%UI縮放。

微軟那套「小字型大小有點陣的點陣,沒點陣的橫向RGB縱向無渲染,大字型大小DirectWrite」,在高解析度顯示器上更要命。

Windows默認方案,高分屏直接感受,100dpi以下的屏幕自行想像縮小50%的樣子,1像素的筆畫。

這是MacType(FreeType,灰階渲染)

MS Gothic 包含很多字型大小的點陣,比起中國的simsun點陣字型大小少和simhei完全沒點陣,在低分屏是個優勢。但是換到高分屏,在有點陣的字型大小下實在是瞎眼:

微軟默認的。9pt及以下完全是1像素的筆畫;10~12pt狗啃似的邊緣;14pt以上終於有了灰階渲染,但是效果依然不好。

同樣高分屏的直接感受,低分屏的腦內把面積縮小50%。

FreeType拯救眼睛。

感受一下Windows8(10?)新增的簡中字體等線,沒有點陣。微軟默認的。

FreeType的。

正文字型大小,請點擊看全解析度。微軟默認的

FreeType的

模擬一下200dpi桌面顯示器(200%UI縮放)下的正文字型大小,FreeType,SimSun,屏攝,效果接近紙製品。

坐等CG248-4K降價到能接受的範圍入一台。


你若給了正道走,自然沒有必要走所謂「歪門邪道」。

但是時至今日Win10AU發布一個星期以後,MS對Windows桌面設備的字體渲染邏輯仍停留在10年前——嗯對,就是Vista發布期間——的水平。不我不是說低分屏,我說的是從768P到2160P,從100%DPI到300%DPI界面,都沒有一種情況能渲染出既清晰又漂亮的字體。

從用戶這方面來說,我根本無需關注你什麼這技術那技術,什麼Grid Fitting優先還是保留字形優先,什麼歷史遺留問題,我看到的就是,怎麼我頂配台式機4K屏上字體比我用了好幾年快爛的低端安卓機的字體還丑,那,么,多。

而且曾經被寄予重望的,DirectWrite,實際顯示效果非常糟糕(對,就是非常糟糕,我2 3年前第一眼看到的時候還覺得尚可,但是看多了各種其他平台以及Mactype freetype的效果,DW真的是越看越不舒服了)。說實話我不關心這技術底層上如何改善了效率什麼什麼的,我看的就是效果。

具體幾個表現如下,

1.傳統的GDI+界面,無論你多少字型大小,都不帶Y軸抗鋸齒。你一個72PX的字,傾斜角度小的比劃仍然狗牙分明。

2.對於內嵌點陣的字體包括西文字體Fallback過來的,那效果簡直可以用慘烈來形容。現如今Windows10仍然有相當多的場景默認字體是中易宋體並且其他文字Fallback到宋體,這種情況連高分屏也躲不過(除非你2880P 300%以上的DPI縮放?反正我225%下宋體很多場面還是點陣的字型大小)

3.DW界面,允許開啟大字型大小的Y軸抗鋸齒,但抗鋸齒精度(倍數)很低,經常能看到過度不夠導致的灰色色塊。這一點只要截個圖就能看的非常明顯。加之Gamma, 對比度,渲染濃度這三個參數默認設置奇葩的嚴重,最終經常呈現出一種加了抗鋸齒的字形呈現出比劃粗細不一,輪廓清晰度不統一等等糟糕的視覺障礙。

4.不統一。DW那邊都全面採用灰階抗鋸齒了,這邊傳統GDI+界面還是Cleartype三色次像素。嗯你把Cleartype關了還是有一部分界面會強行次像素。SP4界面旋轉後那五彩紛呈的筆畫真是看的我哭笑不得。還有採用DW的界面開不開啟Y軸抗鋸齒也不統一。所有UWP界面是開啟的,但是其他Win32應用採用DW渲染的,比如Futuremark全系列,比如VS2015, 比如Comsol等等,不開不開就不開。

5.以上所說的所有問題,在MS那裡,估計永遠都不會正式提上議程。因為所有這些都不是Windows廣大用戶群體所關注的問題,估計放到知乎以外,都沒有多少人知道咱們討論的是什麼。所以期待官方解決方案,實在是Naive.

以上所有問題,一個Mactype就全部搞定了,設置簡單易懂,使用幾乎零風險。今年更是有人發布了Override DW的補丁,終於可以把UWP界面那高不成低不就的字體渲染,提升到接近Freetype完美平滑的水平了。我3年以來在超過4台長期使用的Windows設上都全程開啟Mactype,沒有出現任何故障,最糟糕的情況就是某個界面無法接管。這次AU更新EasyHK掛掉應該是唯一一起兼容性故障了,但不也替換兩個DLL就輕鬆解決了?你說Hook系統函數多麼多麼LOW,抱歉我不懂啊,我什麼問題都沒有遇到,還享受著賞心悅目的字體渲染,憑什麼被你說服呢?

你願意走光明大道那我不反對,但這樣的「歪門邪道」我還真是自願走。


幾位對字體更有研究的答主已經解釋 mactype 出現的緣由和渲染問題

可作為一名 mactype 的使用者,還想說下 mactype 的另一個功能就是熱替換字體。

假設「邪魔歪道」正是 @Linkzero Tsang 所講的:

不惜犧牲性能,乃至冒著影響穩定性地風險也要 hook Windows 本身的字體渲染機制

那這種「邪魔歪道」對於 windows 的使用者重要嗎?或者說直觀嗎?

當我使用 windows 版歐路詞典查一個包含 "l" 和 "i" 的單詞時,看到的是這樣:

那種強烈的不適感讓我覺得「這個軟體在 windows 下簡直就是邪魔歪道」

當我使用 mactype 針對此軟體把 Tahoma 替換成 Inziu Roboto SC 的時候:

我又直觀地體會到「天吶,mactype 就是正義」

以上只是一個例子,當有些軟體在日常使用中不可代替且在字體顯示上也存在不能忍的問題時,用 mactype 改善體驗算是成本最小的途徑了。

對於用戶,使用「邪魔歪道」的 mactype 是為了解決更「邪魔歪道」的問題。

Win10 RS1 都出了,為什麼電腦字體不能像手機一樣看的舒服。為什麼我需要關心這個程序是 GDI 渲染,那個是 DirectWrite 渲染的,是否需要替換為沒有 hinting 的字體,或者 @Belleve 改的字體。

對於一名用戶,在意這些已經夠累了。至於穩定性,大概已經忘了這個詞吧。


gdipp 是搞美化的那群人找出來的(天曉得從哪裡),時間點應該是 05 年前後,緣由則是:當時專業的數字字體都是面向印刷和專業排版軟體的,製作 screen font 非常困難,甚至可以說在 Firefox 3.5 支持 WOFF 之前,Screen font 的技術幾乎停滯了好幾年;gdipp 可以把印刷字體直接拿來搞系統美化,是很有價值的。

當然的技術和當年不可同日而語(Web font 的功勞),這種如同外掛的破壞穩定性的東西(也是為什麼我管他叫做歪門邪道)也就可以壽終正寢了。

ps. 極限那群人的字體文件只是打個 demo 還行,打開看實際上爛的要死,沒錯我就在說 IoF。

pps. Windows 的 AA 基礎是兩篇論文:Displaced Filtering for Patterned Display、Optimal Filtering for Patterned Display,你看過文章就知道了,非常徹底的信號處理……


永遠不要把你自己的好惡強加到別人身上。

我是個文字觀感要求很高的人,macOS 10.11 之前的華文黑體我從來看不慣,用 Android 我也一定會安裝思源黑體的 Light 和 Medium 字重。在我看來,破壞了漢字本身結構的點陣字體簡直毫無美感可言。用 FreeType 的渲染方式,即使屏幕解析度不夠高,字體邊緣不是那麼清晰,我覺得也比點陣和充滿毛刺的字好的多。我相信很多人也跟我想法一樣。這是歪門邪道嗎?如果是,那麼不好意思,我就是喜歡這種歪門邪道。

雖然現在 DirectWrite 的效果已經好不少了,但是有雅黑等字體那屎一樣的 hinting。。。最後吐槽一下 Chrome,用 DirectWrite 的瀏覽器里就它效果最差


Linkzero Tsang已經做了很詳盡的說明,在這裡補充一些其他相關。

GDI++發佈於2007年下半年,由日本的字體愛好者編寫,通過替換Windows自身的GDI+由自己執行字體渲染,達到接近Mac OS X和Linux的字體渲染效果。

ClearType在渲染中日文等字體時(尤其是XP系統默認的宋體)為準求清晰而犧牲字體原貌的做法對系統美化愛好者來說難以接受,更何況當時Mac的普及率遠不及現在,翻翻deviantART從2003-2007年間的Windows主題,Mac風格佔據了大半江山,對國內系統美化愛好者的影響更大。自然而然,模仿Mac OS X的字體渲染方式理所當然。在GDI++出現前,國內系統美化作品的截圖要麼僅使用西文界面,要麼使用漢儀中黑等字體作為權宜之計。GDI++和MacType提供的豐富的自定義功能更贏得了Windows系統下一些字體和界面美化愛好者的歡迎。

而微軟在Windows Phone系統中啟用的字體渲染模式摒棄了GDI+,啟用了DirectWrite,效果與先前有了很大的差別。遺憾的是直到Windows 10,桌面操作系統字體渲染效果仍然與VIsta以降差別不大,當然在4K顯示器上效果好得多。原因大概是字體GASP表的支持問題。

GDI++發布頁面倒是一直都在(GDI++専用アップローダ)。


低分屏神器,高分屏瞎眼


能用官方的誰想走邪道啊,關鍵是官方的太難看了啊,不客氣的說,從vista開始那個爛字體渲染連win98的點陣字體都不如,點陣字我好歹看得清楚,vista那渲染糊成一片還舔個臉號稱"重大革新",

現在是MacType, 什麼時候你看過OSX上有人開發WindowsType的? 誰好誰壞不言而喻.....


邪魔歪道?再邪再歪能有DirectWrite邪魔歪道?

DirectWrite渲染出來的都是什麼鬼?

看看那個鬼魅的「會」字。

看看這「錯落有致」的粗體。

左中右分別是Mactype(放水版,僅灰階抗鋸齒),DirectWrite,ClearType,摸著良心說說哪個最好?


歪門邪道是對於那些熱愛與於點陣字體的人一種說法罷了。他們只是不想尊重(諷刺)那些喜歡次像素渲染字體的人。點陣字體那麼細看著不累么?字體筆畫都看不清楚的字真的好看嗎?每個人喜歡的東西都不一樣,所以互相尊重就好了。


三年前我還沉迷於調試Mactype的渲染效果,如今看看Mactype的兼容性也確實沒多大可用之處了。個人認為Mactype算不上一種「邪魔歪道」,它不過就相當於一個Windows系統的美化工具,把Windows從Cleartype類的渲染方式上「拯救」回來。

Windows上Cleartype類的渲染思路是很多年的前由點陣文字到次像素平滑過渡的一個方式,這種思路帶來的直觀效果便是文字清晰易讀、粗細均勻,而Mac、Android等系統的文字渲染思路都是類似於把每個字看做一張矢量圖,以調整一張圖片的方式來渲染文字。

所以Cleartype類渲染方式在小字上字形不如Mac類自然,在大字上邊緣處理效果糟糕,因此就給了Mactype這類軟體發展的機會。

況且幾年過去,Mactype的渲染效果還是要比Windows上及其軟體默認的各種ClearType和DirectWrite等好上不少。

本人也並不是很看好中文下的Mac類渲染方式,前幾年高分屏還很少見的時候,常常會見到「Mac系統字體怎麼這麼虛啊」這樣的吐槽帖,不過不知近幾年是因為嫌字體虛的人都換高分屏了還是為什麼,吐槽Mac字體虛的人倒是越來越少了,倒是喜歡這種渲染模式的人越來越多。

日文假名倒是在Windows下常常支離破碎,不過在DirectWrite下和Windows10後,貌似是換了默認字體,這種情況有了不小改善,但單從日語假名這種字來說還是Mac更圓滑自然。

我現在一直在用Mac系統,有時看到Windows的朋友發截圖來,還是時不時會感嘆下普屏下的Windows字體真心清晰。

現在也覺得在用Windows10的用戶用Windows原生的渲染方式就好,隨著高分屏的普及和Windows對高DPI支持的改進,相信這種不同的渲染思路終將變成只是字形風格之前的不同,而不再是影響人們閱讀感受甚至影響人們選擇操作系統的一個因素。


他不喜歡就是歪門邪道,這不就是我既世界的小學生理論嗎?為什麼會流行?還不是因為win的字體太爛。


我有一台魔改的聯想筆記本電腦。

Intel i7 4720HQ

gtx860mhd4600

16G ram

512SSD+265SSD

顯示屏自購替換為1920x1080 15.5寸 160ppi

運行為windows10macOS

macOS默認safari顯示效果如下:

windows10通過macType渲染如下(chrome51)

對比如下:

說實話,mactype並不是一個完美的解決方案,但還是比默認強很多,畢竟我不是4k,2k

一些工作用軟體也已慢慢轉頭macos,windows還是拿來打遊戲玩獨顯吧。

筆記本都魔改了,也不在意mactype所謂「邪門歪道」。

以上


推薦閱讀:

Windows 系統為什麼對高分屏支持不好?
如果當初諾基亞選擇了安卓,如今的諾基亞和Windows Phone各自會是什麼樣子?
為什麼 Windows 不考慮用華文黑體(黑體-簡)作簡體中文界面字體?
把伺服器當桌面機使用是什麼樣的感覺?
現在為什麼windows設備解析度大多採用16:9,而不用16:10?

TAG:MicrosoftWindows | 字體渲染 | MacType |