Opengl Problem



  • Hi alle zusammen,

    ich habe ein Fehler in meinem Programm und ich kann ihn einfach nicht finden.
    Mein Problem ist das irgendwie der Depthtest nicht richtig funktioniert, jedesmal wenn die beiden Vierecke übereinanderkommen schimmert das dahinter liegende ganzpixelig durch.
    Ich habe einfach mal aufgeschrieben wie ich opengl initialisiere. Vieleicht kann mir ja jemand helfen.

    glfwInit();
        glfwOpenWindow(800, 600, 8, 8, 8, 8, 32, 0, GLFW_WINDOW);
        glShadeModel(GL_SMOOTH);
    
        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    
        glDepthFunc(GL_LEQUAL);
        glClearDepth(1.0f);
        glEnable(GL_DEPTH_TEST);
    
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluPerspective(45.0f, 1.3f, 0.0f, 1000.0f);
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
    
        bool running = true;
        while (running) {
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
            glLoadIdentity();
            gluLookAt(0.0f, 0.0f, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
    
            static float f = 0.0f;
            f += 0.1f;
            glRotatef(f, 0.0f, 1.0f, 0.0f);
    
            glBegin(GL_QUADS);
            glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(-2.0f, -2.0f, -1.0f);
            glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(-2.0f, 2.0f, -1.0f);
            glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(2.0f, 2.0f, -1.0f);
            glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(2.0f, -2.0f, -1.0f);
            glEnd();
    
            glBegin(GL_QUADS);
            glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(-1.0f, -1.0f, 1.0f);
            glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);
            glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(1.0f, 1.0f, 1.0f);
            glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(1.0f, -1.0f, 1.0f);
            glEnd();
    
            glfwSwapBuffers();
    
            if (glfwGetKey(GLFW_KEY_ESC) )
                running = false;
        }
        glfwTerminate();
    

    Ich habe es auchnochmal mit Java probiert, unter Linux und Windows, und auf einem anderen PC. Überall bekomme ich den selben Fehler.
    Also kann es ja nur an meine initialisierung liegen.

    Gruß, Daniel_S



  • gluPerspective(45.0f, 1.3f, 0.0f, 1000.0f);

    znear muss >0.



  • Oh mein Gott 😮 , jetzt fälls mir auch wieder ein. Man bin ich blöd. 😡
    Ich danke dir viel mals für deine Hilfe. Da wäre ich ja überhaupt nicht mehr drauf gekommen.
    Danke nochmals. 😃


Log in to reply