1

さまざまな理由から、私はopenGLでピクセル以外の座標を使用するのが好きです。これは、次の方法で簡単に設定できます。

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

ただし、Nifty GUIをアプリケーションに統合しようとし始めたので、この適切なスケールが問題を引き起こしています。つまり、Niftyは、openGLがピクセルを単位として使用していると考えているようであり、したがってすべてが巨大になります。これを修正する方法はありますか?

4

2 に答える 2

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.
于 2012-11-15T21:17:27.700 に答える
1

あなたは古典的なOpenGL初心者の間違いを犯しました:一度だけの状態設定。

OpenGLは初期化されていません。必要に応じて、すべての状態をリセットします。あなたの場合、それは完全に、必要に応じて投影行列をピクセルマッピング正投影に設定し、Niftyを使用するときに他の何かに設定するためです。

于 2012-11-15T21:16:03.363 に答える