In reply to @redgpus

Casey Muratori

Casey Muratori

@cmuratori · Twitter ·

There are a lot of tradeoffs with quaternions, including the one I already mentioned (inability to represent scale and shear). Double cover is another tradeoff (maybe you want it, maybe you don't). The requirement to do a bunch of fmadds to extract the actual axes from them is yet another (matrices have the axis immediately available, no flops required). Personally I still prefer them for some parts of the pipeline, but other parts I think it's a toss-up. Sometimes matrices can be better. Of course some people prefer neither and use exponential maps, although I've never liked that approach myself.