본문 바로가기
DirectX 12/Quaternion

[DirectX12 - Quaternion] Chapter 01. 오일러 각

by song.ift 2023. 7. 1.

 

쿼터니언은 4원수

유니티에서 오일러 방식으로 보여줌
오일러 방식이란, x축 y축 z축 하나씩 가지고 있고, 호도법이 아닌 우리가 일반적으로 각도로 설정한 것을 얘기한다.
그렇게 각각 회전하는 각도를 입력해서 조합한 다음, 물체를 회전시킬수있다 라는게 오일러 방식의 아이디어다.

회전은 우리가 오일러방식의 회전을 사용하고있었는데 여기엔 문제가있다.
각기 회전들이 결합할 때 문제가 생긴다
만약 x축 각도를 90으로 해놓고, y축 회전을 할 시, y축회전방향이 아닌 z축회전방향으로 회전을 한다.
이런걸 짐벌락 현상이라 한다. = 세 축중 하나의 축이 먹통이 되는 현상 

회전은 이동과 다르게 하나의 축으로 회전을 할 때, 다른축도 영향을 받아서 같이 회전을 하게 되는데
운이 안좋게도 어떤 두축이 겹치는 상황이 발생해서 그때 축이 하나가 손실되는 상황인 것이다. (그게 90도 였던것이지 어떤 각도가 되든 어떻게 될지 몰름)

유니티에서든 직관적으로 보기 위해 x y z로 관리하고 있지만, 사실 쿼터니언으로 관리하고 있다.
쿼터니언을 사용하면 이런 문제들이 해결된다.

쿼터니언에서도 쿼터니언을 만든다음에 쿼터니언 사용할것이면 쿼터니언 형태로만 동작을 하게끔
쿼터니언에 있는 로테이션을 사용한다거나 하는식으로 작업하게 된다.


복소수는 실수부 + 허수부
z = a + bi
a가 실수부
bi가 허수부
a, b는 그냥 기본 숫자단위고, i가 허수단위

 

댓글