Como faço para desenhar texto com GLUT / OpenGL em C ++?

Como faço para desenhar uma cadeia de texto na canvas usando as funções de desenho GLUT / OpenGL?

Existem duas maneiras de desenhar strings com GLUT

glutStrokeString irá desenhar texto em 3D

texto alternativo http://sofpt.miximages.com/glut/opengl4.gif

e glutBitmapString irá desenhar texto voltado para o usuário

alt text http://sofpt.miximages.com/glut/openglut_fonts.png

Se você não gosta da fonte de traçado ou bitmap incorporada que vem com o GLUT de acordo com a resposta da epatel , você terá que implementar sua própria solução.

NeHe tem alguns bons tutoriais (junto com código de exemplo totalmente funcional) sobre isso:

  • Lição 13 – Fontes de bitmap
  • Lição 14 – Fontes de Contorno
  • Lição 15 – Fontes de Contorno com Mapeamento de Textura
void RenderString(float x, float y, void *font, const char* string, RGB const& rgb) { char *c; glColor3f(rgb.r, rgb.g, rgb.b); glRasterPos2f(x, y); glutBitmapString(font, string); } 

E você pode chamar assim;

 RenderString(0.0f, 0.0f, GLUT_BITMAP_TIMES_ROMAN_24, "Hello", RGB(1.0f, 0.0f, 0.0f)); 

É geralmente um pouco desagradável e não direto. Experimente esta ferramenta:

http://students.cs.byu.edu/~bfish/glfontdl.php