Я искал ответ, но я все еще не нашел понятного ответа, поэтому я спрашиваю, как вычислить значение в буфере глубины.расчет значений буфера глубины
В https://en.wikipedia.org/wiki/Z-buffering здесь формула как изображение:
и здесь это написано мной:
г»= (2^д -1) * ((далеко + рядом)/(2 * (дальний) + (1/z) * (-far * near)/(far-near) + 1/2) , когда d - глубина z-буфера (24 бит в моем случае) и z - значение z вершины.
Я написал простой код и попытался запустить его и прочитать значение буфера глубины и вычислить его, но i получать отклики.
мой пример кода:
/* init */
#define CUBE_SIDE_SIZE 0.25
glViewport(0,0,WINDOW_WIDTH,WINDOW_HEIGHT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1, 1, -1, 1, -1, 1);
/* draw */
glEnable(GL_DEPTH_TEST);
glBegin(GL_QUADS);
glColor3f(1, 0, 0);
glVertex3f(-CUBE_SIDE_SIZE, -CUBE_SIDE_SIZE, -CUBE_SIDE_SIZE);
glVertex3f(-CUBE_SIDE_SIZE, CUBE_SIDE_SIZE, -CUBE_SIDE_SIZE);
glVertex3f(CUBE_SIDE_SIZE, CUBE_SIDE_SIZE, -CUBE_SIDE_SIZE);
glVertex3f(CUBE_SIDE_SIZE, -CUBE_SIDE_SIZE, -CUBE_SIDE_SIZE);
glEnd();
Я прочитал от 0,375 значения глубины буфера. Как я могу получить это значение путем вычисления?
Спасибо.
Почему вы хотите рассчитать значения буфера глубины? Btw: Не используйте устаревшие методы OpenGL! –