Vexator
07-17-2006, 05:38 PM
hi! i want to render the depth information of a scene into a texture, but it results in a plain white texture. am i missing sth obvious?
on initialization:
glGenTextures( 1, &m_uiDepthId );
glBindTexture( GL_TEXTURE_2D, m_uiDepthId );
glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR );
glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f );while rendering:
//Save viewport
int avViewport[4];
glGetIntegerv( GL_VIEWPORT, (int*)avViewport );
//Set new viewport
glViewport( 0, 0, 512, 512 );
// Render models
for( unsigned int CurrentModel = 0; CurrentModel < m_vModels.size(); CurrentModel++ )
m_vModels[CurrentModel]->Render();
// Save in depth texture
glBindTexture( GL_TEXTURE_2D, m_uiDepthId );
glCopyTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 0, 0, 512, 512, 0 );
// Reset viewport
glViewport( avViewport[0], avViewport[1], avViewport[2], avViewport[3] )
on initialization:
glGenTextures( 1, &m_uiDepthId );
glBindTexture( GL_TEXTURE_2D, m_uiDepthId );
glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR );
glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f );while rendering:
//Save viewport
int avViewport[4];
glGetIntegerv( GL_VIEWPORT, (int*)avViewport );
//Set new viewport
glViewport( 0, 0, 512, 512 );
// Render models
for( unsigned int CurrentModel = 0; CurrentModel < m_vModels.size(); CurrentModel++ )
m_vModels[CurrentModel]->Render();
// Save in depth texture
glBindTexture( GL_TEXTURE_2D, m_uiDepthId );
glCopyTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 0, 0, 512, 512, 0 );
// Reset viewport
glViewport( avViewport[0], avViewport[1], avViewport[2], avViewport[3] )