쿼터니언의 정의
쿼터니언(사원수)는 회전 값을 나타내기 위해 복소수를 확장해 만든 수 체계이다.
유니티에서는?
직관적으로 회전값을 나타내기 위해서는
x, y, z의 방향으로 회전값을 각각 더해 각도를 표현하는 오일러(Euler) 체계를 사용한다.
직관적이고 적용하기도 쉬워서 유니티의 인스펙터에서는 오일러 값이 표시되고, 수정할 수 있다.
인스펙터를 Debug 모드로 확인하면 내부 값은 쿼터니언 값으로 관리되는 것을 확인할 수 있다.
주의할 점은 쿼터니언의 각 값들은 바로 어떤 회전값인지 알기 힘들다.
오일러에서 (0, 0, 90) 이었다면 -> 쿼터니언에서 (0, 0, 0.7071068, 0.7071068) 이다.
왜 사용하는데?
짐벌락을 방지하기 위해 사용된다.
짐벌락이란?
오일러체계에서 x, y, z의 세 회전은 종속적으로 작용하며, 차례로 회전값을 적용하는 중 첫 번째 또는 두 번째 회전의 결과로 세 번째 축이 이전 축 중 하나와 같은 방향을 가리키는 경우 1개의 축에 대해서 자유도를 잃게 된다.
-> 회전시키다가 축 두 개가 일치해 버리는 경우 축 하나에 대해서 자유도를 잃는다.
자세한 내용은 영상 확인
https://www.youtube.com/watch?v=zc8b2Jo7mno
마치며..
쿼터니언은 유니티가 아니더라도 널리 사용되는 개념이다.
짐벌락에 관해서는 직접 회전값을 사용하는 3D 애니메이션 강좌 등에서 더 많이 찾아볼 수 있다.
'🛡️ 기술 면접용 질문들 > 유니티 관련' 카테고리의 다른 글
유니티 라이프 사이클(이벤트 함수의 실행 순서) (0) | 2021.04.22 |
---|---|
드로우 콜(draw call), 배치(batch), set pass call, GPU Instancing (0) | 2021.04.22 |
코루틴(Coroutine) vs Invoke (0) | 2021.04.16 |