Polygons antialiasing doesn't work

Polygons antialiasing doesn’t work on colored background.I drawed terrain and then buildngs(made from quads) - I called
enabled GL_POLYGON_SMOOTH.
and as we know for the polygons blend function params are:
(GL_SRC_ALPHA_SATURATE, GL_ONE)
but it makes the corners of quads look
transparent!!
In the same time the line antialiasing
function works perfect with lines!
Whats wrong with polygons?
How to do it with colored background?

Hi,
It only works on black transparent background.
You have to draw your geometry (with depth testing disabled) from front to back, and then draw a final quad over the scene - for background.
If you use the line antialiasing blending setting, then you get visible lines between the triangles that make up the polygon (because the triangles are drawn blended one at a time, so the edges get blended twice).

For saturation to work you also need a destination alpha buffer.
Check what glGetIntegerv(GL_ALPHA_BITS, &i) says.
If you don’t have some change your pixelformat selection routine.
Make sure your clear color has alpha == 0.

You must sort from front to back with saturate alpha and begin with a black screen.

The key is therefore to sort all your polygons including your background.

This means drawing your background last and drawing it with the same saturate alpha blend operation that you draw the rest of your scene with.

[This message has been edited by dorbie (edited 12-19-2003).]

If I understand right - depth buffer must
be disabled doing polygon antialiasing?
If there is no way to avoid doing the z- buffer by myself?

Not with full scene blended fragment antialiasing.

Perhaps you should look at multisample antialiasing.
http://developer.nvidia.com/object/gdc_ogl_multisample.html

In my searching, I’ve noticed the NVIDIA presentation link in the previous post is frequently posted as a good answer/alternative to FSAA.

There are demos readily available for just about everything from complex shaders to lighting/shadows/reflections combined, but I haven’t found a simple demo that demonstrates the antialiasing technique described in this presentation.

Does anyone have a link to any demo using/showing this multisample approach?

Thanks.

I found a tutorial/demo that does a good job of showing the ARB multisample approach at NeHe’s site: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=46

Unfortunatley, when running the downloaded EXE on my Quadro4 900 XGL and the latest NVIDIA driver for XP Pro, it still shows nothing but jaggies on the edges of the polygons.

Am I missing something obvious required to make this extension work? (still over 120MB AGP mem free so I know that’s not it)

Thanks in advance.

[This message has been edited by robosport (edited 03-02-2004).]

I’ve confirmed the executable from the NeHe demo link I posted above does not actually antialias the polygons on two other recent NVIDIA and ATI cards as well.

Has anyone successfully used the WGL_ARB_multisample extension (or any other multisampling apprach) to antialias polygons in real-time (or near real-time)?

If so, what extension and what hardware did it work on? Any pointers to a working demo to multisample antialias polygons would be much appreciated.

Thanks again.

Found the problem when running on NVIDIA cards. “Use Unified Depth/Back Buffer” setting in driver settings was overriding the ability to pragmatically control multisampling. Disabling this option allowed the multisampled antialias approach to work.

Still haven’t found a comparable reason why it isn’t working on the recent ATI cards I’m testing.

>>latest NVIDIA driver for XP Pro<<

Are you sure? http://downloads.guru3d.com/