제곱을 하면 -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 |
댓글