我试图绘制一个hud,在3d场景的顶部显示应用程序的fps。我知道这个问题的答案与更改初始化代码并将其切换回来有关。你知道,这个东西:
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 800, 600, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
这是我需要渲染屏幕的2d部分的代码。在相关的说明中,我很难理解所有这些代码的作用,并且没有找到合适的资源。任何人都可以指出我正确的方向。大多数教程都没有包含设置代码,我认为他们假设人们知道要使用什么(但我不会!)。
答案 0 :(得分:0)
我正在使用这些方法:
public static void make3D() {
glPopAttrib();
glPushAttrib(GL_ENABLE_BIT);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glViewport(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// FOV = Field of View
// Aspect ration
// zNear and zFar (Viewing range)
gluPerspective(FOV,(float) SCREEN_WIDTH / SCREEN_HEIGHT,0.1f,1000f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
用于更改为3D视图和
public static void make2D() {
glPopAttrib();
glPushAttrib(GL_ENABLE_BIT);
glViewport(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, SCREEN_WIDTH, SCREEN_HEIGHT,0,-1,1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
用于更改为2D视图。
Java似乎没有任何问题,请纠正我,如果我错了!