SMAA: Enhanced Subpixel Morphological Antialiasing

I was able to get SMAA working inside of paradox. It took a lot of tweaking from the original code, but it works quite efficiently. Here is a screenshot:

SMAA works in screen space as a post process so you can use it on 2D images as well as 3D scenes. I took a screenshot from one of my favorite games(DOD: Source). You can see clearly that on the left there is quite a bit of aliasing and on the right there is hardly any at all(except in the wire which is poorly rendered).

Here you can see the SMAA is being applied to a 3D scene. Again on the left there is a little bit of aliasing and on the right not very much aliasing at all.

I ended up using the color channel to calculate edges instead of the depth buffer. This usually provides the best results. There is also a luminance edge calculation as well. There are 4 presets for quality, and to be honest I did not notice much of a difference between low, and ultra. Low seems to work best for all edges except diagonals. Once you reach the high preset it smooths those as well. There are 3 settings which control quality. MaxSearchSteps, MaxSearchStepsDiag, and CornerRounding. For low quality these were set to: 4, 0, and 100. For ultra these settings were set to: 32, 16, and 25.

I might release the source code if there is enough interest in seeing it.

Nice! We are starting the development of post processing in Paradox, so we will add support for several anti-aliasing screen-space techniques (and hopefully temporal as well).
Glad to see that you were able to add SMAA to your game. With the new post processing effect pipeline, It should be more straightforward.


Adding a link to the paper for reference:

That looks really good. Great work!