Я хотел бы получить буфер глубины из вида моей камеры для приложения 3D-фильтрации. В настоящее время я использую glReadPixels, чтобы получить компонент глубины. Вместо значений [0,1] мне нужны истинные значения для буфера глубины или истинное расстояние до камеры в мировых координатах.
Я пытался преобразовать значения глубины с помощью GL_DEPTH_BIAS и GL_DEPTH_SCALE, но это не сработало.
glReadPixels(0, 0, width_, height_, GL_DEPTH_COMPONENT, GL_FLOAT, depth_buffer);
glGetDoublev(GL_DEPTH_BIAS, &depth_bias); // Returns 0.0
glGetDoublev(GL_DEPTH_SCALE, &depth_scale); // Returns 1.0
Я понимаю, что это похоже на Получение истинного значения z из буфера глубины , но я бы хотел получить значения глубины в основную память, а не в шейдер.