09/01/07 20:50
bonz_88
void render() { glEnable(GL_DEPTH_TEST); glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(0.0,0.0,0.3,0.0,0.0,-1.0,0.0,1.0,0.0); glBegin(GL_TRIANGLES); glColor3f(1.0,0.0,0.1); //ROSSO glVertex3f(-0.2,0.0,0.1); glVertex3f(0.2,0.0,0.1); glVertex3f(0.0,0.15,0.1); glColor3f(0.0,1.0,0.0); //VERDE glVertex3f(-0.2,0.0,-0.1); glVertex3f(0.2,0.0,-0.1); glVertex3f(0.0,0.15,-0.1); glEnd(); SwapBuffers(buffer); }
Questa funzione dovrebbe visualizzare due triangoli sovrapposti. La camera è fissata nel punto (0.0,0.0,0.3) ed è diretta in direzione (0.0,0.0,-1.0). Il triangolo rosso, essendo a distanza minore dalla camera (0.2), dovrebbe stare quindi davanti al triangolo verde (che invece sta a 0.4 dalla camera), che quindi non viene visualizzato. Lanciando il programma però, ho notato che la situazione è opposta! Ovvero il triangolo verde è in primo piano mentre quello rosso ne viene coperto! Qualcuno riesce a darmi una mano?
(Dimenticavo, glDepthFunc è settato a GL_LESS per default, non l'ho modificato!).
Ultima modifica effettuata da bonz_88 09/01/07 20:53
aaa