Domanda

Sto scrivendo un semplice OpenGL applicazione che utilizza GLUT.Non voglio rotolare il mio tipo di carattere codice di rendering, invece voglio utilizzare semplici tipi di carattere bitmap nave con GLUT.Quali sono i passaggi per ottenere il loro funzionamento?

È stato utile?

Soluzione

La visualizzazione semplice del testo è facile da eseguire in OpenGL usando i caratteri bitmap GLUT. Questi sono semplici caratteri 2D e non sono adatti per visualizzare dentro il tuo ambiente 3D. Tuttavia, sono perfetti per il testo che deve essere sovrapposto alla finestra del display.

Ecco i passaggi di esempio per visualizzare la citazione preferita di Eric Cartman colorata in verde su una finestra GLUT:

Imposteremo la posizione raster nelle coordinate dello schermo. Quindi, imposta le matrici di proiezione e modelview per il rendering 2D:

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

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

Imposta il colore del carattere. (Imposta ora, non più tardi.)

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

Imposta la posizione della finestra in cui deve essere visualizzato il testo. Questo viene fatto impostando la posizione raster nelle coordinate dello schermo. L'angolo inferiore sinistro della finestra è (0, 0).

glRasterPos2i(10, 10);

Imposta il carattere e visualizza i caratteri della stringa usando glutBitmapCharacter .

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

Ripristina le matrici.

glMatrixMode(GL_MODELVIEW);
glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top