开发者

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

开发者 https://www.devze.com 2022-12-19 09:49 出处:网络
I need to pri开发者_JS百科nt 3 lines of text to a window as a menu. 1 - Menu 2 - Pause 3 - Exit Considering that you used GLUT in previous questions, the easiest would be using GLUT\'s built in font

I need to pri开发者_JS百科nt 3 lines of text to a window as a menu.

1 - Menu
2 - Pause
3 - Exit


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


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

freetype-gl library

see sample rendering :

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


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.


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

Basically, it uses these three functions:

  • wglUseFontBitmaps
  • glListBase
  • glCallLists


This is a simple way to write text on the screen:

glColor3f (1.0, 0.0, 0.0);
        glRasterPos2f(-240, 120); //define position on the screen
        char *string = "Text";
      
      while(*string){
        glutBitmapCharacter(GLUT_BITMAP_8_BY_13, *string++);
      }
0

精彩评论

暂无评论...
验证码 换一张
取 消