Jump to content
  • Advertisement
Sign in to follow this  
IrYoKu1

Practical Morphological Anti-Aliasing on the GPU (PC and Xbox 360)

This topic is 2711 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey guys,

After some years asking questions here and wasting everyone's time, now we are proud to give something back to the comunity :)

We have developed a very fast implementation of MLAA on the GPU, both for PC and Xbox 360. In PC it runs 11.8x faster than MSAA 8X (0.44ms on a 9800GTX+), and in the Xbox it only requires 3.79ms to perform anti-aliasing on a 720p image. For comparison, the God of War III implementation requires 20ms of a single SPU (4ms using 5 of them).

The technique will be published in GPU Pro 2 next year, but in the meantime, here you can find more information (we will upload the demo and the source code soon):
http://www.iryokufx.com/mlaa/

Cheers!,
Jorge

[Edited by - IrYoKu1 on September 28, 2010 9:46:25 AM]

Share this post


Link to post
Share on other sites
Advertisement
Interesting, I'm definitely curious to see the details. Is this algorithm doable with D3D 9? I have a 9-based deferred renderer that could benefit greatly post process antialiasing.

Share this post


Link to post
Share on other sites
To add to this there is a GLSL version available that I believe is similar (if not the same, not sure)if people are itching to play around with some code.
The comments are in French though.
http://igm.univ-mlv.fr/~biri/mlaa-gpu/

Share this post


Link to post
Share on other sites
Speed is one thing, but is the resulting image as good? Judging from the (very low resolution) screenshot of the HL2 pole in SuperRad's link, it's far from being as smooth as MSAA 8x.

Also, would that be a solution for AA in deferred rendering graphic engines (instead of edge detection)?

Otherwise, if it ends up to be a new standard AA technique, well amazing job guys!

Share this post


Link to post
Share on other sites
It's great to see you guys put this up! Great work!

The quality of this technique will never be as good as 8x MSAA, but it's pretty darn close for a mere fraction of the cost.

Share this post


Link to post
Share on other sites
Quote:
Original post by Promit
Interesting, I'm definitely curious to see the details. Is this algorithm doable with D3D 9? I have a 9-based deferred renderer that could benefit greatly post process antialiasing.


While our PC version is for DX10, it is definitely not tied to it, as we are not using any of their special features. Furthermore, the Xbox version runs using DX9.

Quote:
Original post by SuperRad
To add to this there is a GLSL version available that I believe is similar (if not the same, not sure)if people are itching to play around with some code.
The comments are in French though.
http://igm.univ-mlv.fr/~biri/mlaa-gpu/


Please note that the work you mention is concurrent with ours, and totally independent (despite the obvious name coincidence).

Furthermore, that approach can't compete with MSAA in terms of performance. We are considerably faster: 0.44ms for a 720p image in a 9800GTX+ vs 3.49ms for a 1248x1024 in a GTX295 (we are using a slightly lower resolution but a considerably weaker GPU).

Quote:
Original post by Dunge
Speed is one thing, but is the resulting image as good? Judging from the (very low resolution) screenshot of the HL2 pole in SuperRad's link, it's far from being as smooth as MSAA 8x.


Please check the image in our project page :)

Quote:
Original post by Dunge
Also, would that be a solution for AA in deferred rendering graphic engines (instead of edge detection)?


Yes, to say the truth, it was the main goal. But afterwards we noticed we were considerably faster than MSAA, so its universally applicable.

Quote:
Original post by Dunge
Otherwise, if it ends up to be a new standard AA technique, well amazing job guys!


We expect so :)

Quote:
Original post by allingm
It's great to see you guys put this up! Great work!

The quality of this technique will never be as good as 8x MSAA, but it's pretty darn close for a mere fraction of the cost.


Thanks! To say the truth, when the technique works, it is as good as 16x. When it breaks it is as bad as 1x. We are currently improving the edge detection, which should considerably improve the quality; we are much faster than MSAA so there is enough room for improvements there, trading off performance for quality.

A colleage of mine will post here a comparison of MSAA vs MLAA, so that you can see the difference.

And don't miss the movie:
http://www.iryokufx.com/mlaa/demo.mp4

Comes with cool music inside =)

[Edited by - IrYoKu1 on September 28, 2010 4:52:33 PM]

Share this post


Link to post
Share on other sites
It's of course worth mentioning that if HDR is used, MLAA will pretty much always look better than standard MSAA approaches in the high contrast areas (since the resolve is done after the tone map).

Anyway I'm looking forward to poking through the code once you guys have it posted.

Share this post


Link to post
Share on other sites
Quote:
Original post by IrYoKu1


Please note that the work you mention is concurrent with ours, and totally independent (despite the obvious name coincidence).

Furthermore, that approach can't compete with MSAA in terms of performance. We are considerably faster: 0.44ms for a 720p image in a 9800GTX+ vs 3.49ms for a 1248x1024 in a GTX295 (we are using a slightly lower resolution but a considerably weaker GPU).



Apologies, I didn't want to appear to be undermining your post, I'm just glad work is being continued on getting a viable GPU implementation of MLAA, as it really is quite nice when it works, and only requiring a colour render loop makes it easy to add to games.
I'm looking forward to the demo :)

Share this post


Link to post
Share on other sites
Quote:
Original post by SuperRad
Apologies, I didn't want to appear to be undermining your post, I'm just glad work is being continued on getting a viable GPU implementation of MLAA, as it really is quite nice when it works, and only requiring a colour render loop makes it easy to add to games.
I'm looking forward to the demo :)


No prob, we just wanted to clarify that :)


Here you have the comparison between 8x and our technique:
http://www.iryokufx.com/mlaa/comparison.zip

Share this post


Link to post
Share on other sites
Wow, the comparison is amazing, especially at the bars in the top right of the image you can really see how much better the new approach looks. One of the main things is that MSAA on rendertargets(FBOs) is still alot slower than on the main framebuffer. Since yours is a postprocess it should be really fast no matter where I render to!

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!