2010-05-22 4 views
2

회전을 나타내는 두 쿼터니언 사이에 slerp를 사용하여 보간합니다. 결과적인 회전은 오일러 각도로 추출되어 그래픽 라이브러리에 입력됩니다. 이런 종류의 작동하지만 다음과 같은 문제가 있습니다. (하나는 잘 작동) 두 중심으로 회전 할 때 회전 곧 대향 시각 방향으로 대향하는 위치에서 회전하도록 약 점프쿼터니언을 사용하여 회전 보간시 뒤집기 문제

here

왼쪽 프레임에 나타낸 바와 같이, 녹색 화살표의 방향으로 축 오른쪽 프레임의 빨간색 화살표로 표시된대로.

이것은 수학적 관점에서 볼 때 논리적 일 수도 있지만 바람직하지 않습니다. 보간이 완료 될 때까지 녹색 화살표를 따라 한 개 이상의 축을 중심으로 회전 할 때 시각적 뒤집기 및 방향 변경없이 보간을 수행하려면 어떻게해야합니까?

미리 감사드립니다.

+2

이 질문에 대한 링크가 싫어서 ... – xaxxon

답변

9

문제에 대한 설명은 매우 솔직하게 따라하기가 조금 어렵습니다. 하지만 네 쿼터니언 중 하나를 무효화해야 할 필요가있는 것 같습니다.

각 회전은 실제로 두 쿼터니언, q 및 -q로 나타낼 수 있습니다. 그러나 q에서 w까지의 Slerp 경로는 (-q)에서 w까지의 경로와 다를 것입니다. 하나는 멀리 떨어져 있고 다른 하나는 멀리 떨어져 있습니다. 짧은 길을 원할 때 먼 길을 걷는 것처럼 들립니다.

두 개의 쿼터니언 (즉, 4 점 제품)의 내적을 취해보십시오. 내적 점이 음수이면 Slerp를 수행하기 전에 quaterions q1과 q2를 -q1과 q2로 바꾸십시오.

+0

정확하게 기억한다면 쿼터니언을 정상화시켜야 피할 수 있습니다. – Alan

+5

정규화는 이와 관련이 없습니다. q와 -q는 모두 같은 크기입니다. 표준화는 q가 회전하는 것 외에도 오브젝트의 크기를 조정하지 못하게합니다. 나는 피터의 질문에 대한 해석이 정확하다고 생각한다. 두 회전 q0 qnd q1 사이에 slerping 할 때 Dot (q0, q1)는 양수 여야합니다. 그렇지 않으면, q1을 -q1로 YY십시오. – SuperElectric

0

총 회전 거리는 얼마나됩니까? 각도가 너무 먼 두 방향에 대한 보간을 요구할 수 있습니다. 수학, quaternions 또는 아닙니다, 어떤 의미로, 갈 방법을 결정하는 데 어려움이 있습니다. 애니메이션에 키 프레임이 충분하지 않은 것.

중도에 대해 좋은 중간 배향을 결정하고 초기 배향에서 중간 중간까지 그리고 최종 중간에서 최종 중간까지 개별 보간을합니다.