我正在尝试在 OpenGL 中的游戏上绘制 HUD;我决定使用一些纹理并将它们应用到 2D 场景中。我正在使用 Java 和 LWJGL。这是代码:
public void drawHUD1()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 800, 0, 600, -1, 1);
glMatrixMode(GL_MODELVIEW);
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);
glPushMatrix();
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, arrows[0]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex2f(60f,60f);
glTexCoord2f(1.0f,0.0f);
glVertex2f(90f,60f);
glTexCoord2f(1.0f,1.0f);
glVertex2f(90f,90f);
glTexCoord2f(0.0f,1.0f);
glVertex2f(60f,90f);
glEnd();
glDisable(GL_TEXTURE_2D);
glPopMatrix();
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
float aspect = (float) width / height;
GLU.gluPerspective(45.0f, aspect, 0.1f, 1000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
}
当我运行它时,3D 部分被正确渲染,但我的纹理没有任何迹象。我记得调用该方法,所以这不是一个可能的答案;纹理也正确加载,我已经检查过了。有谁能够帮我?