2014-03-03 7 views
0

1. 깊이 버퍼의 절대 거리를 어떻게 알 수 있습니까?깊이 버퍼의 절대 거리

2. depth_bias 및 depth_scale의 실제 값을 계산하는 방법은 무엇입니까? 제가 추천 해 재판을 :

glGetDoublev(GL_DEPTH_BIAS, &depth_bias); // (Returns only 0.00) 
glGetDoublev(GL_DEPTH_SCALE, &depth_scale); // (Returns only 1.0) 

을 내 코드에서 나는이 zNear, zFar values- 선언했다.

+1

반환 값이 잘못된 이유는 무엇이라고 생각하십니까? 깊이 값을 사용하여 카메라에서 실제 거리를 원하십니까? 이것은 투영 행렬에 따라 다릅니다. 이 행렬을 초기화하는 방법을 추가해야합니다. –

+0

왜 'depth_bias'와'depth_scale'이 필요한가요? – Kromster

+0

만약 내가 진짜 값을 가지게된다면 나는 변환을 할 수 있고 깊이 버퍼의 절대 거리를 받아 들일 수있다. – user3375217

답변

0
Distance = NearClipPlane + DepthBufferValue * (FarClipPlane - NearClipPlane); 

가까이/멀리 클립 비행기 값이 사용됩니다 - 그리고 나는 그들이 거리가 ZFAR, ZNEAR과 depthBufferValue (픽셀 픽셀에서 변경)에 의존 const.so되지 않도록 그들을 제공 할 값을 결정 투영 행렬을 구성합니다. 코드에서 볼 수 있어야합니다. 예 :

glOrtho(left, right, bottom, top, nearVal, farVal); // <-- Last two values here 
gluPerspective(fovy, aspect, zNear, zFar); // <-- Last two values here 
+0

귀하의 질문은 귀하가 이미 그 가치를 갖고있는 것처럼 보입니다. 그렇지 않으면 - 당신은 그것을 얻어야합니다. 예를 들어 깊이 버퍼에서 읽음으로써. 아마도 "깊이 버퍼 값을 얻는 방법"이라는 별도의 질문을해야 할 것입니다. – Kromster