Подтвердить что ты не робот

Использование растровых шрифтов GLUT

Я пишу простое приложение OpenGL, которое использует GLUT. Я не хочу откатывать свой собственный код рендеринга шрифтов, вместо этого я хочу использовать простые растровые шрифты, которые отправляются с GLUT. Каковы шаги, чтобы заставить их работать?

4b9b3361

Ответ 1

Простой текстовый дисплей легко сделать в OpenGL с использованием растровых шрифтов GLUT. Это простые 2D-шрифты и не подходят для отображения внутри вашей 3D-среды. Тем не менее, они идеально подходят для текста, который должен быть наложен на окно дисплея.

Вот примеры шагов для отображения любимой цитаты Эрика Картмана, окрашенной в зеленый цвет в окне GLUT:

Мы будем устанавливать растровое положение в координатах экрана. Итак, настройте матрицы проекции и модели для 2D-рендеринга:

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

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

Установите цвет шрифта. (Установите это сейчас, а не позже.)

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

Задайте местоположение окна, где должен отображаться текст. Это делается путем установки растровой позиции в координатах экрана. Нижний левый угол окна (0, 0).

glRasterPos2i(10, 10);

Установите шрифт и отобразите строковые символы с помощью 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);
}

Восстановить матрицы.

glMatrixMode(GL_MODELVIEW);
glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();