Morphological Antialiasing

category: general [glöplog]
I just found out about it now. Has anyone here tried to implement it? Is it worth it?
added on the 2010-11-25 15:58:34 by xernobyl xernobyl
yes, Smash has done an implementation of it, and the results are very good :) I guess if you have a defereed renderer this is very useful.

There are some hybrid versions that works very well together with MSAA aswell.
added on the 2010-11-25 16:01:10 by pantaloon pantaloon
As to save some or perhaps most of us a Google search, I'd appreciate some short summary on what it is when you open topics like these :) Of course it's too late now, but you know..
added on the 2010-11-25 16:01:17 by superplek superplek
plek: It's post processing the frame-buffer, trying to reconstruct an anti-aliased result based on some common occurrences. Works quite well with simple shapes (like linear slopes), but seems to break down horribly with complicated edges. I haven't tried to implement it though, just speaking from the images in the paper (+ a tad of common sense).
added on the 2010-11-25 16:07:19 by kusma kusma
Okay, thank you Kusma :)
added on the 2010-11-25 16:08:38 by superplek superplek
panta: Yes, I imagine this is pretty cool for deferred renderers. It reminds me a lot of an AMD-paper from a few years ago, but they used the depth-buffer for help, and implemented it in the driver (so you could force it on any game). Quite cool :)
added on the 2010-11-25 16:10:59 by kusma kusma
added on the 2010-11-25 16:29:49 by xernobyl xernobyl
I thought implementing AA in "software" these days would be beaten any time by the AA features implemented in hardware by modern GPU's?
intel has some source code about this http://visual-computing.intel-research.net/publications/publications.htm#Y2009

It works resonably well in 24bpp images.
added on the 2010-11-25 23:49:15 by zeroshift zeroshift
Looks nice, got to try and implement it later.
added on the 2010-11-26 00:01:28 by msqrt msqrt
0<< that's the original publication, although it seems the Japanese did it first for anime.

That reminds me: is using pixel buffers to modify some framebuffer / texture while the GPU is busy doing stuff with something else viable / doable on a pc? Kind of like PS3 does with it's [insert 3 random letters] CPU things.
added on the 2010-11-26 00:21:14 by xernobyl xernobyl
being able to AA before other effects are added seems like an important thing.
it seems to me that whenever scenes start having crazy effects like bloom and motion blur, the AA gets all messed up.

And a low multitude of MSAA never looks good, worse even than no AA. (i don't know why i thought this was relevant. so nvm i guess.)
Problem is that it doesn't help with sub-pixel or shader aliasing. Best case for large edges looks very nice though and makes it worth to use if you can't afford MSAA. I'd like to see some hybrid antialiasing implementation where sub-pixels are handled with high MSAA and rest of scene with MLAA.
added on the 2010-11-26 11:15:32 by pommak pommak
It's rubbish for thin straight lines (predictable) but looks quite nice on solid edges. I did a similar implementation a couple of years ago, but it used simple Sobel modifications. Props to these guys for putting in the research effort.
added on the 2010-11-26 13:11:23 by apricot apricot
pommak: something like this, then? It's the paper I was talking about earlier; it tries to search through the MSAA buffers of neighboring pixels to try to identify slopes. I think the results are better than those of MLAA, but it requires multi-sampling, which isn't always available.
added on the 2010-11-26 13:18:21 by kusma kusma
Hmmm, I wonder if the MLAA algorithm could be relevant to reduce jagginess on shadow mapping, though...
added on the 2010-11-26 17:03:49 by kusma kusma
yes, i implemented it and i really like it especially for deferred renderers where there's no really good solution available. it's not perfect but it does a good job for solid shapes.
of course you can use it on msaa buffers too, and it also helps fix artefacts that msaa doesnt - i.e. other than poly edges.

added on the 2010-11-26 17:25:04 by smash smash