может просто использовать эти две функции:
void renderstring2d(char string[], float r, float g, float b, float x, float y)
{
glColor3f(r, g, b);
glRasterPos2f(x, y);
for(unsigned int i = 0; i < strlen(string); i++)
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]);
}
void renderstring3d(char string[], float r, float g, float b, float x, float y, float z)
{
glDisable(GL_LIGHTING);
glColor3f(r, g, b);
glRasterPos3f(x, y, z);
for(unsigned int i = 0; i < strlen(string); i++)
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]);
}
затем, когда вы рендерите 2D-текст, не забудьте сбросить матрицы вида и проекции.
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
// Render text and quads
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
Вы надеваетене нужно выполнять рендеринг в квад, используя эти функции, потому что эти функции визуализируются непосредственно в кадровый буфер.
И если это не сработает, проверьте это.http://www.opengl.org/resources/faq/technical/fonts.htm
В нем говорится о рендеринге текста с использованием glBitmap, glDrawPixels и альфа-смешивания.