Thanks k_szczech and Jackis
I change my Viedio card to Geforce 8600
I use NV_depth_buffer_float to generate floating point depth texture.
glGenTextures(1, &shadowTextureID);
glBindTexture(GL_TEXTURE_2D, shadowTextureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glGenFramebuffersEXT(1, &framebufferID);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, framebufferID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32F_NV, 1024, 1024, 0,GL_DEPTH_COMPONENT,GL_FLOAT , NULL);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT , GL_TEXTURE_2D, shadowTextureID, 0);
glDrawBuffer(GL_NONE);
glReadBuffer(GL_NONE);
GLenum fboStatus = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
if (fboStatus != GL_FRAMEBUFFER_COMPLETE_EXT)
{
fprintf(stderr, "FBO Error!
");
}
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
the floating depth texture is correct.Does the texture can be used for VTF?