PDA

View Full Version : polygon smooth vs FSAA



Vinnie
05-28-2002, 09:33 AM
Hi,

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?

Thanks

AdrianD
05-28-2002, 09:54 AM
i'm not sure i understand you:
do you really mean you don't get any gouraud-shaded polygons ? only flatshading ?

davepermen
05-28-2002, 10:01 AM
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 http://www.opengl.org/discussion_boards/ubb/wink.gif

ScottManDeath
05-28-2002, 10:03 AM
Hi

perhaps you should:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_POLYGON_SMOOTH);
RenderPolys();
glDisable(GL_BLEND);
glDisable(GL_POLYGON_SMOOTH);

Bye
ScottManDeath

Vinnie
05-28-2002, 10:13 AM
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.

Vinnie
05-28-2002, 10:16 AM
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?

Vinnie
05-28-2002, 10:20 AM
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.

zeckensack
05-28-2002, 04:55 PM
Does it work when you use the ARB_multisample extension in place of the FSAA option in the control panel?

mcraighead
05-28-2002, 05:36 PM
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

Eric
05-28-2002, 10:03 PM
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...).

Regards.

Eric

Vinnie
05-30-2002, 10:08 AM
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?

V-man
05-30-2002, 05:05 PM
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.
V-man

marcus256
05-31-2002, 06:01 AM
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.