13 个版本
0.5.1 | 2023 年 4 月 21 日 |
---|---|
0.5.0 | 2022 年 10 月 4 日 |
0.4.7 | 2022 年 10 月 4 日 |
0.4.6 | 2022 年 7 月 10 日 |
249 在 游戏 中
每月下载量 100
在 4 个包中使用(通过 srs2dge-text)
155KB
558 行
签名距离场(SDF)纹理可以更灵活地渲染文本或其他矢量艺术,同时使用更少的视频内存(对于纹理)并提高质量[1]。
此 no_std
库直接渲染 SDF:s,而不是通过降低高分辨率光栅的分辨率。
[1] 例如
- 可以使用单个 64px 的符号渲染 14px 和 200px 的符号。
- 添加发光、轮廓等功能很简单。
比较
注意:对于简单的符号,请使用 fontdue。它要快得多。
任务 | SDF | 常规 |
---|---|---|
高分辨率符号 | ✓ | ✓ |
中等分辨率符号 | ✓ | ✓ |
低分辨率符号 | ✓ | |
拉伸或压缩符号 | ✓ | |
阴影边框和效果 | ✓ | |
GUI | ✓ | |
3D 游戏世界 | ✓ |
- ✅ 表示擅长
使用 image
的示例用法
let font = fontsdf::Font::from_bytes(..).unwrap();
let (metrics, sdf) = font.rasterize('x', 64.0, true);
image::GrayImage::from_raw(metrics.width as _, metrics.height as _, sdf)
.unwrap()
.save("sdf_x.png")
.unwrap();
示例输出
正常
SDF
示例结果
正常
- 128x156
- 80px 字体大小
SDF
- 128x128
- 48px (+半径) 字体大小(32px 输入大小对于任何输出大小都足够了)
- 'free' 阴影
待办事项
依赖项
~6MB
~140K SLoC