In my app I’ve been using the gluTess functions to tesselate some 2d polygons prior to rendering. The triangles are texture filled and the shading model is FLAT. I also enable POLYGON_SMOOTH, LINE_SMOOTH and PERSPECTIVE_CORRECTION_HINT, NICEST.
On one of my test machines that has a Radeon 7000 I get annoying little gaps between the tesselated triangles that makes the app unusable. I do not get these undesirable artifacts on my Radeon 9700 at home, however I did see this on my GeForce FX 5200 at work until I enabled FSAA in the control panel.
Is there some way I can control this from my app or set something on the card during my setup? I’m completely screwed if I can’t make this look good
Don’t use GL_POLYGON_SMOOTH! It will only work correctly if you program your app to use the correct blending and sort your geometry.
Read the Redbook about polygon antialiasing.
The stitches or cracks you experience come from missing blending and/or failing depth tests on antialiased edges which keep new fragments at adjacent edges from updating pixels with non-saturated alpha coverage. (Confused?)
Sounds like Radeon 7000 and GeForce FX 5200 did what you asked for and the Radeon 9700 ignored polygon smoothing.
[This message has been edited by Relic (edited 07-01-2003).]
Ok thanks for the pointer. I mostly understand what your saying although I need to research it some more.
In the short term, I was wondering if it would help if I do as you say and turn off POLY_SMOOTH, render my polygons and then render the silhouette using GL_LINELOOP with LINE_SMOOTH enabled? I am looking for crisp silhoettes on my polygons.
Does line drawing go through the texture unit with everything else or do you just get the RGBA information?
BTW, you were right about the 9700. It is definitely ignoring the flag. Although the triangles stitch together nicely the edges of the polygons are aliased.