area-based anti-aliasing: how to get it working?!

Hi All,

I have read that area-based anti-aliasing can be more accurate than multisampling (relative to the number of samples of course), but it seems like there is no definite way to enable it.

I use glEnable(GL_POLYGON_SMOOTH) and glHint(GL_POLYGON_SMOOTH, GL_NICEST), but is this all that is required?! glHint is just that: a hint, and the system can supposedly reject the hint outright.

I render the same target aircraft in two seperate applications, over exactly the same (increasing) ranges, where one has normal multisampling for anti-aliasing, and the other uses the aforementioned commands to hopefully invoke area-based anti-aliasing.

The view is from behind so I can watch two jet nozzles on the target shrink as the object moves away. These nozzles, and their interior, are brilliant white. The rest is moderate red.

I would expect the area-based mechanism to show white pixels for longer than multisampling, because its not a “hit and miss” affair. The white pixels quickly fade out from view and are replaced by red, at a rate faster than multisampling it would seem. The area-based anti-aliasing doesn’t even seem to show light red/white coloured pixels as the target moves further away as one would expect via the area-averaging process.

In short, I just don’t know if the area-calculations really are taking place. Am I missing any commands?!

(The host machine is an SGI Onyx2 with a single InfiniteReality2 pipe).

Further, is area-based anti-aliasing compatible with multisampling?


Tim Sills

The antialiasing offered by openGL has some drawback… I think it’s difficult to use it while drawing objects with various effects: if fact you have to enable blending (that with srcalpha,oneminussrcalpha) to make antialiasing work, and obviously the 2 lines you did.
Maybe you were missing blending…
This is a problem where you draw objects with particular effects, like transparency, addictive blending, or multipass tecniques… there you can’t draw all with the specified blending enabled.
Ah, I forgot: you have to draw the object not over the cleaned screen but against some object or background to make the blending work right.
Last: the hint is telling opengl to do the best a.a. possible. If it can’t it will still do antialiasing, but less good.
Hope this helps!