2011-02-02 2 views
1

저는 "2D"인터페이스 요소에 3D 회전 효과를 적용 할 수 있도록 3D GUI 프로젝션에 GUI 인터페이스를 배치하는 방법을 고려해 왔습니다. 내가 가지고있는 문제는 배치하기 어려운 요소 였고 한 번에 모두보기에 적합하다는 것입니다.2D GUI를 3D로보기 위해 쿼드를 중심으로 크기를 조절하십시오.

"스크린"표면을 표현하기 위해 공간에서 2D 쿼드를 정의하고 그래픽을 GUI에서 2D와 동일한 방식으로 레이아웃합니다. 그런 다음 카메라를 쿼드의 중심으로 이동하고 카메라를 가리키고 카메라의 위치를 ​​쿼드 표면 기준선을 따라 특정 거리만큼 투영하여 전체 쿼드가 뷰잉 프러스 텀에 들어갈 때까지 투영합니다. 문제는 카메라 위치를 투사 할 최소 거리를 찾는 방법을 모르겠다는 것입니다.

누구나 알고있는 방정식/알고리즘을 알고 계십니까?

답변

1

간단히 루프를 만들고 거리를 늘려 측정 할 때까지 측정 할 수 있지만 기본 trig를 사용하면 이미지를 특정 크기로 표시하는 데 필요한 정확한 거리를 찾을 수 있습니다.

특정 크기의 사각형을 채우고 싶습니다. 그 크기의 정사각형을 상상해 카메라를 약간의 거리 (d) 떨어져서 이미지 중앙에 놓은 상태로 원하는 이미지의 너비 (w)와 카메라의 시야각의 절반 (a), 사인을 사용하여 거리를 찾으십시오. 반대편의 각도와 크기를 알 수 있습니다.

그래서 식 기본적이있다 : D = 죄 (a) *

+0

편집 덕분 w 내가 언급 한 무차별 대항 방법에 대해 생각했지만 그것을 수행하는 "올바른"방법을 찾지 못했습니다 (제 삼각은 다소 불규칙합니다). 나는 이것을 줄 것이다. 그러나 그것이 효과가있는 것처럼 들린다. –

+0

이 답변에서 약간의 도움으로 : http://stackoverflow.com/questions/2866350/move-camera-to-fit-3d-scene 나는 모든 것이 매력처럼 작동하도록했습니다. 고마워 :) –

+0

나는 그들이 또한 삼각 함수를 사용하지만, 약간 다르게 참조하십시오. 항상 그렇게하는 것이 좋습니다. 각도가 변경되지 않으면 비율을 미리 정의하여 성능을 높일 수 있습니다. – Jasmine

관련 문제