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?
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
No I really mean anti-aliasing. When you call the following functions:
glEnable(GL_BLEND);
glEnable(GL_POLYGON_SMOOTH);
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.
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.
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).
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?
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.