2012-12-08 5 views
0

가능한 중복 :
Mapping coordinates from plane given by normal vector to XY plane3D 좌표를 2D 좌표로 변환하는 방법은 무엇입니까?

어떻게이 3D 공간에 위치하는 점의 화면 위치를 얻을 수 있습니다?

카메라의 위치는 0,0,0이며 회전되지 않습니다.

+1

FOV를 잊지 마세요. 그러면 화면 위치가 바뀝니다. – Aaron

+1

예, 비율과 각도도 주어집니다. –

+1

그래,이게 더 수학 문제입니다. 나는이 웹 사이트에서 물어볼 필요가 없다고 생각합니다. – Aaron

답변

3

투영의 유형에 따라 다릅니다.

표준 원근 투영이다 : 그것은 두 방향에서보기 당신의 90도 필드를주고 당신이 (0, 0, 0)에 따라 Z에서 찾고 가정합니다

x' = (centre of viewport) - (half width of viewport) * x/z 
y' = (centre of viewport) - (half height of viewport) * y/z 

.

뷰포트가 자주 정사각형이 아니므로 투영하기 전에 형상을 스케일링하는 것이 일반적입니다. 또한 z가 0 일 때 결과가 정의되지 않고 z가 0으로 가까워 질수록 문제가 발생한다는 것을 알 수 있습니다. 카메라 중 하나가 카메라 뒤에 있어야 할 때 화면에 양수 및 음수 z를 매핑합니다. 일반적으로 z가 특정 임계 값보다 작은 지오메트리 (또는 점을 버림)를 자릅니다.

도트 측면에서, abs (x)> z 또는 abs (y)> z 인 경우 점이 오프 스크린 인 경우 양수 z를 유지한다고 가정합니다. 전체 형상으로 이동하면 해당 관찰을 사용하여 화면 가장자리에서 클립을 클립하여 픽셀 별 검사를 절약 할 수 있습니다.

관련 문제