2008-08-18 34 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