Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. q* = w1 * q1 + w2 * q2 + ... + w2 * qn
  2. normalize q*
  3.  
  4. start with q* as above
  5. do until convergence
  6. for each input quaternion i (index)
  7. diff = q[i] * inverse(q*)
  8. u[i] = log(diff, base q*)
  9. //Now perform the linear blend
  10. adapt := zero quaternion
  11. weights := 0
  12. for each input quaternion i
  13. adapt += weight[i] * u[i]
  14. weights += weight[i]
  15. adapt *= 1/weights
  16. adaptInOriginalSpace = q* ^ adapt (^ is the power operator)
  17. q* = adaptInOriginalSpace * q*
  18.  
  19. count = 1
  20. average_transform = Matrix.Identity(4)
  21. for new_transform in list_of_matrices:
  22. factor = 1/count
  23. average_transform = lerp(average_transform, new_transform, factor)
  24. count += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement