허수란?
1~3탄 모두 시청!
https://youtu.be/udLD8jQ6X-k?si=w69UKpyyvf0ma2w-
영상 요약
-와 +는 방향 개념
실수는 2개의 방향만 표현 가능
실수는 Sine 그래프를 다음과 같이 표현

허수부를 추가하여 2차원으로
Sine 그래프를 표현하면 아래와 같이 표현 가능

즉, 허수축을 만들어 차원을 늘리는 개념
i를 곱한다는 90도로 회전한다는 의미는 가짐
사원수는 3개의 허수 차원가 1개의 실수부로 이루워진 수
1800년대 윌리엄 헤밀턴에 의해 정의되었음
4차원 이상 부터는 이용하기 쉽지 않다는 단점이 있지만
3D 컴퓨터 그래픽스에서 오일러 좌표의 단점인 짐벌락 현상이
없다는 장점으로 재조명됨
짐벌락

오일러 각도를 이용하면 회전을 하다가 다수의 축이 곂치면서 같은 방향으로 같이 회전하는 현상이 발생하는 현상
예를들어 메인 카메라를 일정 방향으로 계속 회전시키면 어느순간 툭 끊겨버리고 시점이 순간이동을 하는 현상이 발생함
사원수는?

임의의 회전축에서 몇 도를 회전하는 공식으로 위와 같은 짐벌락이 발생하지 않음
-----
왜 삼원수는 안 될까?
삼원수는 곱셈의 분배법칙도 작용이 안되는 문제가 있어서 수체계로서 의미가 없음
사원수는 교환법칙은 불가능하지만 분배법칙은 적용됨
각 각도계의 장단점
- 오일러각
- 저장 공간이 가장 작다. 공간의 수 3
- 짐벌락 현상이 발생한다.
- 한 기저 축에 대해서만 회전 보간이 가능하다.
- 직관적이다.
- 고정회전에 이용
- 행렬
- 저장 공간이 크다. 공간의 수 9
- 짐벌락 현상이 발생하지 않는다.
- 회전 보간이 불가능하다.
- 직관적이지 않다.
- 사원수
- 저장 공간이 작다. 공간의 수 4
- 빠르고 간편하게 회전을 표현
- 부드러운 회전 및 짐벌락 현상이 발생하지 않는다.
- 회전 보간이 임의의 축에 가능하다.
- 축과 각, 절반의 각만 사용, 직관적이지 않다.
그래서 내부에서는 사원수로 처리하고 외부적으로 프로그래머가 컨텐츠를 만들 때는
지정된 각을 다루기 편하게 오일러 각으로 유저 인터페이스를 만듦
참고
https://showmiso.tistory.com/57
[3D 수학] 사원수(Quaternion : 쿼터니언)
1. 사원수(Quaternion : 쿼터니언)란? - 3차원 그래픽에서 회전을 표현할 때, 행렬 대신 사용하는 수학적 개념으로 4개의 값으로 이루어진 복소수(Complex Number) 체계이다.아래 글에선 사원수와 쿼터니
showmiso.tistory.com
https://gamesmith.tistory.com/160
[Mathematics] 18. Quaternion
지난 포스트에선 한 축에 대해 세타만큼 회전시키는 방법을 알아보았는데, 이러한 방식은 하나의 축에 대해서만 회전을 나타낼 수 있다는 문제점이 있다. 동시에 두 축 이상에 대한 회전을 하나
gamesmith.tistory.com
https://www.youtube.com/watch?v=3qz9X4dTF1U
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=canny708&logNo=221546934718
짐벌락 없는 회전, 사원수(Quaternion)
2D에서는 회전이 굉장히 명확합니다. 점 P에 대해 Θ만큼 회전한 좌표를 구하려면, 기존 좌표값과 함께 ...
blog.naver.com
https://wecandev.tistory.com/222
[게임수학] 16. 사원수: 4차원 수로 설계한 3차원 회전
사원수(Quaternion) : 4개의 독립된 체계로 구성된 4차원의 수집합, 2차원의 복소평면을 4차원 공간으로 확장한 개념 16.1 사원수 대수 사원수를 구성하는 세 허수 사원수는 3개의 허수부 i,j,k 로 구성
wecandev.tistory.com
https://youtu.be/Ko6Ri9zKADY?si=1A46vyLAQvnNDYqL
'게임 프로그래밍' 카테고리의 다른 글
[그래픽스] 렌더링 파이프라인 (0) | 2023.12.30 |
---|---|
[하드웨어] CPU와 GPU (0) | 2023.12.30 |
구와 평면의 충돌 (0) | 2023.12.28 |
rapidjson 설치 방법 (0) | 2023.03.22 |