그래픽스(Graphics)/Game Math
오일러각 (Euler Angles)에 관하여
에드윈H
2022. 5. 10. 22:32
- 3차원 공간 상의 물체가 놓인 방향을 표시하기 위해 스위스 수학자 오일러가 소개한 방법.
장점
- x,y,z 각각의 축을 기준으로 얼만큼 회전할 것인지만 알면된다.
- 회전 변환 행렬은 최소한 9개(3x3 행렬)의 값을 필요로 하는 반면 오일러 각을 이용하면 단 3개의 값으로 충분하여 메모리 공간을 훨씬 적게 쓰는 장점이 있다. 회전 변환 행렬을 보고 어떤 축을 기준으로 얼마만큼 회전을 했는지 알기가 쉽지 않지만, 오일러 각은 바로 알 수 있으므로 가장 직관적인 방향 표현법이다.
- 만약 좌표계에서 한 축만을 기준으로 회전하는 변환들을 조합하는 경우라면 단순히 그축에 해당하는 회전각들을 모두 더하면 된다. 이런 경우는 회전의 곱셈보다 훨씬 빠르다.
단점
- 대표적인건 *짐벌락 ( 어떤 한축에 대해 물리적으로 더 이상 회전할 수 없는 상태, 즉 해당 축에 대한 회전력을 잃은 상태)
- 세가지 각으로 실제로 벡터나 점을 회전 변환을 수행하는 것이 행렬에 비해 굉장히 비효율적
- 오일러 각들의 값만을 가지고 있다면 변환마다 매번 sin,cos 값들을 계산해야해서 결국엔 저장 해야하는 값들은 9개이다.
요약 :
그래서 보통 게임에서 표현은 오일러 각(x,y,z)로 표현만 하고 실제 계산은 회전행렬을 통해 이루어진다.
* 짐벌락 현상 참고 :
https://www.youtube.com/watch?v=zc8b2Jo7mno&ab_channel=GuerrillaCG