3个不稳定版本
0.2.1 | 2024年1月23日 |
---|---|
0.2.0 | 2024年1月4日 |
0.1.0 | 2023年12月21日 |
#27 在 渲染
1,454 每月下载量
用于 tgf
42KB
925 行
SDF("有符号距离场")生成算法
算法
目前,此库包含以下SDF生成算法
sdfer::bruteforce_bitmap
:基于位图的"最近相反颜色像素"暴力搜索- 这是Valve在其2007年SIGGRAPH提交中推广的算法,"Improved Alpha-Tested Magnification for Vector Textures and Special Effects"
- 成本过高,因为精度不足(每像素)导致需要更大的输入图像(Valve论文以4096x4096 -> 64x64为例)
sdfer::esdt
:"欧几里得亚像素距离变换"- 这是从
@use-gpu/glyph
npm
包的原始JS实现移植的Rust版本 - https://acko.net/blog/subpixel-distance-transform/ 博客文章解释了如何将旧的EDT("欧几里得距离变换")算法修改为更好地利用例如矢量文本的灰度AA光栅化中的信息(其中"灰度AA"实际上是每像素覆盖的alpha通道编码)
- 与输出像素的数量(与输入像素1:1对应,因此也不需要过大的光栅化)成线性关系,使其比大多数其他算法更具可行性,适用于按需运行时将矢量→SDF转换
(例如,为了避免滚动/平移时的像素对齐文本,在需要更大光栅化之前允许一定程度的平滑捏合缩放等)
- 这是从
许可证
MIT许可证下授权(LICENSE-MIT 或 http://opensource.org/licenses/MIT)。
注意:这是MIT许可,而不是常见的双重许可,主要是因为ESDT算法实现是从
@use-gpu/glyph
npm
包移植的JS代码,该包本身是MIT许可的。
贡献
除非您明确说明,否则您提交的任何有意包含在此crate中的贡献都应按照MIT许可,不附加任何额外条款或条件。
依赖项
~0–0.8MB
~11K SLoC