Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.


Depth Test

This topic is 5264 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I wrote a simple program to clarify my problem... This program draws 2 spheres, in two positions, the yellow one in (0,0,-15), and the white one in (0,0,-4). both balls have the same radius, the yellow one should not be rendered since it is positioned behind the other... but it is rendered.. Everything works well when i use glOrtho instead of glPerspective.. why''s that.. /*DepthTest.cpp*/ #include <GL\glut.h> #include <GL\glu.h> void init(void) { GLfloat light_position[] = { 1.0, 1.0, -3, 0.0 }; glClearColor(0.0f, 0.0f, 0.0f, 0); glShadeModel(GL_SMOOTH); glClearDepth(1.0f); glDepthFunc(GL_LEQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glEnable(GL_COLOR_MATERIAL ); glLightfv(GL_LIGHT0, GL_POSITION, light_position); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); } void display(void) { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); glColor3f(1,1,1); glTranslatef (0,0,-4); glutSolidSphere(1.5, 100, 100); glPopMatrix(); glPushMatrix(); glColor3f(1,1,0); glTranslatef (0,0,-15); glutSolidSphere(1.5, 100, 100); glPopMatrix(); glutSwapBuffers(); } void keyboard(unsigned char key, int x, int y) { switch (key) { case 27: exit(0); break; } } void reshape(int w, int h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(100.0, (GLfloat) w/(GLfloat) h, 0, 6); // glOrtho(-5, 5, -5, 5,-5,5); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB |GLUT_DEPTH); glutInitWindowSize (600, 600); glutInitWindowPosition (100, 100); glutCreateWindow ("DEPTH TEST !!"); init(); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glutReshapeFunc(reshape); glutMainLoop(); return 0; }

Share this post

Link to post
Share on other sites
I found out what''s the problem..never have zNear as 0...
gluPerspective(100.0, (GLfloat) w/(GLfloat) h, 0.1, 6); solved the problem...
Again.. zNear must never be set to 0.

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!