edit: I have added a few new lines of code to the beginning for depth buffering with no luck. See code…
edit 2: I am constructing the model builder on a wxglcanvas via wxwidgets. I have initialized WX_GL_DEPTH_SIZE of 16 and WX_GL_DOUBLEBUFFER on top of enabling depthbuffering and glClear(GL_DEPTH_BUFFER_BIT) with no luck. One thing that might be useful to note is that when I draw a cone, it seems to be drawing the cone as if I am looking at the inside of it rather than the outside portion, so it looks as if it’s concaved in.
I have an odd problem where my openGL models do not overlap correctly. I am building a model builder so that the user can create and rotate a model on a canvas.
For example: If I have a circle within a box and I rotate the model around, I can still see the circle within the box as if the box is transparent. How I picture this is that if the circle is in the box, I should not be able to see it. Does anyone have any guesses to what causes this type of problem? I have not implemented any type of transparency, so I’m not really sure what is causing this. I am still very new to openGL so a lot of my efforts have just been trying lines of code I find on the forums and hoping it works.
This problem seems to only occur in Ubuntu and not under Win 7 when I test my program after adding two lines of code (shown below).
Here are some lines of code for drawing the models…
//Newly Added code
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_GEQUAL);
glClearDepth(1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//End newly added code
glGetIntegerv(GL_MATRIX_MODE, &mm);
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(identity);
GrGetInfo();
glViewport(0,0,gw->gc.width,gw->gc.height);
GrGetInfo();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// Set some predefined parameters
glOrtho ((GLdouble)tmpOtherAxis.minval, (GLdouble)tmpOtherAxis.maxval,
(GLdouble)tmpRangeAxis.minval, (GLdouble)tmpRangeAxis.maxval,
-range_dist, range_dist);
glMatrixMode(mm);
//ADDED THESE TWO LINES AND MODEL DISPLAYED
//CORRECTLY IN WIN7 BUT NOT UBUNTU
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
//Draw model here
glPopMatrix();
Thanks in advance!