As far as I can tell, they amount to the same thing in imaginary number land. The only clear reference on google books would seem to bear this out.
i'm unable to cut and paste the text in that link, so others will simply have to follow it and read it for themselves.
so you're saying store the orientation as a quat instead of forward, up and right vectors?
and to turn, you use axis-angle to create your discrete rotation quat (-5 degrees around local y for example), then compose that with the current orientation quat, and then normalize the quat?
as opposed to fwd,up,and rt vectors, axis-angle rotations around them, and gramm-schmidt (not gauss, my bad!) re-ortho-normalization ?
so you'd start with a quat of no rotation when the entity became active, and then simply apply sucessive discrete rotation quats to turn it, re-normalizing as you go. and when its time to draw, you have the quat at hand for use as the "orientation matrix". correct?
but what about movement? every update you take a unit vector 0,0,1, and rotate it by the quat to get the forward vector for 3d movement? and what if you need the right and up vectors for some reason, such as look left/right/up/down in a flight sim? same deal? you create a unit vector and rotate it by the quat?
why reconstruct the forward vector (and possibly up and right) every update from a quat? i think that's the reason why i finally settled on mats vs quats, 'casue once you look at all the things you need in a flight sim, they all require vectors or mats , not quats (assuming directx - it converts quats to mats and uses mats internally - OGL too, i think).
with fwd,up,rt and vectors, you have them ready to go for different camera views, movement, local rotations, and stuffing into a rotation mat. but gramm-schmidt is more complex than normalizing a quat.
with quats you have to reconstruct the vectors every update for camera views and movement. local rotations are of comparable difficulty, and dx (and OGL?) both use mats internally, so you've got conversion overhead no matter what. the upside is that normalization is simpler than gramm-schmidt, and due to how quats work, the rate of error accumulation ought to be about half as fast as it is for vectors.
its kind of a wash. i suppose one could count the adds, muls, divs etc for both methods for turning, moving, and drawing to get an idea of which was less work overall.
i've found that once gramm-schmidt is working, vectors are quite easy and intuitive to work with. and i've never had any problems with gramm-schmidt being a performance bottleneck, even with hundreds of entities and re-ortho-normalizing after every turn.