bevyengine / bevy

A refreshingly simple data-driven game engine built in Rust
https://bevyengine.org
Apache License 2.0
33.49k stars 3.26k forks source link

Explain the pros and cons of each anti-aliasing technique #13911

Open alice-i-cecile opened 2 weeks ago

alice-i-cecile commented 2 weeks ago

How can Bevy's documentation be improved?

Bevy has a large number of anti-aliasing techniques. What are they each good for? Why should I choose one over another?

Ideally, this information is clearly listed in module level documentation, in a module that contains the various anti-aliasing tools.

To quote @superdump:

MSAA only anti-aliases mesh edges, and uses a lot more video RAM. It is needed for alpha to coverage methods which can significantly improve the look of dense meshes which need some transparency for anti-aliasing edges of alpha mask textures like leaves. FXAA is a post-processing pass that is fast but not the best quality. SMAA is also a post-processing pass that is fast and a bit better quality. The TAA implementation is currently still experimental. It deals with not only spatial aliasing, but also temporal. It can help to smooth out 'fireflies' from specular highlights from light sources that scatter off material/mesh surfaces at very specific angles.

alice-i-cecile commented 2 weeks ago

The anti-aliasing code isn't nicely grouped together yet: that would be the first step of this work (check in with rendering experts!). Then once that's done, we can add nice documentation (including on how to turn it off for pixel art games).