Question

J'écris un simple OpenGL application qui utilise GLUT.Je ne souhaite pas créer mon propre code de rendu de police, mais plutôt utiliser les polices bitmap simples fournies avec GLUT.Quelles sont les étapes pour les faire fonctionner ?

Était-ce utile?

La solution

L'affichage de texte simple est facile à réaliser dans OpenGL à l'aide des polices bitmap GLUT.Ce sont de simples polices 2D et sont pas adapté à l'affichage à l'intérieur votre environnement 3D.Cependant, ils sont parfaits pour le texte qui doit être superposé sur la fenêtre d'affichage.

Voici quelques exemples d'étapes pour afficher la citation préférée d'Eric Cartman colorée en vert sur une fenêtre GLUT :

Nous allons définir la position du raster en coordonnées d'écran.Alors, configurez les matrices de projection et de vue modèle pour le rendu 2D :

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0.0, WIN_WIDTH, 0.0, WIN_HEIGHT);

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

Définissez la couleur de la police.(Réglez ceci maintenant, pas plus tard.)

glColor3f(0.0, 1.0, 0.0); // Green

Définissez l'emplacement de la fenêtre où le texte doit être affiché.Cela se fait en définissant la position du raster dans les coordonnées de l'écran.Le coin inférieur gauche de la fenêtre est (0, 0).

glRasterPos2i(10, 10);

Définissez la police et affichez les caractères de chaîne en utilisant glutBitmapCaractère.

string s = "Respect mah authoritah!";
void * font = GLUT_BITMAP_9_BY_15;
for (string::iterator i = s.begin(); i != s.end(); ++i)
{
    char c = *i;
    glutBitmapCharacter(font, c);
}

Restaurez les matrices.

glMatrixMode(GL_MODELVIEW);
glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top