Removing Quaternions from 3D Engines
Subscribe:  iCal  |  Google Calendar
7, Mar — 1, Jun
Krakow PL   27, May — 29, May
London GB   28, May — 31, May
Kyoto JP   1, Jun — 3, Jun
London GB   4, Jun — 6, Jun
Latest comments
by Ketki Jadhav
8 hours ago

I really like how you've articulated your entire process. This was a very enriching read. A Well deserved feature!

Great article! Thanks for the awesome read.

Wow, this is so cool! Nice job!

Removing Quaternions from 3D Engines
5 November, 2018

Marc ten Bosch has recently shared his interactive introduction to rotors from geometric algebra. Let’s study it to learn something new. 

When representing 3D rotations graphics programmers use quaternions, but they are quite hard to understand as they are taught at face value. “We sort of just accept their odd multiplication tables and other arcane definitions and use them as black boxes that rotate vectors in the ways we want. Why does i2=j2=k2=1i2=j2=k2=−1 and ij=kij=k? Why do we take a vector and upgrade it to an “imaginary” vector in order to transform it, like q(xi+yj+zk)qq(xi+yj+zk)q∗? Who cares as long as it rotates my vectors the right way,” pointed out the author. 

Marc ten Bosch states that there’s actually a better way that is called a rotor that is said to subsume both complex numbers (in 2D) and quaternions (in 3D) and generalize to any number of dimensions. They take some time to deal with, but the thing is that they are much easier to understand.

Plus, they do not require the use of the fourth dimension of space in order to be visualized and understood. Are you interested? The author states that this change is simple and the code remains almost the same. What is more, things like Interpolation and avoiding Gimbal lock are possible with a Rotor too. Yeah, the concept might sound quite complex, but it is worth it. Make sure to read the full article here


Leave a Reply

2 Comment threads
0 Thread replies
Most reacted comment
Hottest comment thread
2 Comment authors
SamuelVlad S. Recent comment authors

It isn’t silly. Both quaternions and rotors are identical in vector form. The difference is the terminology. Quaterions are their own algebra that have nothing to do with geometry, but happened to work out to create the mathematics (just like how homogeneous coordinates are just a hack). Rotors are the geometric algebra explanation for why quaternions work at all. Since quaternions happen to model rotors, then quaternions can be used as a representation to perform rotation, but if you use the rotor language, it makes more geometric sense why it works. In the end, the numbers and equations are identical… Read more »

Vlad S.
Vlad S.

This is so silly. Quaternions are in every game engine because they’re computationally transparent and can be easily combined with each other and transformation matrices.
If you don’t understand quaternions, stop trying to think you understand game engines.