bevyengine / bevyengine/bevy

Feathering for Gizmo lines

Open
#12,219 3 comments 0 reactions 0 assignees View on GitHub
A-Gizmos C-Feature X-Needs-SME
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## What problem does this solve or what need does it fill?

The line gizmos (and everything built on top of lines) currently rely on external anti-aliasing to remove staircase effects. Since high-quality AA is relatively expensive, it would be nice if that wasn't necessary to get good-looking lines.

## What solution would you like?

Lines can implement "feathering", which creates extra vertices around the lines that fade out into transparency over a few pixels. egui/epaint is an example of a library that implements this.

## What alternative(s) have you considered?

- Use FXAA instead, which looks kinda bad and is still likely more expensive than feathering since it's a full-screen pass.
- Use higher-quality AA like MSAA, which is relatively expensive in terms of memory usage/traffic and costs extra resolve passes.

Contributor guide

Open the contributing guide

Research direction

Start by locating Bevy's gizmo line-rendering entry points and tracing how line vertices are generated; compare the described approach with egui/epaint's feathering implementation. Done means line gizmos and features built on them visibly reduce staircase effects through transparent edge vertices without requiring external anti-aliasing.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.