Alternative AA methods and their comparison with traditional MSAA*

STALKER, Metro 33, Trials HD, Starcraft 2, etc. There's a whole set that do lighting deferred in a middle pass (so-called "light pre-pass" variants) that really count as "fully" deferred in this context as well.

Thanks. Well at least two of those games support MSAA, so we know it ain't impossible.
 
Understood. Although in the deferred games I can think of that don't natively support MSAA, performance is hardly an issue.
 
Question about MLAA:

would it make sense to relax MLAA a little bit?

say you have the image with no AA
now you produce the image with MLAA

instead of using pure MLAA image, you could use a linear combination of
image(no AA) and image(MLAA), say

x*imaga(no AA) + (1-x)*imaga(MLAA)

if you use x=0, you get the standard MLAA image.

but if you choose x for instance to 0.5, you get a mixture. this composed image has:
-less AA
+less texture blur
+(?) more temporal stability

do you guys think that with such a relaxation method you could reduce the MLAA artefacts (with the expense of some AA).

of course, the ideal thing would be to adaptively determine x on a per pixel basis, and thus the part from the clear no AA image and the part from the postprocessed MLAA image. Ideally, x should be 0 in the vincinity of edges and 1 in the vincinity of detailed textures. probably you could use the depth buffer for this?!

maybe this could also be used to get rid of the HUD blurring in a pure GPU postprocessing MLAA implementation: just define a mask with 0 and 1 and use the 1 for the hud part pixels...
 
Last edited by a moderator:
You could certainly lerp between the image with MLAA and the image without it based on an edge detection filter run on the depth and the normals, if you really wanted to avoid touching triangle interiors. However that may be undesirable, for instance if you wanted MLAA applied to alpha-tested geometry. I suppose if the game itself were implementing MLAA then it could just manually mask those pixels, but it wouldn't work if done in the driver. Plus the driver wouldn't have access to the normals unless the game renders them, and the driver recognizes the game.

As for temporal stability, it wouldn't fix anything. The temporal issues with MLAA are caused by the fact that geometry "snaps" from one pixel to another (since the coverage test is only performed once per pixel) as the edge moves relative to the screen. MSAA helps by having multiple sample positions per pixel, allowing edges to have sub-pixel movements. So naturally an image without any AA has these problems too.
 
do you guys think that with such a relaxation method you could reduce the MLAA artefacts (with the expense of some AA).
I think it would't help. Human eye is sensitive to imperfections (aliasing), so you'll see aliasing artifacts + MLAA artifacts in this case.

It's similar to AA 2x - it never become much popular, because it leaves aliasing on angles corresponding to sample orientation. Eyes are always attracted by the aliasing artifacts (which will be the same as with AA switched off), so there's no subjective improvement.
 
I guess in theory you could use some motion vector to get an approximation, but basically, yes. You need to be able to measure what fraction of a screen pixel an object has moved, or the MLAA method will feature pixel-level motion/temporal aliasing.
 
I guess in theory you could use some motion vector to get an approximation, but basically, yes. You need to be able to measure what fraction of a screen pixel an object has moved, or the MLAA method will feature pixel-level motion/temporal aliasing.

and what about this framerate enhancing interpolation stuff, presented in the Force Unleashed 2 tec demo.

does such a temporal interpolation stabilizes AA?

Could you, in combination with MLAA, use this temporal frame interpolation to "guess" subpixel movement?

I mean, you are interpolating frames anyway...this should give you the oportunity to reconstruct subpixel info, right?
 
Last edited by a moderator:
and what about this framerate enhancing interpolation stuff, presented in the Force Unleashed 2 tec demo.
does such a temporal interpolation stabilizes AA?
I don't know the exact detail about their technique, but our experimental frame rate interpolator didn't like AA at all...

STALKER, Metro 33, Trials HD, Starcraft 2, etc. There's a whole set that do lighting deferred in a middle pass (so-called "light pre-pass" variants) that really count as "fully" deferred in this context as well.
...Little Big Planet, Killzone 2, Resistance 2, Infamous, Uncharted, Crysis 2 (and all other Cryengine 3 games), etc are all also fully deferred (*). Deferred rendering means that the engine stores the surface normal and depth (position) for each visible pixel in a texture, and does all lighting in image space. This way the lighting complexity is not dependent on the scene complexity.

(*) I also count light prepass as "fully deferred", because it's mostly just a way to save some texture bandwidth when doing deferred rendering (multipassing lights). Light prepass renderer saves normal, depth and specular exponent to the g-buffers, just like all other deferred renderers (but doesn't read/write material color during lighting. Multiplying with material color is done after lighting).
 
I don't know the exact detail about their technique, but our experimental frame rate interpolator didn't like AA at all...

ok, thanks for the info!

one question: in your implementation...did you first de-aliase and then interpolate the frames? or did you interpolate the frames, and then use AA at the end?

I have the feeling that you have to be carefully what you use for your frame interpolation? I could imagen that it is difficult, if you use AA'd frames and actual frames without AA to interpolate, or something like this...

can you give us a little bit more details about your test in this regard?
 
...Little Big Planet, Killzone 2, Resistance 2, Infamous, Uncharted, Crysis 2 (and all other Cryengine 3 games), etc are all also fully deferred (*).
Yep for sure - man you can list those off pretty quickly :)

(*) I also count light prepass as "fully deferred"
Agreed. As per my SIGGRAPH presentation I consider it a "variant" at best suitable for some hardware, with tiled being obviously superior in the long run.

And as someone mentioned above, you really do need sub-pixel information to avoid sparklies with any post-process blurring like MLAA. You simply don't have enough information to reconstruct the signal acceptably.
 
Last edited by a moderator:
Interesting is an understatement. Very good insight to the entire process, really clever approach and some pretty good results - it's actually a bit sad that it was introduced with a game that was otherwise not too remarkable (9 month development time WTF??). But I hope the game dev community is paying attention, that they're going to pick up on DLAA and we're going to see it in many new games.
 
Interesting is an understatement. Very good insight to the entire process, really clever approach and some pretty good results - it's actually a bit sad that it was introduced with a game that was otherwise not too remarkable (9 month development time WTF??). But I hope the game dev community is paying attention, that they're going to pick up on DLAA and we're going to see it in many new games.
Indeed,results are really good and stability is quite impressive in comparison with MLAA.Just wondering...Can other developers copy what LA already done or what?I mean,code is not for everyone,right?
 
Back
Top