Вопрос

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

Это было полезно?

Решение

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

Вот примерные шаги для отображения любимой цитаты Эрика Картмана, выделенной зеленым цветом в окне ПЕРЕНАСЫЩЕНИЯ:

Мы установим положение растра в экранных координатах.Итак, настройте матрицы проекции и modelview для 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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top