Moin Leute,
ich schaue mir grad ein paar OpenGL Tutorials (NeHe) an und mir ist in folgenden Beispiel ein seltsames Verhalten aufgefallen. In dem Beispiel wird eine Pyramide aus 4 Dreiecken gezeichnet und gedreht. Während der Drehung kommt es dazu das eine der Flächen (gelb) durch die Drehung nicht mehr sichtbar sein sollte jedoch trotzdem das verdeckende Dreieck überzeichnet. Weis jemand woran das liegen könnte?
Codeauszug:
Viele Grüße
ich schaue mir grad ein paar OpenGL Tutorials (NeHe) an und mir ist in folgenden Beispiel ein seltsames Verhalten aufgefallen. In dem Beispiel wird eine Pyramide aus 4 Dreiecken gezeichnet und gedreht. Während der Drehung kommt es dazu das eine der Flächen (gelb) durch die Drehung nicht mehr sichtbar sein sollte jedoch trotzdem das verdeckende Dreieck überzeichnet. Weis jemand woran das liegen könnte?
Codeauszug:
Code:
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(theta, 0.0f, 0.5f, 0.5f);
glBegin(GL_TRIANGLES);
glColor3f(0.0f,0.0f,1.0f); // das vordere soll blau werden
glVertex3f( 0.0f, 0.5f, 0.0f); // oben (vorderes Dreieck)
glVertex3f(-0.5f,-0.5f, 0.5f); // links (vorderes Dreieck)
glVertex3f( 0.5f,-0.5f, 0.5f); // rechts (vorderes Dreieck)
glColor3f(1.0f,0.0f,0.0f); // das rechte soll rot werden
glVertex3f( 0.0f, 0.5f, 0.0f); // oben (rechtes Dreieck)
glVertex3f( 0.5f,-0.5f, 0.5f); // links (rechtes Dreieck)
glVertex3f( 0.5f,-0.5f, -0.5f); // rechts (rechtes Dreieck)
glColor3f(0.0f,1.0f,0.0f); // das hintere grün
glVertex3f( 0.0f, 0.5f, 0.0f); // oben (hinteres Dreieck)
glVertex3f( 0.5f,-0.5f, -0.5f); // links (hinteres Dreieck)
glVertex3f(-0.5f,-0.5f, -0.5f); // rechts (hinteres Dreieck)
glColor3f(1.0f,1.0f,0.0f); // und das linke gelb
glVertex3f( 0.0f, 0.5f, 0.0f); // oben (linkes Dreieck)
glVertex3f(-0.5f,-0.5f,-0.5f); // links (linkes Dreieck)
glVertex3f(-0.5f,-0.5f, 0.5f); // rechts (linkes Dreieck)
glEnd();
SwapBuffers(hDC);
theta += 1.0f;
Sleep (10);
Viele Grüße