유니티/공부
짐벌락 현상
윤꽁참감
2022. 5. 19. 09:36
반응형
오일러각을 이용할 경우 x, y, z 축(순서변경 가능)이 순차적으로 회전하기 때문에 순차적으로 회전하다가 축이 겹치게되면 두 축이 함께 움직여 원하는 방향으로 움직일 수 없다.
쿼터니온은 이 문제를 해결하기위해 x, y, z, w 값을 가지고 동시에 움직인다.
1. x축, y축, z축 각각의 회전행렬을 만든다.
yaw(y축 회전각) pitch(x축), roll(z축)
2. 회전 행렬을 객체의 변환행렬과 각각 순서대(x, y, z)로 곱한다.(오일러각)
3. x축을 90도 틀고난 후 y축으로 90도 튼것과
y축을 90도 틀고난 후 z축으로 90도 튼것과의 회전 값이 같다.
4. 세 개의 축 각을 이용하여 항상 순서대로 회전을 하면 위와같이 한 개의 축이
쓸모 없게 된다. 이 현상이 짐벌락이다.
5. 이 문제는 계산을 한 번에 하지 않아서(세 번으로 나누어서)이다.
쿼터니온을 쓰면 한 번에 계산되어 문제가 해결된다.
즉 짐벌락현상을 없애기 위해서 쿼터니온을 쓰는것이다.
*참고
- 오일러각 : 기준 방위에서 회전한 상태를 나타내기 위해 사용하는 3개의 각도.