If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
![]() |
|
|
#1 |
|
Crazy coder
|
I just uploaded a demo of GPAA, a post-processing antialiasing technique that is using the actual geometric information to blend pixels with neighbors along geometric edges. The best case is actually near horizontal or near vertical edges, with the worst case being diagonal lines, although those are handled pretty well too.
Comparison with and without GPAA: ![]() Downloadable from my website. Toggle GPAA with F5. |
|
|
|
|
|
#2 |
|
Darlek ******
Join Date: Jun 2004
Posts: 9,501
|
do near horizontal or near vertical edges need aa ?
__________________
Guardian of the Most holy Two Terabytes of Gaming Goodness™ |
|
|
|
|
|
#3 |
|
Member
Join Date: Nov 2008
Posts: 131
|
Very nice, how much performance cost?
|
|
|
|
|
|
#4 |
|
Senior Member
Join Date: Nov 2004
Location: Ohio
Posts: 1,209
|
Interesting Humus how much more costly would be a 10 bit implementation? Obviously using 7 bits for the coverage is a bit overkill but I was thinking 3 bits for the neighbor and at least 6 bits for coverage while not expecting something along the lines of a 9 bit implementation.
|
|
|
|
|
|
#5 |
|
Member
Join Date: Aug 2005
Posts: 278
|
Looks great. Seems to have the worst edge quality (still very good) at somewhere areound 10-20deg angle. Looks perfectly smooth once you get very far away from there!!! So I expect this will be in the next Just Cause ?
Last edited by CNCAddict; 13-Mar-2011 at 16:56. |
|
|
|
|
|
#6 |
|
Hello :-)
Join Date: Sep 2005
Location: Cambridge, UK
Posts: 1,307
|
Very nice. I suspect the buffer copy isn't going to be an issue for the vast majority of games.
Naturally I'd wonder how fast it is with a more complex scene. GPUs typically aren't too hot at drawing lines. You should also look into applying this technique to shadow post processing. This was similar to an experiment I'd done a long time ago - however I didn't preprocess the model the way you are (cpu silhouette detection instead), and I found I was limited by DX9's capabilities. My concern is it'll start to fall over once you get very small triangles. Certainly subpixel triangles would be an interesting case |
|
|
|
|
|
#7 | |
|
Crazy coder
|
What I measured on my HD 5870 was 0.08ms for copying the backbuffer and 0.01ms for the edge smoothing at 1280x720, so it's indeed very cheap. But it is also dependent on the scene geometry complexity, so more advanced scenes would be more costly.
Quote:
|
|
|
|
|
|
|
#8 |
|
Senior Member
Join Date: May 2005
Posts: 2,038
|
I hope this isn't ironically meant rhetorical question... In the case it is, ignore my reply
![]() Current rotated-grid / sparse sampling methods, which reach maximum anti-aliasing potential on near vertical/horizontal angles, are so popular because of that.
__________________
Sorry for my English. But I hope it's better than your Czech |
|
|
|
|
|
#9 |
|
Meh
Join Date: Mar 2004
Location: New York
Posts: 9,809
|
GTX 580, 1920x1200. GPAA On/Off: 513/552 fps.
Interesting approach but like Humus said, competitors like SRAA and MLAA are much less sensitive to scene complexity.
__________________
What the deuce!? |
|
|
|
|
|
#10 |
|
Senior Member
Join Date: Feb 2004
Posts: 2,448
|
I tried this demo a few times, and I cannot spot the differences with GPAA on or off. MSAA is not being forced on by my video card, and it's not enabled in the options.
|
|
|
|
|
|
#11 |
|
Moderator
Join Date: Feb 2002
Location: Taiwan
Posts: 2,348
|
I was thinking, is it possible to detect which pixels are on the edge without the second line pass?
One idea I can think of is to put the positions of the vertices available to the pixel shader, then compare the pixels' positions against the edges. If it's within a certain margin (such as, maybe less than one pixel or something), consider it's to be an "edge pixel." I am not sure about the cost of this (compared to a second edge pass) though. But at least there would be no need to send the geometry twice. |
|
|
|
|
|
#12 | ||
|
Crazy coder
|
Quote:
Quote:
|
||
|
|
|
|
|
#13 | |
|
hardly a Senior Member
Join Date: Jul 2008
Location: still camping with a mauler
Posts: 3,637
|
Everything looked really smooth and ran fast on my friend's laptop which has some pathetic nvidia dx10 chip.
The scene was extremely simple; how would this technique fare in something like Crysis or JC2? Often it seems those games that need AA the most are those that least benefit from post-process AA, or MSAA for that matter.
__________________
Quote:
|
|
|
|
|
|
|
#14 | |
|
Hello :-)
Join Date: Sep 2005
Location: Cambridge, UK
Posts: 1,307
|
Quote:
[edit] Actually I think you mean something else... never mind |
|
|
|
|
|
|
#15 |
|
Senior Member
Join Date: Feb 2004
Posts: 2,448
|
Edges look smooth no matter the setting. I've checked and double checked my control panel settings. Running a Geforce GTS 250 with driver 266.35. Vista x64(Though, I doubt that matters...).
|
|
|
|
|
|
#16 |
|
Crazy coder
|
It turns out there is a patent on pretty much exactly this idea from 1996, which the author of it pointed out to me in the comments on my website:
http://www.freepatentsonline.com/6005580.pdf Does anyone know what I should make out of this? How would this affect my demo? Would anyone using this technique need to obtain a license or something? I have other ideas based on similar principles which I'd like to explore, how different would a technique have to be to not clash with any patent? I notice for instance that there's another patent which approaches the problem in a similar fashion, but just does things a little bit different (shade both sides instead of filtering): http://www.freepatentsonline.com/7286138.html And what about this: http://www.faqs.org/patents/app/20080252659 |
|
|
|
|
|
#17 | |
|
hardly a Senior Member
Join Date: Jul 2008
Location: still camping with a mauler
Posts: 3,637
|
1996? Is that still valid?
The guy doesn't sound hostile in his comment.
__________________
Quote:
|
|
|
|
|
|
|
#18 |
|
Senior Member
Join Date: Feb 2002
Posts: 2,020
|
I think patents are valid for 20 years and it doesn't matter if the inventor doesn't sound hostile since he doesn't own the patent. It's assigned to Micron. I don't know why they were interested in AA back then. Did they ever make graphics chips?
|
|
|
|
|
|
#19 |
|
Heteroscedasticitate
Join Date: Mar 2005
Posts: 2,354
|
Rendition perhaps? They were acquired by Micron IIRC, and were a bunch of clever chappies.
__________________
Donald Knuth: Science is what we understand well enough to explain to a computer. Art is everything else we do. |
|
|
|
|
|
#20 | |
|
Member
Join Date: Oct 2004
Posts: 705
|
Quote:
If memory serves me correctly they basically rendered wu-line on polygon edges, thus got very fast and good looking AA. |
|
|
|
|
|
|
#21 |
|
Member
|
Any guess why GPAA doesn't work with NV 3D Vision?
__________________
Submit to Donimation, Global Donimation. |
|
|
|
|
|
#22 | |
|
Senior Member
Join Date: Feb 2004
Posts: 2,448
|
So, I was playing Lego Batman 2(Excellent game, BTW), and decided to check out the config file for it. I found the following:
Quote:
|
|
|
|
|
|
|
#23 |
|
Crazy coder
|
I had to download the demo and see if it was indeed using GPAA. I took a PIX capture of it, and unfortunately I see no evidence of GPAA being applied. Without FSAA enabled in the menu everything looks jagged. With it enabled there's some sort of crude "Edge AA" effect applied, but this is done through a fullscreen pass. In the frames I captured the game never drew a single line primitive. If the game is indeed using it, and that option is not just a remnant from some prototyping, then I suppose it's only used for some specific geometry somewhere.
|
|
|
|
|
|
#24 |
|
Darlek ******
Join Date: Jun 2004
Posts: 9,501
|
__________________
Guardian of the Most holy Two Terabytes of Gaming Goodness™ |
|
|
|
|
|
#25 | |
|
hardly a Senior Member
Join Date: Jul 2008
Location: still camping with a mauler
Posts: 3,637
|
Seems he wrote it.
__________________
Quote:
|
|
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|