Any idea of how this AA effect is achieved?

Does anyone have any idea of how the demo at : http://www.geocities.com/tom_j_hall/Anti_Aliasing_demo.htm

is achieved? I would guess it re-renders the edges at some higher precision??
(Tom Hall are you out there?)

Tom is on an overseas holiday and will be back to write up an article on his technique in a few months.

Quick guess: one pass with triangles filled (regular, non anti-aliased) and a second pass in which the silhouette edges (computed just like for shadow volumes) are rendered with line smoothing. Depth testing active all along, with maybe glPolygonOffset between the two-passes to make sure the smoothed lines only antialias with the background or farther faces.

IIRC destination alpha blending can be used in combination with line/point smoothing to avoid the need of depth-sorting the smoothed primitives, which would explain its optional nature in the demo.

A clue that this is the method used may be the small discontinuities in the smoothing (rare one-pixel-not-smoothed ones) in the provided screenshots, which look a lot like the line-smoothing discontinuities.
Limitation of the technique is lack of antialiasing for non-edges (usually not obvious to the eye), and improper antialiasing of distant geometry and textures (can be aleviated by proper use of mipmaps and anisotropic filtering). The need to compute silhouettes and render smoothed lines (very expensive on some hardware) may also be seen as a limitation.

Good guess?

I doubt it, that’s not new and Hoppe has a separate paper on that that wasn’t called silhouette clipping. I hope it’s not that anyway, I’ll be disappointed, not as diasppointed as the first time I saw Hoppe publish second pass line antialiasing as if it were novel with no attribution despite it being an ancient and well known technique but still disappointed since I’m hoping it’s something pretty cool.

He’s written a paper on it, doesn’t that answer your question
http://www.geocities.com/tom_j_hall/

Hope this helps

Heath.

[This message has been edited by heath (edited 06-23-2003).]

No this is not a paper on the anti-aliasing, it’s just a paper on efficiently computing the silhouette of an object.

It doesn’t address what you do to anti-alias the object once you compute the silhouette. I hope it’s not just this:
http://research.microsoft.com/~hoppe/overdraw.pdf

Hi,

This is Tom Hall (the author of the AA demo). I am still backpacking through Eastern Europe, but have noticed this post about my demo.

I was hoping to write about how this technique was done when I got back but this post has made me realise that I have incorrectly claimed this idea as my own. Although I did come up with the idea independently, it is basically the same as hoppes discontinuity edge overdraw method.

I have changed the website to reflect this, thanks and many, many apologies.

Cheers

Tom

Don’t worry, it’s not entirely Hoppe’s original idea either. At least you didn’t publish a paper claiming it was completely novel.

A post in 1996:
http://oss.sgi.com/projects/performer/mail/info-performer/perf-96-12/0066.html

More description in 1997:
http://oss.sgi.com/projects/performer/mail/info-performer/perf-97-01/0453.html

More description in 1999 of the same thing:
http://oss.sgi.com/projects/performer/mail/info-performer/perf-99-01/0197.html

This was not original then, it had been done for years (early 90’s on VGX hardware at latest) in vis-sim by scores of people. It wasn’t boiled down to exact silhouette & discontinuity edges, but it did include antialiased line second pass rationalised for single edge contribution.

There was no need to cull non silhouette edges because they didn’t impact the appearance and culling them was more expensive than drawing them. That’s probably still true today.

[This message has been edited by dorbie (edited 07-03-2003).]