I have never really understood quaternions. All I knew is that I could use that instead of euler angles, avoid gimbal lock, and would blindly use them.
I have never really understood quaternions. All I knew is that I could use that instead of euler angles, avoid gimbal lock, and would blindly use them.
Exactly. And then you forget about them because...well, it's not like this stuff requires maintenance. Once you abstract all rotations and interpolations away, you just use them and forget you don't really grasp why they work.
And I don't see a case being made that demonstrates that for the purpose of a 3D engine, this actually "makes more sense". It's just a different way to compute the exact same results. If I'm writing a game, or simulation, or 3D visualisation, I literally don't are how the engine does what I tell it to do, as long as it does it.
At some point, people will have to write and maintain these 3D engines. Having easier to grok maths at that point is a Good Thing.
Is "what they do" unintuitive? Sure, but I couldn't care less about whether someone can conceptualise _why_ they do what they do, I care about _that_ they do what they do, and that I can trust them to do that. If someone can't understand what geometric operation an non-geometric transformation might map to "in between the start state and the end state" then that someone is focussing on the wrong thing twice:
1. quaternion maths is not geometry, it's algebra. It has some nice geometric analogies when performing specific operations, but trying to understand them _as_ geometry and expecting them to make sense across the board is ridiculous, and 2. if you feel you need to understand the "intermediary" results of a 4 dimensional algebra before you're willing to write or maintain code that uses it, maybe you're putting your foot down in the wrong spot: this is a 3D engine. It's not "easy code that we over-complicated by using quaternions", it's stupidly complex code that we simplified by working with quaternions.