Morphological Antialiasing
category: general [glöplog]
I just found out about it now. Has anyone here tried to implement it? Is it worth it?
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.
There are some hybrid versions that works very well together with MSAA aswell.
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..
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).
Okay, thank you Kusma :)
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 :)
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.
It works resonably well in 24bpp images.
Looks nice, got to try and implement it later.
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.
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.
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.)
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.
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.
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.
Hmmm, I wonder if the MLAA algorithm could be relevant to reduce jagginess on shadow mapping, though...
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.
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.