跳转到内容

布局设置:间距、填充与页面配置

配置位图字体的布局,包括间距、内边距和对齐选项,以生成最佳的纹理图集。

布局设置决定字形怎么摆到纹理图集里,跟输出质量、文件大小、运行时性能都有关系。

布局配置管三件事:

  • 内边距 (Padding):字形周围的透明空间,防止颜色溢出。
  • 间距 (Spacing):相邻字形之间的空隙,影响打包效率。
  • 页 (Pages):纹理图集图像数量,系统自动管理。

默认值:1 像素

内边距给每个字形加一圈透明边框。字体缩放或做纹理过滤时,没有内边距容易出现颜色混合之类的瑕疵。

  • 防止溢出:相邻字形在纹理采样时不会颜色混合。
  • 改善缩放:字体放大缩小时渲染更清晰。
  • 支持过滤:给双线性或三线性纹理过滤留缓冲区。
  • 标准:1-2 像素,够用了。
  • 高分屏/Retina:2-4 像素。
  • 大幅缩放:按需加大。
  • 注意:内边距越大,纹理尺寸越大。
内边距 = 0: 字形可能会相互溢出。
内边距 = 1: 适用于大多数项目的标准安全边距。
内边距 = 2: 为高质量渲染提供额外缓冲。

默认值:1 像素

间距是相邻字形边界框之间的空隙,让打包算法排列字形更高效。

  • 打包效率:一致的间距有助于算法排列。
  • 调试:在图集中更容易看清单个字形。

两者一起决定字形之间的实际距离:

  • 内边距属于字形自身空间的一部分。
  • 间距是两个字形空间之间的缝隙。
  • 总分隔距离 = 字形 1 的内边距 + 间距 + 字形 2 的内边距
  • 标准:1-2 像素,大多数字体够用。
  • 紧密打包:0-1 像素,纹理最小,但可能有瑕疵。
  • 调试:4-8 像素,字形边界一目了然。

默认值:1 页

字形放不进一个纹理时,系统会自动分到多个页面。

  • 大型字符集:比如包含数千个字形的 CJK 字体。
  • 纹理大小限制:硬件有上限(如 4096x4096 像素)。

系统自动管理分页,尽量让纹理空间利用率最高。

  • 性能:每多一个页面就多一次纹理切换。
  • 单页:大多数拉丁字符集放进一个 512x512 或 1024x1024 的纹理没问题。

布局设置会写进导出的字体文件(如 .fnt):

  • 内边距:对应 BMFont info 块的 padding 属性。
  • 间距:影响图集中每个字符的 x/y 位置和偏移量。
  • :决定描述符引用多少个纹理文件。
  1. 从默认值开始:1px 内边距 + 1px 间距,按需调整。
  2. 在目标尺寸下测试:看字体在最终渲染大小下的实际效果。
  3. 为缩放预留:运行时要缩放的字体,内边距留大一些。
  4. 平衡质量和大小:视觉质量和内存不能只顾一头。
  • 桌面:2px 内边距 + 1px 间距。
  • 移动端:1px 内边距 + 1px 间距,省内存。
  • 高分屏:内边距 2px 起步。
  • 字形溢出/瑕疵:加大内边距
  • 纹理图集太大:缩小字体、减少字符集,或者允许更多
  • 打包效率低:调一下间距
  • 大量字形渲染慢:可能页数太多,试着把字形塞进更少的纹理。