我试图通过在按键时将深度缓冲区绘制在实际渲染的顶部来可视化深度缓冲区,以进行调试。这在大多数情况下都起作用了,但是生成的图像似乎被放大了。(不仅是原始图像,而且呈现出怪异的灰度)为什么它的大小与颜色缓冲区不同?
这是我用于查看深度缓冲区的内容:
这是我用于查看深度缓冲区的内容:
void get_gl_size(int &width, int &height)
{
int iv[4];
glGetIntegerv(GL_VIEWPORT, iv);
width = iv[2];
height = iv[3];
}
void visualize_depth_buffer()
{
int width, height;
get_gl_size(width, height);
float *data = new float[width * height];
glReadPixels(0, 0, width, height, GL_DEPTH_COMPONENT, GL_FLOAT, data);
glDrawPixels(width, height, GL_LUMINANCE, GL_FLOAT, data);
delete [] data;
}