2010-02-02 4 views
9

Ich muss 3 Zeilen Text in einem Fenster als Menü drucken.Was ist der einfachste Weg, um Text in OpenGL zu drucken?

1 - Menu 
2 - Pause 
3 - Exit 
+0

Oben auf 3D: http://stackoverflow.com/questions/18847109/displaying-fixed-location-2d-text-in-a-3d-opengl-world-using-glut Ohne jede Bibliothek neben OpenGL: http : //stackoverflow.com/questions/8847899/opengl-how-to-draw-text-using-only-opengl-methods –

Antwort

2

This webpage umreißt die drei Möglichkeiten und Links zu praktisch Bibliotheken, die helfen.

Es gibt keine einfache eingebaute Möglichkeit, Text zu rendern, und es gibt (wie auf dieser Seite beschrieben) mehrere mögliche Ansätze, je nachdem, welche Eigenschaften Sie von Ihrem Text-Rendering benötigen.

13

In Anbetracht der Tatsache, dass Sie GLUT in früheren Fragen verwendet haben, wäre es am einfachsten, GLUTs eingebaute Font-Rendering-Funktionen zu verwenden.

Beispiel:

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

Wo Schrift eine der GLUT Schriftart Konstanten ist:

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

Können wir den Text ohne Verwendung von GLUT rendern? Was sind die möglichen Wege? – Wolverine

1

Ein Windows-only, aber einfache Methode, die hier beschrieben wird: Nehe Lesson 13

Grundsätzlich nutzt diese drei Funktionen:

  • wglUseFontBitmaps
  • glListBase
  • glCallLists
1

Bis diesen Beitrag, weil ich ein wirklich großes Werkzeug zu machen, qualitativ hochwertige 2D-Text gefunden:

freetype-gl library

Rendering siehe Beispiel:

freetype-gl sample image

Verwandte Themen