2010-02-02 92 views
9

Necesito imprimir 3 líneas de texto en una ventana como un menú.¿Cuál es la forma más fácil de imprimir texto en pantalla en OpenGL?

1 - Menu 
2 - Pause 
3 - Exit 
+0

En la parte superior de 3D: http://stackoverflow.com/questions/18847109/displaying-fixed-location-2d-text-in-a-3d-opengl-world-using-glut Sin ninguna biblioteca además de OpenGL: http : //stackoverflow.com/questions/8847899/opengl-how-to-draw-text-using-only-opengl-methods –

Respuesta

2

This webpage esboza las tres formas posibles, y enlaces a bibliotecas útiles que ayudan.

No hay una forma incorporada simple de presentar texto, y hay (como se detalla en esa página) varios enfoques posibles, todo es una compensación dependiendo de qué propiedades requiera de su representación de texto.

13

Teniendo en cuenta que usaste GLUT en las preguntas anteriores, lo más fácil sería utilizar las funciones de renderizado de fuente incorporadas de GLUT.

Ejemplo:

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]); 
    } 
} 

Cuando la fuente es una de las constantes de fuente 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

¿Podemos renderizar el texto sin usar GLUT? ¿Cuáles son las formas posibles? – Wolverine

1

A sólo para Windows, pero se describe aquí método simple: Nehe Lesson 13

Básicamente, utiliza estos tres funciones:

  • wglUseFontBitmaps
  • glListBase
  • glCallLists
1

Hasta este post porque me encontré con una muy buena herramienta para hacer de alta calidad de texto 2D:

freetype-gl library

ver muestra de renderizado:

freetype-gl sample image

Cuestiones relacionadas