Какой самый простой способ распечатать текст на экране в OpenGL? - PullRequest
9 голосов
/ 02 февраля 2010

Мне нужно напечатать 3 строки текста в окне в виде меню.

1 - Menu
2 - Pause
3 - Exit

Ответы [ 4 ]

13 голосов
/ 02 февраля 2010

Учитывая, что вы использовали GLUT в предыдущих вопросах, проще всего было бы использовать встроенные в GLUT функции рендеринга шрифтов.

Пример:

void output(int x, int y, float r, float g, float b, int font, char *string)
{
  glColor3f( r, g, b );
  glRasterPos2f(x, y);
  int len, i;
  len = (int)strlen(string);
  for (i = 0; i < len; i++) {
    glutBitmapCharacter(font, string[i]);
  }
}

Где шрифт является одной из констант шрифта GLUT:

GLUT_BITMAP_8_BY_13
GLUT_BITMAP_9_BY_15
GLUT_BITMAP_TIMES_ROMAN_10
GLUT_BITMAP_TIMES_ROMAN_24
GLUT_BITMAP_HELVETICA_10
GLUT_BITMAP_HELVETICA_12
GLUT_BITMAP_HELVETICA_18
2 голосов
/ 02 февраля 2010

Эта веб-страница описывает три возможных способа и ссылки на полезные библиотеки, которые помогают.

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

1 голос
/ 20 апреля 2016

Up the post, потому что я нашел действительно отличный инструмент для рендеринга высококачественного 2D текста:

библиотека freetype-gl

см. Пример рендеринга:

freetype-gl sample image

1 голос
/ 04 февраля 2010

Здесь описан простой, но простой способ для Windows: Урок 13

По сути, он использует эти три функции:

  • wglUseFontBitmaps
  • glListBase
  • glCallLists
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...