2010-02-02 19 views
9

Ho bisogno di stampare 3 righe di testo in una finestra come un menu.Qual è il modo più semplice per stampare il testo sullo schermo in OpenGL?

1 - Menu 
2 - Pause 
3 - Exit 
+0

In cima al 3D: http://stackoverflow.com/questions/18847109/displaying-fixed-location-2d-text-in-a-d3-opengl-world-using-glut Senza alcuna libreria oltre a OpenGL: http : //stackoverflow.com/questions/8847899/opengl-how-to-draw-text-using-only-opengl-methods –

risposta

2

This webpage delinea i tre modi possibili, e collegamenti alle librerie a portata di mano che aiutano.

Non esiste un modo semplice incorporato per eseguire il rendering del testo e ci sono (se dettagliati in quella pagina) diversi approcci possibili, è tutto un compromesso a seconda delle proprietà richieste dal rendering del testo.

13

Considerando che hai usato GLUT nelle domande precedenti, il più semplice sarebbe utilizzare le funzioni di rendering dei caratteri incorporate di GLUT.

Esempio:

void output(int x, int y, float r, float g, float b, int font, char *string) 
{ 
    glColor3f(r, g, b); 
    glRasterPos2f(x, y); 
    int len, i; 
    len = (int)strlen(string); 
    for (i = 0; i < len; i++) { 
    glutBitmapCharacter(font, string[i]); 
    } 
} 

Dove font è una delle costanti di font GLUT:

GLUT_BITMAP_8_BY_13 
GLUT_BITMAP_9_BY_15 
GLUT_BITMAP_TIMES_ROMAN_10 
GLUT_BITMAP_TIMES_ROMAN_24 
GLUT_BITMAP_HELVETICA_10 
GLUT_BITMAP_HELVETICA_12 
GLUT_BITMAP_HELVETICA_18 
+0

Possiamo eseguire il rendering del testo senza utilizzare GLUT? quali sono le vie possibili? – Wolverine

1

solo per Windows ma semplice metodo è descritto qui: Nehe Lesson 13

Fondamentalmente, utilizza questi tre funzioni:

  • wglUseFontBitmaps
  • glListBase
  • glCallLists
1

Up questo post perchè ho trovato davvero un ottimo strumento per il rendering del testo 2D di alta qualità:

freetype-gl library

vedere il rendering del campione:

freetype-gl sample image

Problemi correlati