9.73 정규화된 선형 보간(NLERP)
1. NLERP의 정의
정규화된 선형 보간(Normalized Linear Interpolation, NLERP)은 두 단위 쿼터니언을 선형 보간한 후 결과를 단위 노름으로 정규화하는 보간 방법이다. 두 단위 쿼터니언 \mathbf{q}_0와 \mathbf{q}_1, 매개변수 t \in [0, 1]에 대해 다음과 같이 정의된다.
\mathrm{NLERP}(\mathbf{q}_0, \mathbf{q}_1, t) = \frac{(1-t)\mathbf{q}_0 + t\mathbf{q}_1}{\lVert (1-t)\mathbf{q}_0 + t\mathbf{q}_1 \rVert}
이는 LERP의 결과를 단위 구면 S^3로 투영하는 것과 동등하다.
2. NLERP의 동기
LERP는 단순하고 빠르지만 결과가 단위 쿼터니언이 아니다. SLERP는 정확하지만 삼각 함수 계산이 필요하여 비싸다. NLERP는 두 방법의 절충으로, LERP의 단순함과 SLERP의 단위 노름 보존을 결합한다.
3. NLERP의 단계별 절차
3.1 단계: 부호 보정
먼저 짧은 경로를 선택하기 위해 부호를 보정한다.
\text{if } \mathbf{q}_0 \cdot \mathbf{q}_1 < 0: \mathbf{q}_1 \leftarrow -\mathbf{q}_1
3.2 단계: 선형 보간
\mathbf{q}_{\text{lerp}}(t) = (1-t)\mathbf{q}_0 + t\mathbf{q}_1
3.3 단계: 정규화
\mathbf{q}(t) = \frac{\mathbf{q}_{\text{lerp}}(t)}{\lVert \mathbf{q}_{\text{lerp}}(t) \rVert}
이 세 단계로 NLERP가 완성된다.
4. NLERP의 성질
4.1 단위 노름 보존
정의에 의해 결과는 항상 단위 쿼터니언이다.
\lVert \mathbf{q}(t) \rVert = 1 \quad \forall t
4.2 끝점 일치
\mathrm{NLERP}(\mathbf{q}_0, \mathbf{q}_1, 0) = \frac{\mathbf{q}_0}{\lVert \mathbf{q}_0 \rVert} = \mathbf{q}_0
\mathrm{NLERP}(\mathbf{q}_0, \mathbf{q}_1, 1) = \frac{\mathbf{q}_1}{\lVert \mathbf{q}_1 \rVert} = \mathbf{q}_1
(단위 쿼터니언이라 가정).
4.3 측지선의 근사
NLERP의 결과는 SLERP의 결과와 같은 측지선 위에 놓여 있다. 즉, 4차원 공간에서의 직선이 단위 구면을 가로지르는 점들이 측지선과 같은 평면에 있다.
4.4 비균일한 각속도
NLERP는 일정한 각속도를 보장하지 않는다. SLERP와 같은 측지선 상에 있지만, t가 균일하게 증가할 때 호 길이가 균일하게 증가하지 않는다. 이것이 NLERP와 SLERP의 본질적 차이이다.
5. NLERP의 비균일성
LERP된 점이 4차원 직선 위에 있으므로, 이를 단위 구면으로 투영하면 호 위의 위치가 비선형적으로 분포한다. 이를 시각적으로 이해하면, 두 점을 연결하는 직선의 중점은 실제 호의 중점이 아닌 위치로 투영된다.
5.1 작은 각도에서의 거의 균일
두 쿼터니언 사이의 각도가 작으면 직선과 호가 거의 일치하므로, NLERP의 비균일성이 무시할 수 있다.
5.2 큰 각도에서의 비균일
두 쿼터니언 사이의 각도가 클수록 NLERP의 비균일성이 명확해진다. 보간이 시작과 끝에서는 빠르게, 중간에서는 천천히 진행하는 것처럼 보인다.
6. NLERP와 SLERP의 비교
| 특성 | NLERP | SLERP |
|---|---|---|
| 단위 노름 | 보존 | 보존 |
| 측지선 위 | 예 | 예 |
| 일정한 각속도 | 아니오 | 예 |
| 계산 비용 | 낮음 | 높음 |
| 작은 각도 | 거의 SLERP와 동일 | 정확 |
| 큰 각도 | 비균일 | 균일 |
| 삼각 함수 | 없음 | 필요 |
| 미분 가능성 | 매끄러움 | 매끄러움 |
| 가환성 | 일반적으로 비가환 | 일반적으로 비가환 |
7. NLERP의 계산 비용
NLERP의 계산은 다음의 단계로 구성된다.
- 부호 보정 (내적 계산): 4 곱셈, 3 덧셈
- 선형 보간: 8 곱셈, 4 덧셈
- 정규화 (노름 계산 + 나누기): 4 곱셈, 3 덧셈, 1 제곱근, 4 나누기
총 약 20 곱셈, 10 덧셈, 1 제곱근, 4 나누기이다. SLERP가 약 15 곱셈에 4 삼각 함수를 추가로 요구하는 것과 비교하면, NLERP가 일반적으로 더 빠르다.
8. NLERP가 적절한 경우
8.1 작은 회전
두 자세 사이의 각도가 작은 경우(예: 매 프레임의 자세 갱신), NLERP가 SLERP만큼 정확하면서도 더 빠르다.
8.2 실시간 시스템
게임이나 시뮬레이션에서 매 프레임 수많은 회전을 보간해야 하는 경우, NLERP의 효율성이 가치를 발휘한다.
8.3 정확도가 결정적이지 않은 경우
시각화나 그래픽스에서 약간의 비균일성이 시각적으로 인지되지 않는다면, NLERP가 충분하다.
8.4 작은 단계로 분할된 보간
큰 회전을 작은 단계로 나누어 각 단계에서 NLERP를 적용하면, 누적 결과가 SLERP에 매우 가깝다. 이 기법을 통해 NLERP의 비균일성을 완화할 수 있다.
9. NLERP가 부적절한 경우
9.1 정밀한 일정한 각속도 요구
매니퓰레이터의 작업 공간 자세 보간에서 일정한 각속도가 중요한 경우, SLERP를 사용해야 한다.
9.2 큰 회전의 단일 보간
큰 각도(예: > 90°)의 단일 SLERP를 NLERP로 대체하면 비균일성이 명확해진다.
9.3 안정성과 정확도가 중요한 응용
자세 추정, 정밀 측정, 정밀 제어 등에서는 SLERP가 더 안전한 선택이다.
10. NLERP의 개선
10.1 가속/감속 함수의 적용
NLERP의 비균일성을 보정하기 위해 매개변수 t를 비선형 함수로 변환할 수 있다.
\mathrm{NLERP}(\mathbf{q}_0, \mathbf{q}_1, f(t))
적절한 f를 선택하면 거의 일정한 각속도를 얻을 수 있다.
10.2 다단계 NLERP
큰 회전을 여러 작은 NLERP 단계로 분할한다.
\mathbf{q}(t_k) = \mathrm{NLERP}(\mathbf{q}(t_{k-1}), \mathbf{q}_1, s_k)
각 단계에서 작은 회전만 다루므로 비균일성이 크게 감소한다.
11. NLERP의 시각화
쿼터니언 단위 구면 S^3에서 NLERP의 시각화는 다음과 같다.
- 두 쿼터니언 \mathbf{q}_0와 \mathbf{q}_1이 단위 구면 위에 있다.
- 두 점을 직선으로 잇는 4차원 공간의 직선이 단위 구면의 안쪽을 통과한다.
- 직선 위의 점들을 단위 구면으로 투영(원점에서 광선을 발사)한다.
- 투영된 점들이 NLERP의 결과이다.
이 투영에서 직선의 균일한 분할은 구면 상의 비균일한 분할로 변환된다. SLERP는 이를 직접 구면 위에서 균일한 호 길이로 분할한다.
12. NLERP의 응용
12.1 게임 엔진
Unity, Unreal Engine 등의 게임 엔진은 NLERP와 SLERP를 모두 제공한다. 일반적으로 NLERP가 기본이며, 정밀한 회전 보간이 필요할 때만 SLERP를 사용한다.
12.2 캐릭터 애니메이션
캐릭터의 본 회전 보간에 NLERP가 흔히 사용된다. 작은 회전이 대부분이며 시각적 차이가 거의 없다.
12.3 카메라 평활화
카메라 위치와 자세의 평활화에서 회전 부분에 NLERP가 사용될 수 있다.
12.4 모션 블렌딩
모션 캡처 데이터의 두 모션 사이를 블렌딩할 때 NLERP가 사용된다. 작은 각도 차이가 대부분이므로 NLERP가 적합하다.
13. NLERP의 비교 요약
NLERP는 LERP의 단순함과 SLERP의 단위 노름 보존을 결합한 절충 방법이다. 일정한 각속도가 필요 없거나 작은 회전이 대부분인 경우에 적합하며, 실시간 시스템에서 SLERP의 효율적 대안으로 널리 사용된다. 그러나 정밀한 회전 보간이 필요한 경우에는 SLERP가 표준이다.
14. 참고 문헌
- Shoemake, K. (1985). “Animating Rotation with Quaternion Curves.” SIGGRAPH Computer Graphics, 19(3), 245–254.
- Diebel, J. (2006). “Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors.” Stanford University Technical Report.
- Watt, A., & Watt, M. (1992). Advanced Animation and Rendering Techniques. Addison-Wesley.
- Eberly, D. H. (2002). 3D Game Engine Design (2nd ed.). Morgan Kaufmann.
- Lengyel, E. (2011). Mathematics for 3D Game Programming and Computer Graphics (3rd ed.). Course Technology.
version: 1.0