비타Cpp

원점을 기준으로 회전하는 카메라 본문

DirectX12/게임 수학

원점을 기준으로 회전하는 카메라

멍C 2021. 10. 17. 16:31

카메라의 이동 회전 방식 중에 중심점으로부터 일정 거리를 반지름으로 하여 구를 그리며 이동하는 방식이 있다.

여기서 카메라가 바라보는 방향은 쉽게 중심점 - 카메라 위치의 단위 벡터를 이용하면 된다. 하지만 카메라의 위치는 조금 생각을 해봐야 한다.

여기서 필요한것은 y축에서의 회전량 phi, x축의 회전량 theta, 마지막으로 반지름(중심점과 카메라의 거리) radius(r)이다.

이 세가지 요소를 이용하여 구하는 카메라의 좌표는 다음과 같다.

$$x' = r\times\sin(phi)\times\cos(theta)\\ y' = r\times\cos(phi)\\ z' = r\times\sin(phi)\times\sin(theta)$$

 

이러한 공식이 나오는 풀이과정은 아래 그림을 보면 알 수 있다.

그림판으로 그려서 발퀄이지만 이해할 수 있겠죠?

 

'DirectX12 > 게임 수학' 카테고리의 다른 글

행렬식(Determinant)  (0) 2021.08.05
비례(Scaling) 행렬  (0) 2021.08.02
외적 (Outer Product / Cross Product)  (0) 2021.08.01
직교화(Orthogonalization)  (0) 2021.07.28
내적과 직교 투영  (0) 2021.07.28
Comments