간단한 질문 : orthogonalonol보기에서 near 및 far 값을 변경합니까? 예를 들어 왼손잡이는 z가 양수이고 멀리 떨어지는 것은 z가 음수 값입니다.OpenGL Orthogonal View Near/Far 값
왼손잡이 near/far가 -1,1이어야하고 오른손/near/far가 1, -1이되어야 함을 의미합니까? 아니면 항상 -1,1입니까?
간단한 질문 : orthogonalonol보기에서 near 및 far 값을 변경합니까? 예를 들어 왼손잡이는 z가 양수이고 멀리 떨어지는 것은 z가 음수 값입니다.OpenGL Orthogonal View Near/Far 값
왼손잡이 near/far가 -1,1이어야하고 오른손/near/far가 1, -1이되어야 함을 의미합니까? 아니면 항상 -1,1입니까?
예를 들어 프로젝션 매트릭스를 만드는 경우 glOrtho()의 경우, 더 깊고 더 가까운 깊이 클리핑 평면의 값을 제공합니다. 만약 실제 행렬 살펴 있다면 돌기,
z_proj = (-2 * z_view - far - near)/(far - near)
경우 far > near
이다 z_view
감소함에 따라,이 값이 증가 후에는 생성 된 Z 좌표를 볼 것이다. 즉, 작은 z_view
의 오브젝트는 z_view
의 오브젝트보다 멀리 떨어져 있습니다. 이것은 카메라 앞에있는 물체가 음의 z 값을 갖는 우 편 좌표계와 같습니다.
far < near
인 경우이 값은 z_view
으로 증가합니다. 즉, z_view
이 더 큰 오브젝트는 더 작은 오브젝트 인 z_view
보다 멀리 떨어져 있습니다. 이것은 카메라 앞에있는 물체가 양의 z 값을 갖는 왼손 좌표계와 같습니다.
당신은 더 알 수있는 z_view
-near
의 -1
에 대한지도와 +1
--far
지도의 z_view
.
실제 (절대) 값은 장면에 따라 다릅니다. 일반적으로 카메라 뒤에 아무것도 보이지 않기를 원합니다. 따라서 near
을 0 (또는 장면의 첫 번째 객체까지의 거리)으로 설정할 수 있습니다. 카메라에 가장 먼 픽셀 거리까지 적어도 far
으로 설정해야합니다. 왼손 좌표계를 사용하려면이 값을 반전하십시오. 예 : 오른손에 대한 [0, 2]는 왼손잡이에 대한 [0, -2]이됩니다. 당신은 항상 이것에 대해 생각하고 싶지 않은 경우
, 별도의 규모 행렬에 투영 행렬의 선성 부분을 추출 할 수 있습니다 :
ProjectionRH = Ortho * Scal(1, 1, 1)
ProjectionLH = Ortho * Scal(1, 1, -1)