2015-02-04 1 views

답변

0

아니요, 번역을 본 후에 렌더링 클리핑 만됩니다. 따라서 예를 들어 {0,0,-100}에 기반한 객체를 카메라로 {0,0,-110}에 렌더링하면 클리핑 평면 내에있는 경우 렌더링되지만 그 이상의 경우에는 -110+zFar-110-zNear이 잘립니다. 그것은 아주 간단한 설명이지만 사실상 어떻게 작동하는지.

+0

'-110 + zNear'입니까? –

+0

@ 리토 .... 아마도 :) 감사합니다 –

1

좌표를 나타낼 수있는 다른 공간을 혼동하지 마십시오. 대답이 표시된 체크는 지나치게 단순화되어 대부분의 경우 정답이 아닐 수도 있습니다.

zNear 및 zFar는 월드 단위로 볼 때 "카메라"또는 뷰의 눈으로부터 거리를두고 있지만 월드 좌표는 아닙니다. 따라서 양수 여야합니다. 또한 일종의 (음수) 또는 카메라 공간입니다. 카메라가 -z 공간을 가리키는 z 축과 정렬 된 경우에만 올바른 답변으로 표시된 체크 또는 클리핑되는 대상에 대한 설명입니다.

이들은 가장 가까운 및 가장 가까운 클리핑 경계를 정의하는데 도움이되지만 장면의 클리핑 경계를 표시하지는 않습니다. 다시 말하지만, 이는 카메라의 위치에 달려 있습니다. 그리고 "장면"에 대한 당신의 정의.

종종 OpenGL에는 카메라가 없습니다. 그러나 나는 그렇게 생각하지 않는 것을 선호합니다. 보기가 있고 따라서 카메라가 있습니다. lookAt 기능을 사용하면 뷰/카메라를 장면의 어느 곳으로나 배치하고 원하는 방향으로 지정할 수 있습니다. 나에게 당신의 은 렌더링하는 모든 객체이며, 객체의 현재 뷰가 아니다. 그런 식으로 zNear 및 zFar를 생각하면 장면이 전혀 제한되지 않고 카메라의 시청 깊이가 제한됩니다. 그것은 당신의 눈에서 끈적 거리는 테이프 측정 값입니다. 상황이 바뀌면 벡터 변화가 생깁니다.

예를 들어, x 축과 z 축을 따라 행과 열의 블록 그리드 장면을 상상해보십시오. 그러나 모두 0이어야합니다. 카메라가 z 축과 정렬 된 경우 zNear와 zFar는 z 축과 관련됩니다 중심선. 당신은 아마 블록이 카메라에서 멀어지는 것을 보게 될 것입니다. 그러나 카메라가 y 위에있는 모든 것 위에 떠 다니는 경우 +100이라고 지적하면 더 많은 것을 격자로 볼 수 있습니다. 그리고이 경우 zNear와 zFar는 장면의 z 축과 아무 관련이 없습니다. 카메라의 z 축 (카메라 공간)의 객체에 대한 카메라의 자르기와 관련이 있습니다.

+0

여기에 당신의 대답 중 일부는 맞지만, 나는 모든 것에 동의 할 수 없습니다. "따라서 그들은 양수 여야합니다." 사실이 아니다. -10, -10, -10에 객체를 렌더링 할 수 있습니다. 당신이 지적했듯이, 그것은 모두 카메라의 위치에 달려 있습니다. 문제는 "내 물건이 모두 양의 Z 축에 그려지는 것을 의미합니까?"라는 진술은 OpenGL 초보자에게 당신의 진술이 약간 혼란 스러울 것이라고 생각합니다. 나는 그것이 가혹하지 않길 바래요. 대답을하지만, 나는 아무도 그 질문을 혼란스럽게하지 않기를 바랄뿐입니다. 나는 '단순하게 유지'하는 것을 선호했다. 접근 : –

+0

아니요, 근거리 및 원거리 값은 "카메라"앞뒤로 거리가 있기 때문에 항상 양수입니다. 그렇게 음의 거리를 가질 수는 없습니다. 어쩌면 당신은 내가 더 잘 설명 할 필요가 있지만 당신이 꼭 필요하다고 생각할 것입니다. 더 많은 시간이 있다면 그래픽을 추가하여 더 명확하게 만들 수 있습니다. – badweasel

+0

기록상 나는 당신의 대답에 투표하지 않았습니다. 나는 아래 표를 보았 기 때문에 대답을 추가했습니다. – badweasel