我是OpenGL的新手,我一直在瀏覽NeHe的教程和其他各種網絡資源,我正在測試一些東西來將文本呈現爲各種其他類型的HUD。 經過漫長的一夜之後,我無法讓這個工作,我在這裏找不到任何解決方案,所以我想我會問。爲什麼我的HUD不能在OpenGL中渲染?
我的代碼:
GLvoid glLoadHUD(GLvoid)
{
glPushAttrib(GL_LIGHTING_BIT |
GL_DEPTH_BUFFER_BIT |
GL_TEXTURE_BIT);
glDisable(GL_LIGHTING);
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f);
glRasterPos2f(0.1f, 0.6f);
glColor3f(1.0f,1.0f,1.0f);
glPrint("Test.");
glRasterPos2f(0.0f, 0.0f);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopAttrib();
glEnable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
}
哪個呈現文本的代碼,這是代碼繪製場景:
int DrawGLScene(GLvoid)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clears buffers
glLoadIdentity();
// If I put glLoadHUD(); here, it renders but the models render over it,
// which is useless.
for (xloop = 0; xloop < 3;)
{
glLoadIdentity();
glTranslatef(-4.0f+(float(xloop)*4.0f),0.0f,-12.0f);
glCallList(dlstBox); // This is the call to create a box.
xloop++;
}
glLoadHUD(); // If I put it here though, it doesn't render at all.
return TRUE;
}
預先感謝您的任何幫助,您可以給,我知道我很綠,而且我確信它正在盯着我,但這會讓我發瘋,我不知道如何讓它發揮作用。
就是這樣! 非常感謝。現在,我終於可以在沒有任何頭髮的情況下移動過去。 – 2012-07-10 05:50:30