DirectX

72_Quaternion

devRiripong 2024. 3. 20.
반응형

제곱을 하면 -1이 되는 숫자가 있다.

 

잠재적으로는 있지만 눈에는 보이지 않는 걸 복소수로 표현하니까 아다리가 맞아떨어져서 연산이 되는게 있었다.

 

z = a + bi

i의 제곱은 -1

i는 허수다.

 

복소수는 실수부와 허수부로 표현한다.

 

켤레 복소수를 곱하면 원래 복소수의 절대값(또는 크기)의 제곱과 같다.

 

이걸 어디에 쓰는 걸까?

복소수를 이용해 곱했더니 회전이 일어났다는 거를 발견한 것이다.

 

이 회전을 이용해서 3D에서도 이용하면 되지 않을까

a+bi가 2차원을 나타낸다면

3차원은 a+bi+cj+dk 이런 느낌의 허수를 섞어 만들면 3D에서도 회전값을 표현할 수 있는 걸 오랜 연구 끝에 발견했다.

 

그게 Quaternion의 개념이다.

 

https://www.songho.ca/math/quaternion/quaternion.html

여기에 가서 읽어 보자.

 

쿼터니언은 Scale, Rotation이 들어가 있다.

외적이랑 비슷하게 생각해도 된다.

 

복소수 2개를 곱하면 회전과 크기가 바뀐다. 그 크기가 변하는 것을 보정하기 위해서 반대쪽에도 곱해줘야 한다.

qpq* 을 곱해서 정리 해서 최종 행렬 공식이 나온다.

 

수학 공식을 이해하는 게 굉장히 어렵다. 궁금하면 DX12 강의나 songho페이지 링크를 읽어보면 된다.

 

4차원 공간을 이용해서 3차원 회전을 하는 것을 발견한 것이다.

순차적으로 x,y,z축을 회전하는게 아니라 그 자체로 회전하는 거다.

 

결론 부분만 이해하면 된다.

 

허수를 이용해서 회전을 표현하는 거다.

 

수학을 진지하게 공부하면 증명을 같이 공부하는 경우가 많다. 증명을 읽어보면 전체적인 틀이 이해가 갈 것이다.

반응형

'DirectX' 카테고리의 다른 글

74_System Value 분석  (0) 2024.03.22
73_RawBuffer  (0) 2024.03.21
71_인스턴싱_Scene 구조 정리  (0) 2024.03.20
70_인스턴싱_인스턴싱 통합  (0) 2024.03.20
69_인스턴싱_ModelAnimation(인스턴싱)  (0) 2024.03.18

댓글