What is the easiest way to print text to screen in OpenGL?

百般思念 提交于 2020-05-24 21:58:50

问题


I need to print 3 lines of text to a window as a menu.

1 - Menu
2 - Pause
3 - Exit

回答1:


Considering that you used GLUT in previous questions, the easiest would be using GLUT's built in font rendering functions.

Example:

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

Where font is one of GLUT font constants:

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:


This webpage outlines the three possible ways, and links to handy libraries that help.

There's no simple built-in way to render text, and there are (as detailed on that page) sevaral possible approaches, it's all a trade-off depending on what properties you require from your text rendering.




回答3:


Up this post because i found a really great tool to render high quality 2D text:

freetype-gl library

see sample rendering :




回答4:


A Windows-only but simple method is described here: Nehe Lesson 13

Basically, it uses these three functions:

  • wglUseFontBitmaps
  • glListBase
  • glCallLists


来源:https://stackoverflow.com/questions/2183270/what-is-the-easiest-way-to-print-text-to-screen-in-opengl

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!