나는 답을 찾았지만 이해할 수있는 대답을 찾지 못했습니다. 그래서 깊이 버퍼에서 값을 계산하는 방법을 묻습니다. 여기 https://en.wikipedia.org/wiki/Z-buffering 에서깊이 버퍼 값 계산
이미지와 식이다
및 여기로 날에 의해 기록된다
Z '= (2^D-1) * ((먼곳 + 근처)/(d가 z 버퍼의 깊이 인 경우 (내 경우에는 24 비트) 일 때 2 * (가까운 거리) + (1/z) * (-far * 근처)/z는 꼭지점의 z 값입니다.
간단한 코드를 작성하여 실행하고 깊이 버퍼 값을 읽고 계산하려고했지만 다른 답을 받으십시오.
내 코드 예제 :
/* 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의 사용되지 않는 메소드를 사용하지 마십시오! –