POLARISUI / DOCUMENTATION / 2.4.5

禁止商用。所有使用 PolarisUI 的应用都必须公开完整源码。查看许可条款

全局抗锯齿

ui.antialiasing(Antialiasing.HIGH);
// 或者:
ui.theme().antialiasing(Antialiasing.ANALYTIC);

OFF:图元按距离正负输出硬覆盖,文字使用二值边缘。主要用于对比或刻意的硬像素风格。

ANALYTIC:使用屏幕空间导数和距离法线估计一个像素内的覆盖。小字号覆盖字体使用目标 DPI 的灰度字形。

HIGH:对 SDF 几何和 SDF 文字使用四个子像素覆盖样本。几何采样利用局部距离梯度估计四个偏移点,不把整个 framebuffer 放大四倍;文字从距离场四次采样。覆盖字体已经在目标字号栅格化,继续使用其灰度覆盖,不重复进行模糊后处理。

这不是硬件 MSAA / TAA,也没有宣称为宿主 3D 场景提供抗锯齿。不会把用户 scene 输入改成 MSAA framebuffer;原先非 MSAA / 先 resolve 的输入约束仍然保留。

全局状态通过 Ui.render() 开始时的 Painter.configure(theme) 传给 NativePainter。直接调用 Painter 的宿主可自己先调用 painter.configure(theme)。原生指令携带此状态,内置玻璃、填充、线段、环形图元和文字按它选择边缘处理。

Painter.configure 和 Painter.corners 是新增 default 方法,因此旧的自定义 Java Painter 仍能源码编译,但要实际支持新能力需要实现这两个方法;不能把默认空方法说成自动适配了第三方渲染器。

提高抗锯齿并不保证每种字号都更锐利。原生 DPI 字形、像素对齐、SDF 缩放与抗锯齿分别处理不同问题,不能靠在整张画面上加一层滤镜取代。选择 AUTO 是为了保留小字 hinting 与缩放稳定性之间的取舍。

依据 SDK 2.4.5 随包文档 docs/RENDER-QUALITY.md 整理。历史版本说明保留原记录;品牌为 PolarisUI,当前 API 包名为 polaris.sdk.ui。