[quote name='Dave Eberly' timestamp='1187901520' post='4041864']
Consider fitting N quaternions with a B-spline curve with M control points, where M is much smaller than N. You send the M control points, and the receiver uses them either to (approximately) reconstruct the N quaternions from the B-spline curve or to interpolate with the B-spline curve itself to generate quaternions on demand.
The document, [url="http://www.geometrictools.com/Documentation/BSplineLeastSquaresFit.pdf"]Least Squares Fitting of Data with B-Spline Curves[/url]. On interpolation, you need to normalize the value returned by the B-spline curve; the fitted curve is close to a curve on the unit hypersphere, but is not exactly on that hypersphere.
This works quite well for compression of animation keyframes. I imagine it will work as well for network transmission, as long as N is large.
If N is small, why not just convert to half-floats? Even for N large, you can do the B-spline fit *and* convert the control points to half-floats.
hi,any details about quaternions fitting with Bezier curve or B-Spline? . i just don't konw how to calculate the control points. in 3-D space, i do it with least square method, thanks