Unreal

13. RotationMatrix

Kelvin의 게임개발 2024. 1. 12. 01:07
728x90
반응형

1. Rotation Matrix (회전행렬)

 

Controller에는 순방향 벡터는 존재하지 않지만 회전은 존재한다

따라서 회전행렬을 이용하여 Controller의 해당 회전을 기준으로 하는 방향 벡터를 구해야 한다

 

예를들어 Controller를 Y축, Z축으로 45도 회전시켰다고 가정하면 다음과 같은 그림으로 표현할 수 있다

(Pitch 45, Yaw 45, Roll 0)

 

아래는 기본적인 회전행렬이다

 

회전행렬의 cos, sin을 이해하기 위해 아래의 그림에서 설명을 하면

 

V벡터를 Θ만큼 회전 시킨 Vt 벡터를 구하기 위해서는 Vt의 Y, X를 알아야 한다

 

 

이때 V 벡터를 Unitvector 생각하면 y = Sin(Θ), x = Cos(Θ)라는 결과를 얻을 수 있다

 

회전행렬에 V벡터를 곱하기 위해 V벡터의 X,Y를 행이 아닌 열로 작성해보면 다음과 같다

(UnitVector)

 

결과적으로 이러한 Vector와 Matrix의 곱셈이 필요하다

 

위 Vector와 Matrix의 곱셈은 (x,y)가 나오게 된다
1 * Cos(Θ) + 0 * -Sin(Θ) = Cos(Θ) => x
1 * Sin(Θ) + 0 * Cos(Θ) = Sin(Θ) => y

 

따라서 Vector와 회전 Matrix의 곱으로 해당 회전값일때의 벡터를 알 수 있다는 결론이 나온다

 

 

728x90
반응형