如何让Nifty GUI使用我的坐标系?

时间:2012-11-15 21:01:12

标签: opengl lwjgl nifty-gui

出于各种原因,我喜欢使用openGL来使用除像素之外的坐标,这可以通过以下方式轻松设置:

Display.setDisplayMode(new DisplayMode(800, 600));
GLU.gluOrtho2D(0f,32f,0f,24f);

然而,现在我已经开始尝试将Nifty GUI集成到我的应用程序中,这种不确定性因素会导致问题。也就是说,Nifty似乎认为openGL使用像素作为单位,因此使一切变得巨大。无论如何要解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

为什么不按照NiftyGUI的方式(像素坐标)来做事情,而只是在渲染NiftyGUI时 。这意味着:

gl.glMatrixMode(gl.GL_PROJECTION_MATRIX);
GLU.gluOrtho2D(0f,32f,0f,24f);
//Render my stuff
gl.glMatrixMode(gl.GL_PROJECTION_MATRIX);
gl.glLoadIdentity();
GLU.gluOrtho2D(0f,width,0f,height);
//Render with NiftyGUI.

答案 1 :(得分:1)

你造成了经典的OpenGL新手错误:一次性状态设置。

OpenGL未初始化。您可以根据需要重新设置每个州。在你的情况下,完全是为了在需要时将投影矩阵设置为像素映射正投影,并在使用Nifty时将其设置为其他东西。