오일러 각, 짐벌락, 쿼터니언

최장범·2023년 9월 19일
0

TIL

목록 보기
30/50
post-thumbnail

오일러 각(Euler Angles)과 짐벌락(Gimbal-Lock)

  • 2D 게임에서는 오일러 각(Euler Angles)을 이용하여 각도를 구현하면 되지만 3D게임에서는 모든 각도를 통제해줘야하기때문에 오일러 각 만으로는 구현이 어렵다.
  • 오일러 각의 문제점
    -짐벌락 (Gimbal-Lock) 현상
    -3d 오브젝트의 x,y,z축 중 한축이 다른축과 합쳐지면서 한 축에 대한 계산이 불가능해지는 현상
  • 짐벌락 현상 관련 영상
  • https://www.youtube.com/watch?v=zc8b2Jo7mno

쿼터니언(Quaternion)

  • 오브젝트의 회전은 쿼터니언으로 관리한다.
  • 쿼터니언은 x,y,z,w 4개의 성분으로 이루어져 있다.
  • 쿼터니언은 오브젝트를 한번의 연산으로 회전을 시켜서 짐벌락이 발생하지 않고 90도 회전이 가능합니다.
  • Vector3를 쿼터니언으로 다룬다.
  • 유니티에서는 Quaternion.Euler함수를 이용해서 오일러각을 쿼터니언으로 변경하여 사용

예시)

transform.roation = Quaternion.Euler(new Vector3(30,40,100)); 

0개의 댓글