compaster
vger-rs
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
compaster
-
[MEDIA] Basic rasterizer using compute shaders and wgpu
repo: https://github.com/pudnax/compaster
vger-rs
-
Vector Graphics on GPU
I've done a library for vector graphics on the GPU which works pretty well for my uses:
https://github.com/audulus/vger
and a rust version:
https://github.com/audulus/vger-rs
(which powers my rust GUI library: https://github.com/audulus/rui)
Here's the approach for rendering path fills. From the readme:
> The bezier path fill case is somewhat original. To avoid having to solve quadratic equations (which has numerical issues), the fragment function uses a sort-of reverse Loop-Blinn. To determine if a point is inside or outside, vger tests against the lines formed between the endpoints of each bezier curve, flipping inside/outside for each intersection with a +x ray from the point. Then vger tests the point against the area between the bezier segment and the line, flipping inside/outside again if inside. This avoids the pre-computation of Loop-Blinn, and the AA issues of Kokojima.
It works pretty well, and doesn't require as much preprocessing as the code in the article. Also doesn't require any GPU compute (though I do use GPU compute for some things). I think ultimately the approach in the article (essentially Piet-metal, aka tessellating and binning into tiles) will deliver better performance, and support more primitives, but at greater implementation complexity. I've tried the Piet-metal approach myself and it's tricky! I like the simpler Shadertoy/SDF inspired approach :)
What are some alternatives?
Egregoria - Contemplative society simulation
nanovgXC - Lightweight vector graphics library implementing exact-coverage antialiasing in OpenGL
luminance-rs - Type-safe, type-level and stateless Rust graphics framework
vger - 2D GPU renderer for dynamic UIs
rui - Declarative Rust UI library
contrast_renderer - Contrast is a WebGPU based 2D render engine written in Rust
glyphy - GLyphy is a signed-distance-field (SDF) text renderer using OpenGL ES2 shading language.
msdfgen - Multi-channel signed distance field generator