저는 OpenGL을 처음 접했고 NeHe의 튜토리얼과 다양한 웹 소스를 살펴 보았습니다. 텍스트를 다른 모든 것의 HUD로 렌더링하기 위해 테스트하고 있습니다. 아주 긴 밤 이후에, 나는 이것을 작동시키지 못했고 여기서 어떤 해결책을 찾을 수 없었습니다. 그래서 물어볼 것이라고 생각했습니다.HUD가 OpenGL에서 렌더링되지 않는 이유는 무엇입니까?
내 코드 : 당신이 줄 수있는 도움을 사전에
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;
}
감사합니다 : 텍스트를 렌더링하는 코드이며,이 장면을 그리기위한 코드입니다
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);
}
, 나는 내가 매우 초록색임을 안다. 그리고 나는 그것이 얼굴에서 나를 꼼짝 않고 바라보고있다라고 확신한다. 그러나 이것은 나를 미치게한다. 그리고 나는 그것이 일하게하는 방법을 모른다.
그게 다야! 대단히 감사합니다. 이제 마침내 머리를 찢지 않고 마침내 지나갈 수 있습니다. –