4 ms·
It depends. For composing multiple transforms, composing versors aka quaternions/dual quaternions is cheaper than a full 4x4 multiply. For a single application,
by banachtarski 6y ago
It depends. For composing multiple transforms, composing versors aka quaternions/dual quaternions is cheaper than a full 4x4 multiply. For a single application, a 4x4 will be cheaper.
- gugagore 6y agoWithout benchmarks, I do not trust you. :) have you tried? On what platform? And did you take a look at the assembly code?
- banachtarski 6y agoQuaternions are used in animation for blending and composing transforms for a reason. You don't have to trust me, but yes... tried for maybe ten years and counting from doing graphics and animation work.
- chombier 6y agoFrom the documentation of the Eigen library [0]: > If the quaternion is used to rotate several points (>1) then it is much more efficient to first convert it to a 3x3 Matrix. Comparison of the operation cost for n transformations: > - Quaternion2: 30n > - Via a Matrix3: 24 + 15n So really it depends on what you're doing (admittedly here it is 3x3 not 4x4) [0] https://eigen.tuxfamily.org/dox/classEigen_1_1QuaternionBase.html#aae0b06729e20b45be97dc829f506914d https://eigen.tuxfamily.org/dox/classEigen_1_1QuaternionBase...
- banachtarski 6y agoRight, as I said, composition is faster, not application.
- enkimute 6y agoTake a look at Klein : https://www.jeremyong.com/klein/ https://www.jeremyong.com/klein/ (arm implementation is coming) Its geometric product between motors is the equivalent of the 4x4 matrix product. Although the basic computational complexity tells the story : 4x4 matrix product : 16 floats storage, 64 multiplies, 48 additions. 3D PGA versor product : 8 floats storage, 48 multiplies, 40 additions.