Removing Quaternions from 3D Engines
Subscribe:  iCal  |  Google Calendar
20, Jan — 16, Mar
21, Feb — 23, Feb
Barcelona ES   25, Feb — 1, Mar
Dubai AE   5, Mar — 7, Mar
7, Mar — 1, Jun
Latest comments
by Marc Che
11 hours ago

Long life to Embark studio and its fabulous procedural artists dream team !

truly excellent and inspiring to read. Would have loved to read some on the texturing since that is top-notch.

great environment with a lovely serene sense. Thanks for the write-up!

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 Comments on "Removing Quaternions from 3D Engines"

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.