I am trying to store the depth may of my mesh into a texture. Unfortunately I am not able to get a depth map out of it.
The code in my display method to produce mesh is:
glEnable( GL_LIGHTING );
glEnable( GL_LIGHT0 );
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glFrontFace(GL_CW);
glEnable( GL_DEPTH );
glShadeModel( GL_SMOOTH );
glColor3f( 1., 0., 0. );
glUseProgram(meshLight);
for( unsigned int i=0; i< stlMesh.size(); i++)
{
// dummy = stlMesh[i]->getNormal();
stlMesh[i]->getVertex( 1, dummy1 );
stlMesh[i]->getVertex( 2, dummy2 );
stlMesh[i]->getVertex( 3, dummy3 );
v1.x = dummy2.x - dummy1.x;
v1.y = dummy2.y - dummy1.y;
v1.z = dummy2.z - dummy1.z;
v2.x = dummy3.x - dummy1.x;
v2.y = dummy3.y - dummy1.y;
v2.z = dummy3.z - dummy1.z;
v1 = v1.cross(v2);
v1 = v1.normalize();
glBegin( GL_TRIANGLES );
glNormal3f( -v1.x, -v1.y, -v1.z );
// vertex 1
glVertex3f( dummy1.x, dummy1.y, dummy1.z );
// vertex 2
glVertex3f( dummy2.x, dummy2.y, dummy2.z );
// vertex 3
glVertex3f( dummy3.x, dummy3.y, dummy3.z );
glEnd();
}
This works wonderful.Now, I am trying to store the depth map using the following code but i fail:
glBindTexture(GL_TEXTURE_2D, txDepth0);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32,
fbWidth, fbHeight, 0, GL_DEPTH_COMPONENT, GL_FLOAT, 0);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, framebuffer0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
GL_TEXTURE_2D, txDepth0, 0);
//----------------------------------
// render depth projection
glViewport(0, 0, fbWidth, fbHeight);
glUseProgram(0);
// render front depth into framebuffer 1
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, framebuffer0);
glDepthFunc(GL_GREATER);
glClearDepth(0.0f);
glClear(GL_DEPTH_BUFFER_BIT);
for( unsigned int i=0; i< stlMesh.size(); i++)
{
// dummy = stlMesh[i]->getNormal();
stlMesh[i]->getVertex( 1, dummy1 );
stlMesh[i]->getVertex( 2, dummy2 );
stlMesh[i]->getVertex( 3, dummy3 );
v1.x = dummy2.x - dummy1.x;
v1.y = dummy2.y - dummy1.y;
v1.z = dummy2.z - dummy1.z;
v2.x = dummy3.x - dummy1.x;
v2.y = dummy3.y - dummy1.y;
v2.z = dummy3.z - dummy1.z;
v1 = v1.cross(v2);
v1 = v1.normalize();
glBegin( GL_TRIANGLES );
glNormal3f( -v1.x, -v1.y, -v1.z );
// vertex 1
glVertex3f( dummy1.x, dummy1.y, dummy1.z );
// vertex 2
glVertex3f( dummy2.x, dummy2.y, dummy2.z );
// vertex 3
glVertex3f( dummy3.x, dummy3.y, dummy3.z );
glEnd();
}
glColor3f(1, 1, 1);
the txDepth0 remains filled with 0 :(.
Can someone point out some error that i am making in my code
regards and best wishes












