2
\$\begingroup\$

I'm looking into the newer OpenGL's with GLFW, but I'm stuck in a decision. What kind of anti aliasing is the best, or something that makes it look real, not "real". I don't want the picture blurred, I want it clear. I'm thinking about super sampling but that does not seem like the best due to that it uses a ton of resources. What's your experience with what AA and did you like it? Can someone explain all the types of AA? Thanks!

\$\endgroup\$
5
  • \$\begingroup\$ This question is very poorly specified. It's not clear what you mean by "look real, not 'real'", or how anti-aliasing affects that. \$\endgroup\$ Jan 12 '13 at 0:06
  • \$\begingroup\$ I don't want a blurred image, I'm looking for a kind of anti aliasing that is able to clear the image without remove anything or like I said blur it. \$\endgroup\$ Jan 12 '13 at 0:10
  • \$\begingroup\$ FSAA is pretty standard. It works by rendering at higher resolutions and downscaling. MSAA is newer, and only does this supersampling for the depth and stencil buffers, which is much less costly since the fragment shader only needs to be run once per pixel. \$\endgroup\$
    – jmegaffin
    Jan 12 '13 at 0:11
  • 2
    \$\begingroup\$ @BorealGames I doubt FSAA has been standard for years; it is simply too slow. MSAA has been a standard for awhile and nowadays, postprocessing approaches like MLAA and FXAA are becoming fairly standard. \$\endgroup\$ Jan 12 '13 at 0:20
  • \$\begingroup\$ @user1870398: "I don't want a blurred image" That's not clearing things up. What exactly do you mean by not being "blurred"? Any antialiasing technique will ultimately introduce "blur" of some form. The question is, will it be the correct "blur"? \$\endgroup\$ Jan 12 '13 at 3:04
5
\$\begingroup\$

There was a SIGGRAPH 2011 course on antialiasing in games, which will probably give you far more information about many more types of AA than you really want. :)

When you run a typical PC game and in the options it gives you a choice of "2X, 4X, or 8X" antialiasing, it's referring to multisample antialiasing, MSAA. This stores super-resolution frame buffers and resolves visibility per sample, just like supersampling - but the pixel shader is run only once per pixel, not per sample, and the color it outputs is replicated to all samples in that pixel. That improves performance, but MSAA still requires a lot of extra memory, and induces complications with things like deferred shading.

The latest hotness is to do postprocess antialiasing, where you render the frame normally without MSAA or anything else, then run a filter on the image afterward that tries to identify sharp edges and blur along them or otherwise "repair" them to remove jaggies. This has been quite successful since it's faster and consumes much less memory than MSAA, and it's relatively easy for developers to add to their games. (In fact, GPU vendors are even starting to add postprocess AA options to their drivers, so the game doesn't even need to support it directly.) There are many flavors of postprocess antialiasing; the major ones are detailed in that SIGGRAPH course. One of the most popular types currently is fast approximate antialiasing, FXAA.

\$\endgroup\$
2
  • \$\begingroup\$ +1; I've personally come to prefer PP AA because, in addition to the reasons outlined in this answer, it plays much nicer with forced AA through driver control panels (and my experience is that a lot of folks do this and will then blame you - as the developer - if things go bad: it's the old "but everything else works!" thing). \$\endgroup\$ Jan 12 '13 at 0:37
  • 1
    \$\begingroup\$ "so the game doesn't even need to support it directly." Wonderful. Because the only thing better than the driver going behind the programmers back is the driver blurring an image that didn't need antialiasing (see: text), or God help you, already had real antialiasing applied to it. \$\endgroup\$ Jan 12 '13 at 3:03

Not the answer you're looking for? Browse other questions tagged .