Thursday, 17 February 2011

Tech Report: Killzone 3 MLAA Update

MLAA, for many, might be considered the 'holy grail' when it comes to anti-aliasing on the PlayStation 3. As more traditional methods, such as MSAA and QAA, are either too bandwidth heavy or, in the case of QAA specifically, feature unwanted IQ impeding side-effects, Sony's custom AA solution largely mitigates both of these concerns. But it's not perfect. MLAA has its own set of drawbacks, and as a result needs to be tweaked accordingly when used in different titles.

By far the most impressive use of MLAA thus far, comes with its inclusion in Sony's God Of War 3. Killzone 3 however, demonstrates both the benefits and limitations of the technique: there is both ample coverage of well AA'd pixel edges and a myriad of frequent sub-pixel issues. By comparison, the QAA found in KZ2 does a better job of dealing with this, although at the expense of having clean and crisp IQ. Texture details are blurred, and image sharpness is lost.

With Killzone 3 quickly approaching release, and with the single-player demo now available to all, we thought it a good idea to see just how well the MLAA works in the latest public build of the game, saving any definitive conclusions until our final tech report on the final retail game.

The latest demo allows us to scrutinise the game closely on a near-fully ISF caibrated display, which I might add, features very liitle in the way of grayscale errors (noticeable by eye that is), perfectly set contrast, brightness and sharpness. Plus the gamma curve is at a ideal 2.2. Thus, this allows us to get by far the most accurate picture of what is going on.

By contrast, the build I played at the Eurogamer Expo (same demo level) was presented to attendees on uncalibrated Bravia displays, left on eye-blazing Dynamic modes, and the game itself shown off in 3D, upscaled and distinctly fuzzy. Hardly test material, if there was any to be had.

So, with that out of the way, today we're going to take an updated look at the use of MLAA in Killzone 3. Obviously, the question is, just how does it fare at this point in regards to its current implementation?

The end answer is actually very well. All things considered. While the use of MLAA still has its problems, the many benefits that it does provide - to both the engine and the finished graphical look of the game - does indeed, mitigate these somewhat. Image clarity is far superior to that of Killzone 2 - texture detail is reassuringly sharp, the display is crisp and the level of AA is excellent on regular pixel edges.

As we mentioned earlier, the use of MLAA needs to be customised when used in different types of games, each with their own visual nuances. In most cases, titles with objects made up of larger geometry, rather than ones with smaller, finer details are perhaps most suited to the technique. Killzone 3 falls into the later bracket, and as a result we see some obvious side-effects of the morphological solution that break the otherwise accomplished use of AA.

For a start, it's pretty clear that most objects get a fair amount of edge smoothing - more than what would be possible with 4xMSAA in many scenarios. However, the more complex and intricately detailed parts of the environment - ones made up of small pieces of geometry - suffer from noticeable edge shimmering, and what looks like soft, crawling edges.

With more in the way of detailed geometry being pushed about on screen this time around, the use of MLAA isn't perhaps as impressive as it would be in a completely different scenario. The greater the amount of thin geometry in the scene, the less in the way of decent edge smoothing is present. In the end, we're left with anything between 2x to 16xMSAA levels of anti-aliasing in total, with that being largely scene and geometry size dependant.

That said, the core of the issue is sub-pixel based; when looking at the actual pixel edges - and most of the scene in general - you can see that those edges have been smoothed off. And to an extremely high standard.

For those who aren't aware, MLAA only works on pixels. It doesn't cover sub-pixels (triangles that are smaller than the pixel size of the rendering resolution).

You see, MLAA works on finding edges by analysing the pixel structure in combination with using a depth buffer. It doesn't work on geometry at all. High contrast areas stick out clearly, and thus these parts of the scene effortlessly receive AA. Low contrast ares - like transition between textures - are harder to detect. But unlike QAA, Sony's MLAA implementation doesn't blur texture details.

By comparison, MSAA - and indeed SSAA (supersampling) - work on both the pixel structure and on available sub-pixels to some extent, meaning that the accuracy of the anti-aliasing is superior in comparatively high levels to MLAA, even if it is far more performance heavy. MSAA generally incurs a higher memory and processing cost than MLAA. Definitely in the case of 4x or more, but also compared to 2x in terms of KZ3's implementation; which is not only computationally lighter, but consumes less memory as well.

In order to tackle the current sub-pixel shimmering issue, Guerrilla Games would have to modify their MLAA code to work on both pixel and sub-pixels through an entire scene. This would come at a greater processing cost overall, whilst eroding away a larger amount of memory, thus reducing the very benefits that MLAA provides - it's relatively cheap, great on high-contrast edges, and can provide up to 16xMSAA type coverage on some surfaces.

Failing that, the other option that they could use, is to combine 2xMSAA following up with MLAA afterwards. Having both forms of AA would provide better sub-pixel coverage ( as in, they would have some), while obtaining much higher quality edge smoothing as a whole. However, like we've just discussed, additional resources would be required that would take away from other parts of the game's graphical make-up. In which case, MLAA on its own is more than a fair compromise.

But for now, the demo privides us with a good indication of how the final game will fair. Sure, the code is at least a couple of months old. But Guerilla have had ample time to to make small improvements since work on the demo was completed. In any case, its current implementation of MLAA - as seen in the demo - is still vasty superior than the low level of MSAA found on consoles. There's plenty of edge smoothing that is completely successful, which helps put to rest some of the niggles that come with the technique.

No comments:

Post a Comment