polygon smooth vs FSAA


I’m running my application on a GeForce 4 4600 (the same thing has been observed on a GeForce 2).

I noticed that polygon smoothing (GL_POLYGON_SMOOTH) wasn’t working. After some investigations, I found that the polygon smoothing would work only if the antialiasing (2x, quincunx or 4x from the control panel) was turned off.

Does anybody know why we can’t have both working at the same time? Or even better, how to make the polygon smoothing work with FSAA?


i’m not sure i understand you:
do you really mean you don’t get any gouraud-shaded polygons ? only flatshading ?

no, he means polygon smoothing, not smooth shading

and i guess its because both features are tought for the same… no hw support to draw smoothed polygons when yet drawing oversized ones possibly? or as they draw to big buffer and sample down then they loose the smoothiness again? or you simply don’t see your smoothiness because of the fsaa wich is smoothing as well? dunno


perhaps you should:



No I really mean anti-aliasing. When you call the following functions:
you should end up with anti-aliasing of the edges of the next polygons.

It should have about the same effect than turning on antialiasing from the control panel. The result is better than a 4x subsamples from what I saw. The down side is the polygons need to be sorted before this can be used.

I’d like to use that only with some polygon, and still be able to use the FSAA NVidia provides, but it doesn’t seem to work.

SO it would be nice if you have a fix or an explanation for it.

Cool! 2 answers while I was writing mine!

I think there is no problem with my code since it work under some conditions (no FSAA).

Anything else you can think of?

Not a bad explanation Davepermen, but i really do see the difference between both method. Polygon smoothing is sooooo much better. So it’s not because it’s there and that I can’t see it. Better enough so I want to use it in some touchy areas, but I don’t want to go in the trouble of sorting all the scene. So I still need the FSAA to be enabled.

Does it work when you use the ARB_multisample extension in place of the FSAA option in the control panel?

The ARB_multisample extension specifically states that smoothing of all types (point, line, polygon) is supposed to be shut off and in fact ignored when multisampling.

If you want the legacy smooth modes, you can glDisable(GL_MULTISAMPLE_ARB).

So this behavior is in fact according to design.

  • Matt

I don’t know about the multisampling extension but seeing how slow basic polygon smoothing is, I wouldn’t try to use it in an application anyway (unless it’s been really enhanced lately…).



I was thinking of calling glDisable(GL_MULTISAMPLE_ARB). I’m simply using the display control panel to turn on/off the FSAA now.

I was wondering though because, FSAA needs to be perfomered on the whole scene. As anybody ever tried to turn it off for just a part of the scene? What effect does it give?

It doesnt work the last time this was discussed and I havent touched it since.

All they have to do is make a front buffer, back buffer (not multisample), multisample buffer.

Render ALL multisample stuff, copy to back buffer, render non multisample stuff to back buffer, copy to front buffer and voila!

The problem is with text. It becomes ugly when FSAA is used on text.

Just a trhough…

Polygon smothing is gives a ‘smothing area’ of roughly one pixel (right?). What I mean is that the smothing transient of the edge will only appear to be one pixel ‘wide’ (even if it covers at least two pixels). When multisampling is performed, each final pixel will be the product of at least four pixels (for instance), which will ‘hide’ the effect of the polygon smothing (right?).

What I’m getting to is that for polygon smothing to look good in multisampling mode, it would have to cover an area much larger than it normally does.

In other words, if polygon smothing is disabled or not, it wouldn’t make much of a difference, visually.