|
如果你需要 Windows 次像素渲染的效果,可以通过 fontconfig 的配置手动开启,这个技术的专利已经过期很多年了,当前的发行版都有相关的实现,不需要额外补丁。
不过即便开启次像素渲染,你在 Linux 的感受和 Windows 也会有比较大差别。因为 Windows 的默认渲染策略是强 hinting ,在矢量图形光栅化的时候,尽可能对齐像素网格,牺牲字体还原性换取可读性。Linux 目前主流发行版的默认设定都是弱 hinting 策略。
在当前 Gnome/KDE 都转向了 wayland 合成器,次像素渲染是个会起到相反效果的技术,所以各大发行版都默认使用 grayscale 算法而不是次像素实现抗锯齿。这是因为次像素算法依赖显示器像素排布,一方面显示器的像素排布很多都不是常规 rgb/vrgb 了,另一方面这个技术最多只能在一个方向上提高分辨率。
最大的问题还是高 dpi 显示器上的缩放,次像素算法的前提假设是它输出的位图会 1:1 映射到物理像素上,然而这一点在有缩放的时候并不成立。强 hinting 策略在高 dpi 有缩放的情况下,也不是一个好策略。这里说起来比较复杂,可以简单理解为先放大再修正,比起先修正再放大,前者能够保留更多信息,最终渲染效果也会更好。
现在 Windows 新的 UI 框架编写的应用,在有缩放的情况下也会默认禁用次像素渲染转而使用灰度渲染。
以我个人的技术观点和常年 Linux 使用体验来说,我认为 Linux 的字体渲染是比 Win/macOS 都要更优秀的。 |