유니티/공부

짐벌락 현상

윤꽁참감 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개의 각도.

참고 블로그