2016-12-30 2 views
0

나는 3D, Y- 업 세상과 원근 카메라를 가지고 있습니다. 세상을 시작할 때 카메라의 위치는 (0,2,0)이고 (0,0,1)입니다. 이제 3D 모델을 (10,5,10)에 배치합니다.LibGDX : 카메라를 회전하는 동안 동일한 시각적 화면 위치에 객체를 유지하는 방법

3 축을 중심으로 카메라 회전을 시작하거나 번역/이동하는 경우이 객체를 시각적으로 동일한 위치에 유지하려면 무엇이 필요합니까 (번역, 회전, ...). ?

모델의 위치를 ​​변경할 수 있지만 카메라와 모델의 거리를 동일하게 유지하려면 무엇이 더 필요합니까?

내가 달성하고 싶은 것은 플레이어의 현재 최고 점수를 표시 할 수있는 대상이며 플레이어가 어디에 있는지에 관계없이 항상 오른쪽 상단 모서리에 표시됩니다. 정상적인 응용 프로그램에서는 Scene2D를 사용할 수 있지만 Google의 Cardboard 용으로 개발할 때 Scene2D는 더 이상 작동하지 않습니다. (왜냐하면 우리는 각 눈에 대한 두 가지 다른 투시도 설정이 있고 이것들은 스테이지의 OrthographicCamera에는 사용할 수 없습니다).

답변

0

그래서 여기서하려고하는 것은 입방체에 카메라의 변형과 관련된 변형을 제공하여 수학적으로 수행 할 수 있습니다. 본질적으로 카메라를 원점으로 만드는 것입니다.

그러나 내가 더 좋은 방법을 제안 할 수 있다면 원산지 (또는 어디에서든지)에 머무르며 나머지 게임과는 별도로 UI를 렌더링해야하는 별도의 PerspectiveCamera을 만들 수 있습니다. Scene2D와 동일한 원리를 사용하지만 복잡하지 않으며 나중에 Google Cardboard를 지원하지 않는 경우 나중에 UI를 쉽게 전환 할 수 있습니다.

+0

귀하의 두 번째 접근 방식이 앞으로 올바른 방법 인 것으로 보입니다. 나는 UI 패널이 "정적으로"표시되었지만 이제는 플로어 레이어에 의해 잘리는 문제를 겪었습니다. 카메라가 위아래로 끄덕이는 것을 보면 꽤 재미 있습니다. OpenGL에게 두 번째 드로잉 단계를 첫 번째 드로잉 단계와 별도로 처리하도록 어떻게 알 수 있습니까? – mbauer