DirectX12
[DirectX12] 16) Quaternion
GiveZero
2023. 1. 19. 18:11
Euler 과 Quarternion
Euler로 회전을 표현하게 되면, 회전 축 하나가 사라지는 짐벌락에 빠진다.
즉 한 축의 회전이 다른 축의 영향을 주는 것을 말한다.
3개의 차원으로 회전하던 축은 2개의 차원으로밖에 회전을 못한다는 단점이 생길 수 있다.
Quaternion은 이를 해결하기위해 사용한다.
짐벌락이 발생하지 않을 뿐더러, 연산이 빠르고 정확도도 높다.
또한, 복소수를 이용하기 때문에 행렬보다 점유 메모리 영역이 작고 계산 부하가 낮다. 따라서 두 개 회전 사이의 보간(Lerp) 표현이 가능하다.
하지만 180보다 큰 값을 표현할 수 없다는 단점이 존재하다.

4개의 성분 (x,y,z,w) 로 이루어져 있고, (x,y,z)는 벡터 , (w)는 스칼라를 의미한다.