2008-08-18 63 views
19

我正在编写一个使用GLUT的简单OpenGL应用程序。我不想滚动自己的字体渲染代码,而是想使用GLUT附带的简单位图字体。有什么步骤让他们工作?使用GLUT位图字体

回答

27

简单的文本显示很容易在OpenGL中使用GLUT位图字体来完成。这些都是简单的2D字体,并且是而不是适合显示里面的您的3D环境。但是,它们非常适合需要覆盖在显示窗口上的文本。

下面是样本步骤显示埃里克Cartman的最喜欢的格言在绿色供应过剩窗口:

我们将设置在屏幕坐标光栅位置。因此,设置用​​于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(); 
+2

+1观看南公园 – 2012-10-13 14:18:44