[컴퓨터그래픽스] Quaternions

Serun1017·2024년 10월 23일
0

컴퓨터그래픽스

목록 보기
29/31

Quaternions

Quaternions (쿼터니언)은 3차원 회전을 표현하기 위한 방법으로, 특히 Gimbal Lock(짐벌 락) 문제를 해결하기 위해 널리 사용된다. Quaternion은 4차원 수로, 복소수의 확장된 개념으로 이해할 수 있다. 회전과 같은 3D 변환에서 Quaternion은 직관적이지 않지만, 강력하고 효율적인 방식이다.

정의

쿼터니언은 하나의 실수 성분과 세 개의 허수 성분으로 이루어진다.

  • q=q0+q1i+q2j+q3kq=q_0+q_1i+q_2j+q_3k
  • 여기서 qnq_n는 실수 부분이고, i,j,ki, j, k 는 허수 부분이다.

이것을 벡터로 표현하면 다음과 같다.

  • q=(q0,v)q=(q_0, \vec{v})
  • 여기서 q0q_0는 실수 부분, v=(q1,q2,qr)\vec{v}=(q_1, q_2, q_r) 는 벡터 부분이다.

장점

  • 짐벌 락 해결
    쿼터니언은 세 개의 축이 선형적으로 겹치는 짐벌 락 문제를 피할 수 있다. 이는 쿼터니언이 4차원 공간에서의 회전으로 처기되기 때문으로, 3D 회전의 복잡한 문제를 깔끔하게 해결할 수 있다.
  • 효율성
    쿼터니언은 회전을 적용할 때 행렬보다 계산이 간단하고 빠르다. 행렬을 사용할 경우 9개의 값이 필요하지만, 쿼터니언은 4개의 값 만으로도 회전을 표현할 수 있다.
  • 안정성
    쿼터니언은 누적 회전 시 발생할 수 있는 작은 오차가 쌓이는 문제인 drift 현상이 적다.
  • 부드러운 회전
    쿼터니언을 사용하면 두 회전 상태 사이를 부드럽게 보간 할 수 있다. (예: Slerp, 구면 선형 보간)

0개의 댓글