Created
October 11, 2018 15:57
-
-
Save Curookie/508663fa242a91e22feb822c2c0a9639 to your computer and use it in GitHub Desktop.
그래픽스
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
오일러(Euler)와 쿼터니온(Quaternion)은 3D 변환에서 회전을 표현하는 방법이다. | |
오일러는 3개의 축에 대한 각도를 회전 정보로 사용한다. X,Y,Z축에 대해 회전한 만큼을 말하는 것이다. | |
오일러에서는 각 축을 Right, Up, Forward라 부르고 각 축에 대한 각도를 Pitch, Roll, Yaw라 부른다. | |
이 방식은 비행기의 자세 표현 정보로 많이 사용된다. | |
이 방식의 장점은 매우 직관적이라는 것이다. | |
이 장점때문에 많은 3D관련 프로그램은 회전 정보를 입력할 때 Euler방식을 사용한다. | |
오일러 방식으로 회전 정보를 표현하면 각 축에 대해 3개의 회전행렬이 된다. | |
행렬 연산의 특성 상 곱의 순서는 매우 중요하다. | |
곱의 순서가 다르다면, 같은 입력 각도에 대해 다른 회전 결과를 얻게되기에 매우 유의해야 한다. | |
한번의 회전을 위해 3x3 행렬 연산을 3번을 해야 한다는 것도 연산량에 부담을 준다. | |
그러나, 이런 것보다 치명적인 문제가 있는데 바로 짐벌락(Gimbal Lock)이란 현상이다. | |
짐벌락은 2축이 겹쳐짐으로써 하나의 자유도를 잃게되어 더 이상 회전이 안되는 문제를 의미한다. | |
쿼터니온은 우리말로 사원수라 부른다. 이것은 매우 이해하기가 어려운 개념이다. | |
3차원 상의 정점(Vertex)에 대한 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)에 대한 연구를 진행하면서 | |
나눗셈에서 막혀서 매우 고심하던 차 3개의 수로는 나눗셈을 할 수 없지만, | |
4개의 수로는 가능하다는 것을 알게되었다고 한다. 그래서, 이 수를 사원수라 부른다. | |
이 사원수는 컴퓨터 연산에서 3D 공간의 회전 연산에 매우 유용하다는 사실이 알려지면서 주목받기 시작했다. | |
이때문에 3D 회전변환과 사원수는 서로 뗄 수 없는 관계를 가지게 된다. | |
회전각에 대한 보간(=구면 보간)이 필요한 경우 행렬보다 계산이 빠르고 간단하다. | |
회전 행렬에 의해서 두 축의 회전 값이 겹칠때 발생하는 문제(짐벌락)을 해결 할 수 있다. | |
단점은 직관적이지 않아 사용자 입력을 받을 수 없다. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment