7.8
深览指数
科技少数派··AI 生成
运行在 macOS 中的「超采样」:HiDPI 与 Mac 显示溯源
文章深入解析了 macOS HiDPI 的原理,从物理分辨率、逻辑分辨率到渲染分辨率,清晰说明了 Point 概念、整数缩放与分数缩放的工作机制。作者通过对比 Retina 时代的 WWDC 设计思路与第三方显示器的实际表现,揭示了苹果在整数缩放理想与用户体验(桌面空间)之间的权衡。特别解释了低 PPI 显示器上 macOS 字体显示不佳的原因(缺少子像素抗锯齿),并阐明了强制开启 HiDPI 的本质是类似 SSAA 的“超采样”技术。适合对显示技术、图形渲染原理感兴趣,并想理解 macOS 显示机制背后设计哲学与取舍的深度读者。原文 ↗
核心观点
- ▍macOS HiDPI 的核心是将应用程序界面从直接使用 Pixel 转向使用 Point 作为逻辑单位,并通过在更高分辨率的帧缓冲区(FrameBuffer)中渲染,再缩放至物理分辨率输出,以实现远超物理像素精度的视觉平滑效果。
- ▍苹果理想的 HiDPI 状态是 2x 整数缩放,即渲染分辨率与物理分辨率像素一一对应,但现实中为满足用户对更大桌面空间的需求,常采用分数缩放,牺牲一定画质换取实用性。
- 01苹果在 WWDC 2012 的 Session 213 中提出了 Unified Coordinate System,定义 1 Point 对应 2x2 个像素,这是 HiDPI 的基础。
- 0214 英寸 MacBook Pro(M2 Pro)的物理分辨率为 3024×1964,默认逻辑分辨率 1512×982,渲染分辨率为 3024×1964,是典型的 2x 整数缩放。
- 03当将 Mac 连接到 27 英寸 4K 显示器(3840×2160)并选择 2560×1440 逻辑分辨率时,系统实际渲染分辨率为 5120×2880(5K),再缩放到物理分辨率,此为分数缩放。
- 042016-2019 年的 MacBook Pro(2880×1800 物理分辨率)默认启用了 1680×1050 逻辑分辨率,使用了分数缩放,而非严格的 2x 整数缩放。
- 05从 macOS Mojave 开始,苹果正式移除了子像素抗锯齿(ClearType 类似技术),将显示质量完全建立在高 PPI 与 HiDPI 渲染之上。
- 06强制开启 HiDPI 的原理类似于 SSAA:通过在更高分辨率(如 3840×2160)的 FrameBuffer 渲染,再缩放到低物理分辨率(如 2560×1440)输出,以提升字体平滑度。
反方 / 局限
- — 分数缩放虽然在绝大多数场景下视觉提升明显,但在极细线条上仍会出现因非整数缩放导致的像素对齐问题或微小的模糊。
- — 苹果主动放弃子像素抗锯齿,虽然在 Retina 显示屏上是明智之举,但直接导致低 PPI 显示器(如 1080p、1440p)上 macOS 字体显示效果普遍不如 Windows 锐利,对这类用户是显著的体验降级。
- — 强制开启 HiDPI 本质是 GPU 资源置换,以成倍增加的渲染像素消耗换取观感提升,会显著增加能耗和显存带宽占用,在性能或续航敏感场景下是负面权衡。
24 分钟 · 4 卡片 · 11 资料
读原文 →