軽量のJavaゲームライブラリを使用した3Dグラフィックスのさらなる苦闘

私はJavaで3dオブジェクトをレンダリングするのにもっと苦労していますが、私が必要とするライブラリ(gluPerspectiveなど)をインポートするために管理した新しい問題をheresしていますが、EclipseアプリケーションでJavaアプリケーションを実行すると、黒のままです。ここに私のコードです:

    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);
        }

    }

私は上記のコーディングで私のエラーを見ることができませんが、私はlwjglの3Dプログラミングには新しくなっているので、これは私の経験不足のためかもしれません。私は速い学習者ですが、辛抱強くお待ちください。前もって感謝します。

2
追加された 編集された
ビュー: 1

2 答え

ネガティブニアディスタンスを使うのはあまりいい考えではないと思います。試す

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

また、 1.333 = 800/600 には、実際にウィンドウの縦横比(幅/高さ)が 2 である必要があります。

2
追加された
ああ、感謝私はそれを実現していない、私はそれを試してみましょう。
追加された 著者 JAW1025,
まだ何も表示されていない空白の画面が表示されます。
追加された 著者 JAW1025,

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

0
追加された