쿼터니언 (Quaternion)

 

 

쿼터니언의 정의

쿼터니언(사원수)는 회전 값을 나타내기 위해 복소수를 확장해 만든 수 체계이다.

 

유니티에서는?

직관적으로 회전값을 나타내기 위해서는 

x, y, z의 방향으로 회전값을 각각 더해 각도를 표현하는 오일러(Euler) 체계를 사용한다.

 

직관적이고 적용하기도 쉬워서 유니티의 인스펙터에서는 오일러 값이 표시되고, 수정할 수 있다.

x, y, z의 값으로 나타내는 오일러(Euler)

인스펙터를 Debug 모드로 확인하면 내부 값은 쿼터니언 값으로 관리되는 것을 확인할 수 있다.

주의할 점은 쿼터니언의 각 값들은 바로 어떤 회전값인지 알기 힘들다.

오일러에서 (0, 0, 90) 이었다면 -> 쿼터니언에서 (0, 0, 0.7071068, 0.7071068) 이다.

x, y, z, w의 값으로 나타내는 쿼터니언(Quternion)

 

왜 사용하는데?

짐벌락을 방지하기 위해 사용된다.

 

짐벌락이란?

오일러체계에서 x, y, z의 세 회전은 종속적으로 작용하며, 차례로 회전값을 적용하는 중 첫 번째 또는 두 번째 회전의 결과로 세 번째 축이 이전 축 중 하나와 같은 방향을 가리키는 경우 1개의 축에 대해서 자유도를 잃게 된다.

-> 회전시키다가 축 두 개가 일치해 버리는 경우 축 하나에 대해서 자유도를 잃는다.

 

자세한 내용은 영상 확인

https://www.youtube.com/watch?v=zc8b2Jo7mno 

 

마치며..

쿼터니언은 유니티가 아니더라도 널리 사용되는 개념이다.

짐벌락에 관해서는 직접 회전값을 사용하는 3D 애니메이션 강좌 등에서 더 많이 찾아볼 수 있다. 

 

 

댓글

Designed by JB FACTORY