ich versteh nicht wo der fehler ist ... OpenGL



  • Meine Draw-Funktion:

    void draw(void) {
    
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    	glLoadIdentity();
    
    	glRotated(fry, 1.0, 0.0, 0.0);
    	glRotated(-frx, 0.0, 1.0, 0.0);
    	glTranslated(ftx, -fty, ftz);
    
    	glBegin(GL_TRIANGLES);
    	    glColor3f(1.0, 0.0, 0.0);    glVertex3f(0.0, 0.25, [cpp]-2.0[/cpp]);
    	    glColor3f(1.0, 1.0, 0.0);    glVertex3f(-0.25, -0.25, [cpp]-2.0[/cpp]);
    	    glColor3f(0.5, 0.5, 0.0);    glVertex3f(0.25, -0.25, [cpp]-2.0[/cpp]);
    	glEnd();
    
    	glBegin(GL_TRIANGLES);
    	    glColor3f(0.5, 0.5, 0.5);    glVertex3f(0.0, 0.25, [cpp]-7.0[/cpp]);
    	    glColor3f(0.5, 1.0, 0.5);    glVertex3f(-0.25, -0.25, [cpp]-7.0[/cpp]);
    	    glColor3f(0.5, 0.5, 1.0);    glVertex3f(0.25, -0.25, [cpp]-7.0[/cpp]);
    	glEnd();
    
    	glutSwapBuffers();
    
    }
    

    ... hab Depth-Test aktiviert und Depth-Func ist GL_LEQUAL

    Mein Problem:

    Die Dreiecke flimmern in einander herei.

    GL_BLEND hab ich aber nicht aktiviert ... ich hoffe mir kann jamand helfen



  • Ja das ist halt so wenn zwei Dreiecke genau aufeinander liegen..
    Was ist denn der Sinn davon ohne Blending?



  • ich hab ne art ego shooter - ansicht.
    wenn das programm startet seh ich das dreieck das am nächsten ist - soweit so gut.
    drehe ich mich aber nun um 180° sehe ich das dreieck das am nächsten ist und dann schein das andere noch hindurch, obwohl GL_BLEND ausgeschalten ist. es wird halt einfach gezeichnet - obwohl es das gar nicht machen soll. - das ist es auch was mich stört, denn das sollte ansich der Depth-Test regeln ...



  • oh sorry, die liegen ja gar nicht aufeinander 🙂

    Hmm, dann seh ich keinen Fehler. Mit Depth-Test sollte das so schon funktionieren. Sicher dass der richtig gesetzt ist?..



  • glDepthFunc(GL_LEQUAL);
    glEnable(GL_DEPTH_TEST);
    

    so hab ich es bei der initialisierung geschrieben



  • r.s. schrieb:

    glDepthFunc(GL_LEQUAL);
    glEnable(GL_DEPTH_TEST);
    

    so hab ich es bei der initialisierung geschrieben

    Uhm, ich sehs nicht sorry. So wie das hier steht funktioniert das sicher. Machst was beim rotieren falsch?..



  • nö, kann nich sein ... auf knopfdruck um 180° wenden ... kann man nix falsch machen ... denk ich

    ich benutze glut ... bzw versuche es ... liegt es vielleicht daran ?
    und ich progge unter windows 2000 mit dev c++ .. fehlerquelle?



  • r.s. schrieb:

    nö, kann nich sein ... auf knopfdruck um 180° wenden ... kann man nix falsch machen ... denk ich

    ich benutze glut ... bzw versuche es ... liegt es vielleicht daran ?
    und ich progge unter windows 2000 mit dev c++ .. fehlerquelle?

    Es liegt an Dev-C++ auf Win2K Systemen in Verbindung mit GLUT! 💡

    Das erlaubt ein Rotieren in OpenGL nicht. ⚠

    [DIESER BEITRAG IST PURER SARKASMUS]



  • das war nicht witzig 😑



  • Doch.

    Bye, TGGC (Wähle deine Helden)



  • r.s. schrieb:

    ich hab ne art ego shooter - ansicht .... seh ich das dreieck das am nächsten ist ...

    glaube weniger das es eine Art Ego-shooter Ansicht ist 🙂


Anmelden zum Antworten