亚像素渲染在双眼与运动条件下失效
别名: ClearType 失效 · RGB 条纹抗锯齿 · binocular subpixel
概念解释
桌面显示器上,ClearType 一类的亚像素渲染(subpixel rendering)把一个像素里的红绿蓝条子当成三倍水平分辨率来画字边。头显里这套办法会反过来:两只眼看到的条纹相位对不上,头一动相位还在变,字边带上稳定不了的彩色毛边。立体观看和运动不是边角条件,它们正是亚像素假设被拆掉的两个轴。
机制
亚像素抗锯齿依赖三条假设:条子方向已知且左右眼相同、观察者静止、一只眼看到的相位就是布局时写下的那套。头显经常用两块独立面板或 pentile 排列,左右眼的 RGB 几何本来就不是同一张图。即使两块屏相同,立体里面板相对每只眼有微小的不同透视,同一条字边落在左眼的绿条子上、落在右眼的红条子上,融像时毛边变成 rivalrous 的色闪。
头一动,字边在显示像素上滑动,亚像素滤波是按静止相位算的,滑动后滤波方向和真实条子错开,毛边跟着扫。时间上再叠低持久或 reprojection,彩色边缘会按帧换色。灰度抗锯齿放弃那「三倍」水平分辨率,换来左右眼和运动下都稳定的边——在头显上,稳定比多出来的那一点锐度值钱。
怎么研究
同一段字比较亚像素抗锯齿和灰度抗锯齿,分单目静止、双目静止、双目加节律性头动三档。让人评彩色毛边是否可见,并测朗读错误。可把左右眼图像分别截出来,检查同一字边的色边是否反相。
自变量:抗锯齿模式、单目 / 双目、头动有无、面板排列(RGB 条纹 / pentile)。 因变量:色边报告率、双眼 rivalrous 闪烁、朗读错误、主观锐度。
只在桌面显示器上关一只眼看 ClearType,会得出「亚像素仍然更锐」——那是第三条假设还成立。结论要在头显里、两只眼都开、允许点头的条件下收。
边界
纯单目、头完全固定的观看(某些工业检视)上,亚像素仍可能略锐,那是把头显当一块小显示器在用。面板若不是水平 RGB 条纹(许多头显是 pentile 或垂直排列),亚像素算法按桌面假设去滤,边会错得更明显。视频透视把真实世界的像素和虚拟字叠在不同的采样栅格上,亚像素更没有一套可对齐的条子。极小的字在灰度下已经不可读时,亚像素也救不回来,它不是分辨率本身。
怎么落地
- 空间里的正文默认走灰度或距离场抗锯齿,不要把桌面 UI 的 ClearType 开关原样打开。
- 在真机上两眼都戴上、轻轻点头看字边:出现固定不住的红绿毛边,就关掉亚像素。
- 资产管线里把「为 LCD 条纹优化」的字体光栅化从 XR 路径剔除。
- 验证:左右眼各截一帧同一行字。若色边在两眼里左右对调或无法融合,亚像素已在立体下失效。再加一段点头录像,毛边若随头动换色,运动条件也失败。灰度对照不应出现这类色边。