Hi!!!
I will draw two cube…using the depth test.
But, last cub(Diameter 400) is transparency.
So i can see the first cub(Diameter 300).
Isn’t the depth test achieved?
-------------- Source Code ----------------------
int CDlgScene::InitGL(GLvoid)
{
GLfloat ambientLight[]={0.3, 0.3, 0.3, 1.0};
GLfloat diffuseLight[]={0.4, 0.4, 0.4, 1.0};
GLfloat specular[]={0.5, 0.5, 0.5, 1.0};
GLfloat lightPos[]={-2000, -2000, 5000, 1.0};
GLfloat specref[]={0.5, 0.5, 0.5, 1.0};
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClearDepth(1.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLight);
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseLight);
glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
glEnable(GL_LIGHT0);
glEnable(GL_COLOR_MATERIAL);
glMaterialfv(GL_FRONT, GL_SPECULAR, specref);
glMateriali(GL_FRONT, GL_SHININESS, 64);
glShadeModel(GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
return TRUE;
}
int CDlgScene::DrawGLScene(GLvoid)
{
glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);
glViewport(0, 0, 705, 602);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1500, 1500, -1281, 1281, -1500, 1500);
gluPerspective(0.02, 705.0/602.0, 1, 3000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(m_xPos, m_yPos, m_zPos-6000);
glRotatef(-90, 1, 0, 0);
glRotatef(m_xAngle, 1, 0, 0);
glRotatef(m_zAngle, 0, 0, 1);
glPushMatrix();
glColor3f(1.0, 1.0, 1.0);
glutSolidCube(300.0);
glColor3f(1.0, 0.0, 1.0);
glutSolidCube(400.0);
glPopMatrix();
return TRUE;
}