一个高效的矢量图形渲染器
一个(彻底)并行化的实验性Rust矢量图形渲染器,同时具备软件(CPU)和硬件(GPU)后端,并按以下顺序实现以下目标:
它依赖于 Rust 的 SIMD 自动向量化/内建函数以及 [Rayon] 来在 CPU 上获得良好性能,同时使用 [WebGPU]([wgpu])来利用 GPU 的优势。
将以下内容添加到你的 Cargo.toml 依赖项中:
forma = { version = "0.1.0", package = "forma-render" }| 1. 曲线扁平化 | 2. 线段光栅化 | 3. 排序 | 4. 绘制 |
|---|---|---|---|
| 贝塞尔曲线 | 线段 | 像素段 | 排序后的像素段、旧图块 |
| ⬇️⬇️⬇️ | ⬇️⬇️⬇️ | ⬇️⬇️⬇️ | ⬇️⬇️⬇️ |
| 线段 | 像素段 | 排序后的像素段 | 新绘制的图块 |
以下是几个让 forma 在常用矢量渲染器中脱颖而出的实现亮点。
曲率感知的扁平化所有高阶三次贝塞尔曲线先被近似为二次曲线,然后根据其曲率并行地扁平化为线段。这项[技术]由 Raph Levien 开发。
低成本的平移和旋转平移和旋转可以通过渲染实现,而无需重新计算路径。
[Rayon]: https://github.com/rayon-rs/rayon [WebGPU]: https://github.com/gpuweb/gpuweb [wgpu]: https://wgpu.rs/ [technique]: https://raphlinus.github.io/graphics/curves/2019/12/23/flatten-quadbez.html
暂无开放 Issues,或尚未同步最近议题。