分数缩放、字体与 hinting
对 GTK 字体渲染变化的总体反应
- 许多长期使用 GTK 的用户感到满意;截图显示,相比早期 GTK4,清晰度有了明显提升。
- 也有人希望能与更早的栈做对比(例如带有 pre-1.44 Pango 的 GTK 3),他们记得那时文字更清晰。
- 还有少数人认为,即使在这次新工作之后,GTK 3 仍然比 GTK 4 更好看。
Hinting、子像素 AA 与渲染理念
- 讨论对比了:
- 保持字形形状、但略微模糊的渲染(通常与 Apple 相关)。
- 与像素网格对齐、更清晰但会扭曲字形的渲染(通常与旧版 Windows/ClearType 相关)。
- 几位评论者指出,许多工具包(GTK、现代 Apple、一些 MS 栈)正在放弃子像素 AA,转向灰度 AA 加 HiDPI。
- 分歧在于:
- 一些人认为即使在约 100–110 DPI 下,灰度 AA 也“足够好”。
- 另一些人坚持认为,在常见的 1080p/1440p/4K@150% 屏幕上,子像素 AA 仍然明显更锐利。
- 对于在现代面板上是否值得保留子像素 AA 及其缺点(彩边、依赖设备几何、截图效果差)也存在争论。
HiDPI、分数缩放与多显示器设置
- GTK 以前使用 2x 渲染再缩小;现在改为按组件进行分数缩放,这被认为更高效,但也更难做好。
- 新的
gtk-hint-font-metrics行为受到欢迎;它现在会根据显示器 DPI 自动应用,从而改进混合 DPI 设置。 - 对比包括:
- macOS:以更高的虚拟分辨率进行渲染并依赖 HiDPI;在非 HiDPI 的外接显示器上可能显得别扭,尤其是在移除子像素 AA 之后。
- Windows:有人称赞按显示器进行 DPI 缩放;也有人报告 UI 模糊、设置繁多且令人困惑,以及应用兼容性脆弱。
- Haiku 和旧版 Windows API 使用基于字体大小的布局单位;有人认为这很优雅,也有人说这会给开发者带来负担。
伽马校正、FreeType 调整与配置
- 一些人认为,Linux 字体渲染常常出错,原因是缺少或错误的伽马校正,尤其是在浅色背景上的文字。
- 提到的变通方法包括:
- FreeType 属性(例如 stem darkening 和 interpreter version)可以显著改变感知到的字重和锐度。
- 用于 Electron/Chromium 应用的环境变量和标志,以使用 Wayland 并采用更好的字体路径。
- 对于 FreeType 的变化究竟是“破坏”了网格拟合,还是只是转向匹配不同的字体时代,存在争议。
剩余担忧
- 仍有人在 GTK 截图中看到模糊感,并质疑缺少子像素 AA 以及完整的水平+垂直 hinting。
- 大家普遍承认,要在不同设备和 DPI 上把文本渲染“完美”做好,复杂度极高,而且充满争议。