Gimbal Lock(짐벌락) 현상

2015. 1. 19. 02:23프로그래밍/Graphics


3D 회전에서 쓰이는 방법

*오일러 회전

*쿼터니언 회전



*오일러 회전

-오일러 각이란 3차원 공간에 강체가 놓인 방향을 표시하기 위한 것. 일반적으로 x,y,z 축에 상응해, Pitch,Yaw,Roll 이라고 한다

오일러 회전은 3차원 공간에 놓인 객체의 방향을 오일러 각을 사용한 3번의 회전을 하는 것이다

하지만 회전하는 순서에 따라 같은 오일러각 이라도 결과(방향)이 달라질 수 있고, Gimbal Lock 현상이 발생할 위험이 높다


Gimbal Lock : 오일러 각에서 회전 순서에 따라서 회전에 영향을 받는 축이 바뀌기 때문에 3차원 공간 상에서 두 축이 겹쳐 한 축이 소실되는 현상


참고영상 http://www.youtube.com/watch?v=zc8b2Jo7mno



이 단점들을 보완하기 위해 쿼터니언 회전을 사용한다

*쿼터니언 회전

-사원수를 이용한 회전

-구면 선형보간으로 회전퀄리티를 높일 수 있다

장점:

짐벌락 현상 차단

행렬에 비해 연산 속도가 빠르다, 차지하는 메모리양이 적다