게임 엔진 아키텍처/4장 게임에 사용되는 수학

회전 변환 표현간 비교 / 기타 수학 개념

알쿠미 2016. 5. 26. 21:25

1. 오일러 - 짐벌락이 있다.

* 짐벌락 - 축들은 종속적이라 회전 하다 축이 같게되면 회전하지 못하는 짐벌락이 발생한다.


2. 행렬

 회전 변환은 가독성이 좋지 않고 저장공간을 많이 차지한다.


3. 사원수

 회전 변환을 결합할 수 있다는 것과 사원수 곱을 통해 점과 벡터를 회전 변환할 수 있다. LERP, SLERP를 이용해서 회전 변환을 보간할 수 있다.


4. 기타 수학 개념

 평면 방정식 = Ax + By + Cz + D = 0

 여기서 A, B, C는 법선 벡터가 된다. 그리고 A, B, C가 정규화 되있다면 D는 평면과 원점사이의 거리가 된다. d 가 양수이면 법선 벡터가 원점을 향하고 음수이면 법선 벡트는 원점에서 멀어지는 방향이다.

 즉 평면은 법선벡터와 원점과의 거리만 있으면 표현할 수 있다.


5. SIMD single instruction multiple data / SSE Streaming SIMD Extension 

  CPU가 기계어 하나로 병렬 연산 하는 것으로 게임 엔진의 수학 라이브러리에서 널리 쓰인다. 자주 쓰이는 연산을 엄청 빠르게 할 수 있다.


6. 난수

 * 메르센 트위스터

  ⓐ 2^19937 - 1 이라는 긴 주기를 갖게 고안됬다.

  ⓑ 매우 높은 동일 분포 차원을 갖는다. 즉 생성된 난수들 사이에 연관성이 거의 없다.

  ⓒ 여러가지 무작위성 테스트를 통과했다

  ⓓ 빠르다.