Pergunta

Estou escrevendo um simples OpenGL aplicativo que usa GLUT.Não quero lançar meu próprio código de renderização de fonte; em vez disso, quero usar as fontes bitmap simples fornecidas com GLUT.Quais são as etapas para fazê-los funcionar?

Foi útil?

Solução

A exibição de texto simples é fácil de fazer no OpenGL usando fontes bitmap GLUT.Estas são fontes 2D simples e são não adequado para exibição dentro seu ambiente 3D.No entanto, eles são perfeitos para texto que precisa ser sobreposto na janela de exibição.

Aqui estão os exemplos de etapas para exibir a citação favorita de Eric Cartman colorida em verde em uma janela GLUT:

Estaremos definindo a posição do raster nas coordenadas da tela.Então, configure as matrizes de projeção e modelview para renderização 2D:

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

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

Defina a cor da fonte.(Defina isso agora, não mais tarde.)

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

Defina o local da janela onde o texto deve ser exibido.Isto é feito definindo a posição do raster nas coordenadas da tela.O canto inferior esquerdo da janela é (0, 0).

glRasterPos2i(10, 10);

Defina a fonte e exiba os caracteres da string 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);
}

Restaure as matrizes.

glMatrixMode(GL_MODELVIEW);
glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top