2011-01-05 3 views
1

필자는 2.5d 뷰포트를 가지고 있는데, 앞면이없는 것처럼 안쪽으로 45도 2D 선이있는 상자의 깊이를 시각화하려고 시도하고 있는데, 다음과 같이 중심점에서 쳐다 보았다 :센터 된 고정 거리 카메라에서 3D 상자의 보이는면의 너비를 어떻게 결정합니까?

------------- 
| \_______/ | 
| |  | | 
| |_______| | 
|/  \ | 
------------- 

카메라의 거리 (사용자의 모니터에서 평균 눈 거리로 2 피트로 고정)가 주어지면 바깥 쪽 rect에서 내부 rect의 거리가 정확하다는 점에서 실제 3D 지오메트리로 은유를 그립니다.

"일반적인 내부면 너비"를 중심으로 카메라 거리, 상자의 너비와 높이 및 표현하려고하는 깊이에서 어떻게 유도 할 수 있습니까?

감사합니다.

답변

1

당신이 찾고있는 것은 perspective projection입니다. 카메라의 위치와 상자의 크기 외에도 상자가 투영 될 카메라와 상자 사이의 "화면"이 필요합니다. 카메라에서이 화면까지의 거리가 투영 된 상자의 크기를 조절합니다.

는의 카메라가 원점이며 z 단위 떨어져 상자에서 화면이 하나 개의 단위 카메라에서 멀리이다 가정 해 봅시다, 그리고 상자가 깊이 d, 폭 2w, 높이 2h했다.

3D 주변 공간에서 상자의 왼쪽 상단 모서리는 (-w, h, z)입니다. 카메라와이 점 사이의 광선이 투영 화면과 교차합니다 ((-w/z, h/z, 1)).

상자 바닥의 왼쪽 상단 모서리는 (-w, h, z+d)이고, 숫자는 (-w/(z+d), h/(z+d), 1)입니다.

마찬가지로 다른 투영 된 점의 위치를 ​​찾을 수 있습니다. 따라서 화면의 외부 상자 너비는 2w/z이고 내부 상자 너비는 2w/(z+d)이며 높이도 마찬가지입니다. 내부 상자는 내부 상자 크기가 외부 박스 것과 같은 z/(z+d) 배인 외부 상자의 크기가 일정하게 조정 된 버전입니다.

두 개의 상자를 연결하는 대각선은 상자가 사각형이 아닌 한 45 °를 기준으로 이 아닌입니다.

+0

완벽한, 감사합니다! – emery