Morphological anti-aliasing (AA) is an all-new option for the Radeon HD 6000-series cards. It presents a different approach to the aliasing problem in that it needs no insight into the makeup of the scene’s geometry; morphological AA is a post-process filtering technique, accelerated with DirectCompute and compatible with any application from DirectX 9 to 11 (in theory). After a frame is rendered, it is passed through the morphological AA shader that looks for high-contrast edges and patterns consistent with aliasing. It then blends the colors of adjacent pixels to approximate a smooth transition along a line instead of aliased steps. This means that the smoothing effect isn’t limited to the edges of geometry or alpha textures like CFAA; it applies to all of the pixels in the scene.
Conceptually, this method promises results similar to super-sampling, but with performance comparable to edge-detect AA. AMD suggests that some applications will look better than others, and that the technique is not ideal for all scenes and games. So, we tried it ourselves to see what the actual result looks like.
Morphological anti-aliasing works independent of regular anti-aliasing settings, so controlling it might seem confusing at first. Even with the “Use application settings” checkbox enabled, the feature should work, so long as it’s enabled. It can even be used in conjunction with regular AA modes, if you want.
With morphological AA enabled, we fired up Battlefield Bad Company 2. The post-processing filter didn’t seem to make any difference at all. Careful checking verified that, indeed, it does not seem to work with this title. So much for automatic compatibility with all DirectX 9 to 11 games.
This brings us to StarCraft 2, a title in which we're quite interested due to the fact that Radeons are currently known for slow AA performance in this game. With morphological AA enabled, the results are visually obvious, and yet performance remains almost as fast as it is with the feature turned off (roughly twice as fast as it is with 4x multi-sampling, and about four times as fast as 4x super-sampling). This is a much more impressive result.
Performance can only be as impressive as the image quality however. And while morphological AA does smooth out the edges, it can have some less-than-ideal effects on the appearance of the scene. I noticed a little crawling on the edges of moving objects--a very slight shimmering. This is not surprising, as the post-process effect does not have access to geometry details. It’s doing its best on a frame-by-frame basis, but there is likely no temporal information stored to smooth edges between frames. The effect becomes less noticeable as the resolution increases, as with most aliasing artifacts.
The worst-case scenario for morphological AA is low resolutions combined with text. The effect appears to work on a per-pixel basis, which makes sense. But the unfortunate side effect is that, since there are fewer pixels in a low-res scene, there can be undesirable smoothing on things that you’d prefer would stay sharp. Text is a prime example of this. The smoothing isn't as apparent at higher resolutions. Here are some examples of what I mean:
It’s important to note that because morphological AA is a post-process effect, the resulting output can’t be captured with a regular screen capture utility like FRAPS. The comparison images above were created with an application that AMD provided. It uses the same code in the driver to modify the output, just as morphological AA does when running a game.
In any case, morphological AA is an interesting addition to the existing AA tool set. Folks running high resolutions may find themselves enabling the feature on almost everything because of its low performance impact. Users with displays limited to lower resolutions might want to consider regular AA modes due to the visual artifacts on text. The good news here is that more conventional AA techniques tend to be more playable in low-resolution environment anyway.