I wrote a programm with a few triangles rotating around a point. I want hidden triangles(trinagles which are obscured by triangles in front of them) to be removed. I tried to use the depth buffer to do this, but when I enable
GL_DEPTH_TEST, my triangles all start to flicker and the screen output looks rather strange. My code looks something like that(I am using glut):
//Start of Pseudo-Code
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
//…
glEnable(GL_DEPTH_TEST);
//…
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
Draw_the_triangles();
glutSwapBuffers();
//End of Pseudo-Code
I encountered this problem when I had glEnable(GL_DEPTH_TEST) inside my Render() function once. When I moved it to an Initialize() function that was only called once it smoothed out my framerate considerably.
There might be other things you only need to call once.
I am only calling glEnable(GL_DEPTH_TEST)once.
I copied my display() code into my own engine code (not yet very sophisticated)and it works perfectly!? Altough it works now, it would be interesting to know why it had not worked with GLUT.