수학/이득우의 게임 수학

회전 보간의 계산

monstro 2026. 3. 18. 11:54
728x90
반응형

- 개요

3차원 공간에서 시작 회전끝 회전을 지정하고 시간에 따라 두 회전 사이를 부드럽게 전환하는 기능

카메라의 움직임이나 캐릭터의 애니메이션을 구현하기 위해 필요하다

이를 구현하기 위해서는 경과된 시간에 따라 회전이 변화되도록 중간 회전 값을 계산해야 하는데,

이러한 계산을 회전 보간이라고 한다

 

중간 회전 값을 얻기 위한 선형 보간의 식

 

위의 선형 보간의 식에서 가중치 t회전의 두 지점 사이어느 지점에 위치해 있는지를 의미한다

따라서 평면상의 15°에서 시작해 165°로 끝나는 회전1/3 지점의 회전 보간값 65°이다

 

- 선형 보간식의 성립

선형 보간식이 성립하기 위해서는 두 각의 회전 변환곱한 결과두 각의 회전 변환과 동일해야 한다

2차원 공간의 회전에서는 두 결과가 동일하므로 선형 보간식을 사용하는데 문제가 없다

다음으로 3차원 공간의 오일러 각 회전에 대해서도 선형 보간식을 사용할 수 있는지 확인한다

 

- 오일러 각에 대한 선형 보간 사용 확인

1) 한 개의 축에 대한 오일러 각의 회전

 

세 개의 기저 벡터 중에서 Y축에 대해서만 회전하는 오일러 각 회전을 알아본다

Y축으로 ab만큼 회전하는 오일러 각의 데이터는 위와 같다

 

 

두 오일러 각에 대응하는 회전 변환 RaRb는 위와 같다

 

1 - 1) 두 각의 합의 회전 변환

 

두 오일러 각을 합한 회전 변환 R(a+b)는 위와 같다

 

1 - 2) 두 각의 회전 변환의 곱

 

두 오일러 각에 대응하는 회전 변환 RaRb를 곱한 결과는 위와 같다

오일러 각에서 한 축만 사용한다는 것은 2차원 평면에서의 회전과 동일하다

최종적으로 한 개의 축만 사용하는 오일러 각의 회전에서 선형 보간식을 사용하는 것은 문제가 없다

 

2) 두 개의 축에 대한 오일러 각의 회전

 

세 개의 기저벡터 중에서 X축Y축에 대해 ab만큼 회전하는 오일러 각의 데이터는 위와 같다

 

 

두 오일러 각에 대응하는 회전 변환 Ra Rb는 위와 같다

 

2 - 1) 두 각의 합의 회전 변환

 

두 오일러 각을 합한 회전 변환 R(a+b)는 위와 같다

 

2 - 2) 두 각의 회전 변환의 곱

 

두 오일러 각에 대응하는 회전 변환 Ra Rb를 곱한 결과는 위와 같다

이때 2 - 1)의 결과와 다르다는 것을 확인할 수 있다

따라서 두 개의 이상의 축을 사용하는 오일러 각에서는 선형 보간식을 사용할 수 없다

 

- 최종 정리

일반적인 캐릭터의 회전 보간한 개의 축을 사용하므로 오일러 각으로 충분히 구현할 수 있지만,

비행기 조종과 같은 3차원 공간에서 2개 이상의 기저축으로 결합된 회전은 구현하기 어렵다

따라서 3차원 공간에서 자유로운 회전 보간을 구현하고 싶다면, 다른 방식을 사용해야 한다

마지막으로 뷰 공간에서 카메라 앞의 모든 물체Z값음수값을 갖는다는 사실을 기억하고 있어야 한다

728x90
반응형

'수학 > 이득우의 게임 수학' 카테고리의 다른 글

외적의 활용 (1) - 평행성 판별  (0) 2026.03.25
벡터의 외적  (0) 2026.03.25
오일러 각의 특징  (0) 2026.03.18
카메라 공간  (0) 2026.03.11
3차원 모델행렬  (0) 2026.02.25