2014-11-24 2 views
0

애니메이션에 f0, f1, f2, f3의 4 개의 키 프레임이 있고 t = (f-1)에서 f1과 f2 사이에있는 프레임 f의 회전을 보간하려고합니다. f1)/(f2-f1)이다.쿼터니언의 2 차 보간

제 질문은 회전을 찾기 위해 키 프레임 사이에서 2 차 보간을 할 수 있습니까? 네 개의 키 프레임을 모두 사용하고 싶습니다. 또한 키 프레임간에 연속적으로 C1이 나타나기를 바랍니다.

나는 SQUAD와 Catmull-Rom Splines를 들여다 보았지만, 정확히 어떤 수식을 보여야할지 모르므로 구현하기가 다소 주저합니다. 스쿼드 (SQUAD)는 일련의 회전을 보간하는 방법을 알려주며, 4 개에만 적용하는 방법에 대해서는 확신하지 못합니다. 미리 감사드립니다!

답변

5

불행히도 쿼터니언은 선형 공간에 살지 않으므로 이미 알아 냈 듯이 쿼터니언 사이의 보간은 약간 까다 롭습니다.

3D 공간에서 곡선을 계산하는 것과 같은 방식으로 가중 평균을 사용한다고 가정합니다.

우선, 2 차 쿼터니언 이상의 정확한 구형 내삽 (SLERP)은 정의되지 않습니다. 이것은 조합이 곱셈을 사용하여 설명되고 곱셈이 non-commutative (다른 이유는 제외)이기 때문입니다. 당신이 (일명 Shoemake의 Quaternion curves)은 하나의 가능성, 또는 심지어 애호가 (보다 정확한)

SQUAD :-) 다른 모든 애니메이션 소프트웨어로, 대략적인 솔루션을 활용해야합니다 그래서 최적화 기반 generalized quaternion interpolation을. 그러나 실제로 NLERP (정규화 된 선형 보간법, 예 : here으로 설명)를 사용했는데 보간 된 쿼터니언이 합리적으로 가까운 경우 (약 60도에서 90도까지의 차이가 여전히 유효 함) 매우 간단하면서도 빠르면 좋은 결과를 제공합니다 . 두 벡터의 차이를 보여주는 3D 벡터 예제를 사용한 멋진 간단한 기사는 here입니다.

필자는 개인적으로 항상 Geometric Tools의 Quaternion Algebra and Calculus 노트로 되돌아갑니다. 노트에는 CG의 4 분법의 이론 및 실제 측면에 대한 매우 간결한 설명이 있습니다.

그리고 쿼터니온 보간을 구현할 때 가장 일반적인 문제인 정충 현상을 잊지 마세요.