Я пытаюсь визуализировать буфер глубины для целей отладки, рисуя его поверх фактического рендеринга при нажатии клавиши. В основном это работает, но результирующее изображение, похоже, увеличено. (Это не только исходное изображение в нечетном оттенке серого). Почему он не такой же, как и буфер цвета?
Вот что я использую в представлении буфера глубины:
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;
}