2014-08-29 14 views
2

구 교차로 : Frustum Culling프러스 텀과 내가 여기에 깔끔한 기사를 따라 읽고 있어요

하고 구형과 프러스 텀 측 (평면) 사이의 거리를 찾는 것을 읽고는 다음과 같습니다

C = 평면

D = 원점으로부터 법선을 따라 평면 거리 통상 구

N = 중심

거리 = DotProduct (C, N) + D

그러나 변수 D가 무엇을 의미하는지 이해하지 못합니다. 특히, 나는 절두체의 기원이 무엇인지 이해하지 못한다. 카메라 눈이있는 곳입니까?

답변

3

D는 평면이 정의 된 공간의 원점을 통과하기 위해 평면의 법선을 따라 이동해야하는 수직 거리입니다 (이 값은 대부분 월드 좌표에서 원점이 될 것으로 예상하지만, 평면은 카메라 좌표로 기술되고 카메라 원점을 사용합니다. 궁극적으로 동일한 공간에서 계산을 모두 수행하는 한 중요하지 않습니다. 즉, 구와 원점이 모두 같은 공간에서 사용하는 원점 비행기가 비교되고있다.).

이 값은 평면 방정식에서 같은 값입니다. Ax + By + Cz + d = 0. d는 사용자가 사용할 값 D입니다. d를 비행기의 알려진 지점을 취하여 d의 평면 방정식을 푸는 데 사용하여 d를 계산할 수 있습니다. (x, y, z)는 평면상의 점의 좌표이고, d에 대한 평면 방정식을 풀면, (x, y, z)는 평면의 단위 방정식 벡터의 X, Y, Z 요소입니다. 거리.

동일한 공간에서 모든 계산을 수행하는 것이 좋습니다. 세계 공간 또는 카메라 공간 또는 화면 공간이어야합니다. 나는 당신이 세계 공간에서 당신의 계산을하고 싶어 할 것이라고 생각합니다.

+0

"DotProduct (C, N) + D"는 본계면의 중심에 평면 방정식 (Ax + By + Cz + d)을 적용한 것과 본질적으로 동일하므로 0의 결과는 구가 비행기 위에 정확하게 놓여 있습니다. – YoungJohn

+0

그래서 월드 좌표에서 정의되고 절두체가 원점에있는 경우 법선이 통과하는 원점은 0,0,0입니까? – sgtHale

+0

네, 그게 당신이 원한 원천이라고 믿습니다. – YoungJohn