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