Meer worstelt met 3D-graphics met behulp van de lichtgewicht Java-gamingbibliotheek

Ik heb meer problemen met het weergeven van 3D-objecten in Java, dit is mijn nieuwe probleem. Ik ben erin geslaagd om de benodigde bibliotheken (gluPerspective, enz.) Te importeren, maar wanneer ik mijn Java-applicatie in de eclipsomgeving uitvoer, wordt er een venster geopend en vervolgens het venster. blijft zwart. Hier is mijn code:

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

    }

Ik kan mijn fout niet zien in de bovenstaande codering, maar ik ben nieuw bij Lwjgl 3D-programmering, dus dit kan te wijten zijn aan mijn gebrek aan ervaring. Even geduld, hoewel ik een snelle leerling ben. Bij voorbaat dank.

2

2 antwoord

Het is niet zo'n goed idee om een ​​negatieve afstand in de buurt te gebruiken, denk ik. Proberen

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

En deze 2 daar zou eigenlijk de beeldverhouding (breedte/hoogte) van je venster moeten zijn, in jouw geval 1.333 = 800/600 .

2
toegevoegd
ooh dank ik wist dat niet, ik zal het proberen.
toegevoegd de auteur JAW1025, de bron
Het toont nog steeds een leeg scherm, met niets erop.
toegevoegd de auteur JAW1025, de bron

Ik heb mijn eigen vraag beantwoord. Naast de bovenstaande antwoorden heb ik het scherm ook niet correct gewist en heb ik de methode niet geretourneerd. Onzorgvuldige fouten.

0
toegevoegd