I use nVIDIA GeForce 8600 GT under Windows 2003 Professional 64-bit, ForceWare version is 158.27.
The 3D quality settings in nVIDIA control panel should be “application-controlled”, this is mandatory.
In my application I render lots of text labels showing data values in an OpenGL scene. Each glyph is rendered as a set of small filled polygons.
The text quality is good when the scene is zoomed in and the characters are large enough. However, when the user zooms it out and the characters get smaller (polygon size becomes comparable with a single pixel), text quality becomes unsatisfactory, some pixels simply disappears:
Note the quality of text in the annotation block at the right bottom corner. This is texmapped text rendered using FTGL library, and though the text size is smaller, the characters are still readable. This is the target quality for the text lables showing data values. The text should remain readable even when the user zooms the scene out and the characters become small.
If I go to NVIDIA control panel and turn 3D quality settings to “Maximum quality”, the text quality becomes better, but still needs some amendment (compare the data labels in cells with the annotation text):
I have tried turning GL_POLYGON_SMOOTH on and setting GL_POLYGON_SMOOTH_HINT to GL_NICEST, but the result is worse than the 2nd snapshot.
Can anybody give me an advice how to achieve at least the text quality shown on the 2nd snapshot using only OpenGL calls, without tweaking NVIDIA control panel parameters?
Is it possible at all for polygonal text to look so good as texmapped text in the annotation block at the right bottom corner on both snapshots? If it is, how to achieve this?
P.S. The same problem with small polygons is reproduced on different hardware and under Linux. Thus the solution should be cross-platform and based on OpenGL capabilities only.
P.P.S. I saw NeHe lesson related to MSAA, but it’s Windows-oriented. If this is the thing that helps me, it would be nice to know how to use it under Linux.
Thanks in advance for help!