Quote:1. [slerp is] only easier for someone who's used it a lot more than the alternative. for a quat you have to interpolate 4 values right? For the arbitrary rotation you only have to interpolate the angle.
You can interpolate a rotation around a *single axis* by interpolating a single value (the angle). But slerp interpolates between two *orientations*. I imagine there's a way to do this with axis/angle, but I've never seen an implementation so I can't say whether it would be more or less efficient than slerp.
Quote:2. The information necessary to describe an arbitrary rotation is the same size as that of a quaternion.
Yes, initially I thought you were referring to matrices.
Quote:3. Quats have to be converted back into a matrix at some point. The equivalent arbitrary rotation matrix is directly generated from an axis/angle with the same amount of effort.
Axis-angle to matrix requires sin() and cos(). Quat to matrix requires only multiplications and additions. So for that particular operation, at least, quats are faster.
Quote:4. This applies equally in both cases. You only have to normalise a quat if the arbitrary vector you were to rotate around was not unit length, I think.
Right. Again, my original statement was in regard to matrices.
One thing that is as you say a 'myth' is that quaternions are the best or only way to prevent gimbal lock. The same thing can be accomplished with axis-angle or matrix representations.
I'm not a mathematician, so I can't give a rigorous comparison of quaternion and axis-angle representations and their equivalence or lack thereof. For example, I've never looked into concatenating axis-angle rotations, so I'm not even sure how to do it and therefore can't say how it compares to the equivalent quaternion operation. (Dmytry's post seems to suggest that it essentially involves conversion to quaternion form; if that's true, quats would be a win in this case.)
Based on my current knowledge, however, quaternions are easier and/or faster to concatentate, interpolate, and convert to matrix form than axis-angle. As I am always trying to learn, though, I welcome any corrections or clarifications.
Regardless, I do question the common assertion that people only use quaternions because they sound 'cool' :-) That may be true for a beginner, but you've got to give more experienced programmers some credit! I have seen slerp discussed and implemented countless times, but I've never seen an equivalent implementation for interpolating axis-angle rotations (that doesn't mean there isn't one). So for me at least, quaternions are a better and more powerful choice.