호빵의 IT 개발소

[유니티] Euler, Quaternion 본문

C#, 유니티/유니티엔진 기초

[유니티] Euler, Quaternion

호빵Stack 2022. 7. 4. 23:44

EulerAngles

  • 유니티에서 Euler 각도는 x, y, z 3개의 축을 기준으로 회전시키는 각도계를 의미한다.
  • Unity에서 EulerAngles는 x,y,z 순서로 계산

Quaternion

  • Quaternion은 각 축을 한꺼번에 계산하기 때문에 짐벌락 문제가 발생하지 않음
  • Quaternion은 4개의 성분(벡터 : x, y, z, 스칼라 : w)으로 이루어져 있음

짐벌락(Gimbal-lock)

  • 같은 방향으로 오브젝트의 두 회전 축이 겹치는 현상
  • 만약 x 축으로 90도 회전한 뒤 y축으로 90도를 회전하게 되면 z축과 x 축이 한축으로 합쳐지면서 한축에 대한 계산이 불가능 해짐
  • EulerAngles는 자체적으로 설정되어있는 순서로 해당 축들을 개별적으로 계산하기 때문
  • 3D 게임에서는 오일러 앵글만으로 짐벌락 문제로 구현에 한계가 있음

 

  장점 단점
EulerAngles 직관적이어서 사용자 입력을 받을 수 있다. 짐벌락 문제가 나타난다.
연산 속도가 느리다.
Quaternion 짐벌락 문제가 나타나지 않는다.
연산 속도가 빠르다.
직관적이지 않아 사용자 입력을 받을 수 없다.

 

 

 

 


참조 및 출처 : 

https://hub1234.tistory.com/21

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ojh6t3k&logNo=20195027681

Comments