2011-11-12 7 views
2

私はJavaで3Dオブジェクトをレンダリングするのに苦労しています。私の新しい問題を解決するために必要なライブラリ(gluPerspectiveなど) Eclipse環境のアプリケーションでは、ウィンドウを開き、ウィンドウは黒のままです。ここに私のコードは次のとおりです。軽量のJavaゲームライブラリを使用した3Dグラフィックスの苦闘

package test; 

    import org.lwjgl.LWJGLException; 
    import org.lwjgl.opengl.Display; 
    import org.lwjgl.opengl.DisplayMode; 
    import org.lwjgl.opengl.GL11; 
    import org.lwjgl.util.glu.GLU; 

    public class Obj3d { 
     public static void main(String[] args) { 
      Obj3d obj = new Obj3d(); 
      obj.start(); 
     } 

     public void start() { 
      try { 
       Display.setDisplayMode(new DisplayMode(800, 600)); 
       Display.create(); 
      } catch (LWJGLException e) { 
       e.printStackTrace(); 
       System.exit(0); 
      } 

      init3dGL(); 

      while(!Display.isCloseRequested()) { 
       clear(); 
       renderCube(); 
       Display.update(); 
      } 

      Display.destroy(); 
      System.exit(0); 
     } 

     public void init3dGL() { 
      GL11.glMatrixMode(GL11.GL_PROJECTION); 
      GL11.glLoadIdentity(); 
      GLU.gluPerspective(45, 2, -1, 100); 
      GL11.glMatrixMode(GL11.GL_MODELVIEW); 
      GL11.glEnable(GL11.GL_DEPTH_TEST); 
      GL11.glDepthFunc(GL11.GL_LEQUAL); 
      return; 
     } 

     public void renderCube() { 
      GL11.glBegin(GL11.GL_QUADS); 
       //front faces 
       GL11.glNormal3d(0, 0, 1); 
       GL11.glColor3d(0.0, 1.0, 1.0); 
       GL11.glVertex3d(5, 5, -5); 
       GL11.glVertex3d(-5, 5, -5); 
       GL11.glVertex3d(-5, -5, -5); 
       GL11.glVertex3d(5, -5, -5); 
      GL11.glEnd(); 
      return; 
     } 

     public void clear() { 
      GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); 
     } 

    } 

私は上記のコードで私のエラーを見ることができない、しかし私は、3DプログラミングをLWJGLに新しいですので、これは経験の私の不足に起因する可能性があります。私は速い学習者ですが、辛抱強くお待ちください。前もって感謝します。

答えて

2

負の近距離を使用することはあまり良い考えではないと思います。そこで

GLU.gluPerpective(45, 2, 0.1, 100); 

そして、この2を試してみて、実際にあなたのケース1.333 = 800/600には、あなたの窓のアスペクト比(幅/高さ)でなければなりません。

+0

ありがとう、私はそれを認識していない、私はそれを試してみましょう。 – JAW1025

+0

それでも何も表示されず空白の画面が表示されます。 – JAW1025

0

私は自分の質問に答えました。上記の回答に加えて、私はまた、画面を正しくクリアしていないし、メソッドを返さなかった。不注意な間違い。

関連する問題