Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interpolating Quaternions with Circular Blending


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 Allen Chou   Members   -  Reputation: 244

Like
3Likes
Like

Posted 18 April 2014 - 02:52 PM

Hi, all:

 

I wrote a post on interpolating quaternions with circular blending.

 

http://allenchou.net/game-math-series/

 

Circular blending is an interpolation technique that produces "quaternion curves" with C1 continuity, as opposed to the commonly used piece-wise slerp technique that has only C0 continuity.

 

Here's a video comparing the two techniques.

 

https://www.youtube.com/watch?v=rsx9BGZiX_E


Ming-Lun "Allen" Chou

Physics / Graphics / Engine
http://allenchou.net


Sponsor:

#2 Buckeye   Crossbones+   -  Reputation: 4902

Like
0Likes
Like

Posted 18 April 2014 - 08:17 PM

I'm currently working on an animation editor and am just at the point of implementing an algorithm for interpolating rotations between keyframes, so I find your article of particular interest. Thank you for posting it.

 

A comment regarding the illustration showing the circle with center C, three quaternions (q1, q0 and q2) on the perimeter, and bisectors n1 and n2 at midpoints m1 and m2 respectively: the illustration implies that n1 and n2 meet at C. That is not always the case, is it? I assume that it not the case, otherwise parameterized bisectors would not be needed.


Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.


#3 Allen Chou   Members   -  Reputation: 244

Like
0Likes
Like

Posted 18 April 2014 - 08:25 PM

I'm currently working on an animation editor and am just at the point of implementing an algorithm for interpolating rotations between keyframes, so I find your article of particular interest. Thank you for posting it.

 

A comment regarding the illustration showing the circle with center C, three quaternions (q1, q0 and q2) on the perimeter, and bisectors n1 and n2 at midpoints m1 and m2 respectively: the illustration implies that n1 and n2 meet at C. That is not always the case, is it? I assume that it not the case, otherwise parameterized bisectors would not be needed.

 

A bisector of a line segment connecting two points on a circle always goes through the center of the circle. Given three points on the circle, we need two bisectors of line segments connecting point pairs on the circle in order to find the center of the circle. The purpose of parameterizing the bisectors is to find the intersection of the bisector, which is the center of the circle.

 

I should probably add some comments to clarify. Thanks for pointing it out.


Edited by Allen Chou, 18 April 2014 - 08:25 PM.

Ming-Lun "Allen" Chou

Physics / Graphics / Engine
http://allenchou.net


#4 Buckeye   Crossbones+   -  Reputation: 4902

Like
1Likes
Like

Posted 18 April 2014 - 09:02 PM


A bisector of a line segment connecting two points on a circle always goes through the center of the circle.

My comment was regarding the length of n1 and n2, not their direction. The illustration implies that the lengths of n1 and n2 are each equal to the distance between the respective midpoints and the center of the circle. E.g., ||n1|| == ||m1 - C||. If that were true (which I believe it is not), then finding the center would be trivial.

 

I'm just commenting that the illustration is misleading in that regard. Showing shorter vectors n1 and n2 (i.e., an unknown distance between the vectors heads and the center) would better highlight the need for the parameterized bisectors. Something like the following:

 

chordbisectors.png


Edited by Buckeye, 18 April 2014 - 09:12 PM.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.


#5 Allen Chou   Members   -  Reputation: 244

Like
1Likes
Like

Posted 18 April 2014 - 09:37 PM

 


A bisector of a line segment connecting two points on a circle always goes through the center of the circle.

My comment was regarding the length of n1 and n2, not their direction. The illustration implies that the lengths of n1 and n2 are each equal to the distance between the respective midpoints and the center of the circle. E.g., ||n1|| == ||m1 - C||. If that were true (which I believe it is not), then finding the center would be trivial.

 

I'm just commenting that the illustration is misleading in that regard. Showing shorter vectors n1 and n2 (i.e., an unknown distance between the vectors heads and the center) would better highlight the need for the parameterized bisectors. Something like the following:

 

chordbisectors.png

 

 

Ah, I see what you're talking about now.

You are right. n1 and n2 should not have the exact distance from the midpoint to the center of the circle C.

The figure is kind of misleading.

My bad tongue.png


Edited by Allen Chou, 19 April 2014 - 11:36 AM.

Ming-Lun "Allen" Chou

Physics / Graphics / Engine
http://allenchou.net





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS