기본적으로 Front, Top, Side, User 등 4개 이상을 사용
x : Pitch, y : Yaw, z : Roll
DX에서는 일반적으로 Roll-Pitch-Yaw순으로 회전(덜 사용하는 순서)
매 연산마다 Yaw-Pitch-Roll을 구하는것보다 미리 식을 계산해놓은 후 연산
연산된 Matrix에서 역으로 Yaw-Pitch-Roll을 구할 수 있어야한다
3개의 축 중 회전으로 인해 2개가 일치하는 경우 1개 축의 자유도가 상실되는 현상
Quaternion을 이용해 해결할 수 있음
x, y, z축을 포함해서 임의의 축에 대하여 회전하는 상황
임의의 위치를 중심으로 Object 회전
그냥 SRT중첩과 다를게 있나?
1개의 실수부, 3개의 허수부로 이루어진 값
행렬보다 필요한 저장공간이 적고, 짐벌락이 발생하지 않음
단, GPU는 Vector단위로 연산이 가능하므로 Quaternion을 Matrix로 변환해야 함
교환법칙 성립하지 않음(교환 시 -1 추가), ijk = -1
사원수의 곱 = 회전의 합
선형보간(LERP)와 구면선형보관(SLERP)는 다름
제외 처리 작업
선언과 정의가 함께 있어야 하는 함수를 분리할 수 있게 해주는 기법
inline 함수, template 함수에서 유용
Camera를 Target Object에 고정한 후, Camera는 고정, Object를 직관적으로 회전시킴
Camera가 1인칭으로 조작하여 움직임