#anti-aliasing #graphics #target #smaa

smaa

A library for post process antialiasing using SMAA

16 breaking releases

new 0.17.0 Apr 26, 2025
0.16.0 Jan 27, 2025
0.15.0 Jul 28, 2024
0.13.0 Mar 9, 2024
0.2.1 Mar 28, 2021

#120 in Game dev

Download history 10/week @ 2025-01-08 4/week @ 2025-01-15 99/week @ 2025-01-22 21/week @ 2025-01-29 27/week @ 2025-02-05 16/week @ 2025-02-12 8/week @ 2025-02-19 38/week @ 2025-02-26 16/week @ 2025-03-12 108/week @ 2025-03-19 7/week @ 2025-03-26 9/week @ 2025-04-02 2/week @ 2025-04-09 9/week @ 2025-04-16 130/week @ 2025-04-23

151 downloads per month
Used in 2 crates

MIT license

1.5MB
17K SLoC

smaa-rs crates.io docs.rs

Post-process antialiasing for wgpu-rs, relying on the SMAA reference implementation.

Example

// Create SMAA target
let mut smaa_target = SmaaTarget::new(
    &device,
    &queue,
    window.inner_size().width,
    window.inner_size().height,
    swapchain_format,
    SmaaMode::Smaa1X,
);

// Main loop
event_loop.run(move |event, event_loop| {
    if let Event::WindowEvent { event, .. } = event {
        match event {
            WindowEvent::RedrawRequested => {
                let output_frame = surface.get_current_texture().unwrap();
                let output_view = output_frame.texture.create_view(&Default::default());
                let smaa_frame = smaa_target.start_frame(&device, &queue, &output_view);

                // Render the scene into `*smaa_frame`.
                // [...]

                smaa_frame.resolve();
                output_frame.present();
            }
            _ => {}
        }
    }
});

Dependencies

~14–23MB
~344K SLoC