I draw all the transparent objects after the solid objects and i use glDepthMask function for the transparent objects
I want to draw a realistic tree using 2 quads crossing each other (90 deg) and I am using a mask texture to cut out the tree textures
the treetexture draws perfect but i now see the crossing plane right through the other plane.
Is there a way to solve this problem?
this is a piece of that code:
glColor4f(1.0,1.0,1.0,1.0);
glPushMatrix();
Translation();
glDisable(GL_CULL_FACE);
glDisable(GL_LIGHTING);
glEnable(GL_BLEND);
glDepthMask(GL_FALSE);
glBlendFunc(GL_DST_COLOR,GL_ZERO);
glBindTexture(GL_TEXTURE_2D,Mask);
glBegin(GL_QUADS);
glNormal3f(0.0,0.0,1.0);
glTexCoord2f(0,1); glVertex3f(size,-size,0);
glTexCoord2f(0,0); glVertex3f(size,size,0);
glTexCoord2f(1,0); glVertex3f(-size,size,0);
glTexCoord2f(1,1); glVertex3f(-size,-size,0);
glEnd();
glBlendFunc(GL_ONE, GL_ONE);
glBindTexture(GL_TEXTURE_2D,Tex);
glBegin(GL_QUADS);
glNormal3f(0.0,0.0,1.0);
glTexCoord2f(0,1); glVertex3f(size,-size,0);
glTexCoord2f(0,0); glVertex3f(size,size,0);
glTexCoord2f(1,0); glVertex3f(-size,size,0);
glTexCoord2f(1,1); glVertex3f(-size,-size,0);
glEnd();
glBlendFunc(GL_DST_COLOR,GL_ZERO);
glBindTexture(GL_TEXTURE_2D,Mask);
glBegin(GL_QUADS);
glNormal3f(1.0,0.0,0.0);
glTexCoord2f(0,1); glVertex3f(0,-size,-size);
glTexCoord2f(0,0); glVertex3f(0,size,-size);
glTexCoord2f(1,0); glVertex3f(0,size,size);
glTexCoord2f(1,1); glVertex3f(0,-size,size);
glEnd();
glBlendFunc(GL_ONE, GL_ONE);
glBindTexture(GL_TEXTURE_2D,Tex);
glBegin(GL_QUADS);
glNormal3f(1.0,0.0,0.0);
glTexCoord2f(0,1); glVertex3f(0,-size,-size);
glTexCoord2f(0,0); glVertex3f(0,size,-size);
glTexCoord2f(1,0); glVertex3f(0,size,size);
glTexCoord2f(1,1); glVertex3f(0,-size,size);
glEnd();
//unset options
glDepthMask(GL_TRUE);
glDisable(GL_BLEND);
glEnable(GL_LIGHTING);
glEnable(GL_CULL_FACE);
glPopMatrix();