Thanks, Marc! Slime works perfectly. Strangely, however, although its result is "correct" it does not seem to correspond with any of the orientConstraint's interpolation types!
For instance, consider I have an object, *object0*, constrained to 3 targets, each with equal weight: *object1*: no rotation *object2*: no rotation *object3*: rotated 180 degrees around x-axis As predicted, slime results with *object0* rotated 60 degrees around the x-axis. However, an orientConstraint with "shortest" interp. type is rotated 40 degrees around the x-axis. Odd! On Thu, Mar 25, 2010 at 8:33 AM, Marc Downie <[email protected]>wrote: > > > On Wed, Mar 24, 2010 at 11:56 PM, Adam Mechtley > <[email protected]>wrote: > >> I'm looking for a good algorithm to compute weighted, multi-way (i.e., >> more than 2) quaternion interpolation that won't introduce artifacting (so >> something more robust than averaging components and renormalizing). I'm >> essentially recreating the functionality of an orient constraint for use >> elsewhere. >> >> I've seen a few options out there, but many of them seem a little >> expensive. I figure there are enough math-smart/well-read people here that >> someone may at least have some suggestions of worthwhile papers. >> > > We exponentiate a weighted sum of the logarithms of quaternions (after > making sure all the quaternions that we're going to blend are in the same > hemisphere as the unit quaternion --- which sometimes requires defining a > "local" space in which to do the blend). This reduces to Shomake's "Slerp" > blend in the 2 quaternion case. > > Approach described in detail in Michael Patrick Johnson's thesis here: > > http://alumni.media.mit.edu/~aries/<http://alumni.media.mit.edu/%7Earies/> > > Marc > > > > thanks! >> >> -- >> http://groups.google.com/group/python_inside_maya >> >> To unsubscribe from this group, send email to python_inside_maya+ >> unsubscribegooglegroups.com or reply to this email with the words "REMOVE >> ME" as the subject. >> > > -- > http://groups.google.com/group/python_inside_maya > > To unsubscribe from this group, send email to python_inside_maya+ > unsubscribegooglegroups.com or reply to this email with the words "REMOVE > ME" as the subject. > -- http://groups.google.com/group/python_inside_maya To unsubscribe from this group, send email to python_inside_maya+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
