쿼터니언(이론)에서 배운 두번째 방법,
회전에 대한 쿼터니언 q를 구하고 그 쿼터니언으로부터 회전 행렬을 구해보자.
먼저 회전축 Vector3가 있어야하고 normalize로 정규화되어 있어야 한다.
이 회전축 Vector3을 n이라고 했을 때, 쿼터니언 생성자를 이용하면 회전에 대한 쿼터니언 q는
Quaternion q(n*sin(quatTheta*0.5f),cos(quatTheta*0.5f)) 가 된다.
이 쿼터니언을 Matrix::CreateFromQuaternion 함수에 넣으면 회전 행렬을 구할 수 있다.
쿼터니언 q를 구할 때도 사실 수식을 이용한 생성자가 필요없다.
Quaternion::CreateFromAxisAngle(회전축, 회전각도)를 이용하면
회전축대로 회전각도만큼 회전한 쿼터니언을 구할 수 있다.
또한 Quaternion::FromRotationToRotation(이전벡터, 현재벡터)로
이전 벡터에서 현재 벡터까지 회전한 쿼터니언을 구할 수 있다.
'그래픽스' 카테고리의 다른 글
| [그래픽스] Hull Shader, Tessellation, Domain Shader (0) | 2023.07.21 |
|---|---|
| [그래픽스] Geometry Shader (0) | 2023.07.19 |
| [그래픽스] 쿼터니언(이론) (0) | 2023.07.19 |
| [그래픽스] Picking (렌더타겟 2개 이용, GPU->CPU로 데이터 복사) (0) | 2023.07.19 |
| [그래픽스] 후처리 - 이미지 필터 (0) | 2023.07.19 |