#rasterizer #gpu #rasterization #2d #hardware #geometry #sweep

wpf-gpu-raster

用于GPU生成几何图形的2D光栅化器

1个不稳定版本

0.1.0 2023年9月25日

475图形API

MIT 许可证

315KB
4K SLoC

这是将WPF硬件光栅化器代码移植到Rust的版本。该光栅化器是Direct2D光栅化器的先驱。Direct2D在不支持独立光栅化的硬件上运行时仍然使用类似的技术。

设计

光栅化使用的一般算法是对形状进行垂直扫描,保持一个活动的边缘列表。扫描在子扫描线分辨率下进行,结果产生以下几种情况:

  1. 在覆盖缓冲区中将子扫描线合并,并输出为“复杂扫描”。这些作为由三角形带构成的线条输出。
  2. 在活动边缘列表中识别出简单的梯形,并使用更快的简单梯形路径输出。

使用向前差分误差度量法来计算一个平铺版本的方法,该方法将匹配传统的自适应递归平铺。


lib.rs:

将2D路径转换为表示该路径抗锯齿填充的三角形带网格的顶点集。

use wpf_gpu_raster::PathBuilder;
let mut p = PathBuilder::new();
p.move_to(10., 10.);
p.line_to(40., 10.);
p.line_to(40., 40.);
let result = p.rasterize_to_tri_list(0, 0, 100, 100);

依赖关系