5 ms·
Haven't dual quaternions taken over for their ability to represent all rigid body motions? Quaternions are still important for building intuition for dual quat
by ogogmad 4y ago
Haven't dual quaternions taken over for their ability to represent all rigid body motions?
Quaternions are still important for building intuition for dual quaternions.
- meheleventyone 4y agoMostly in jointed hierarchies like robotics and skeletal animation in my experience. Otherwise quaternions dominate for representing rotation and translation and scale are kept separately. Even further in an editor you might represent the rotation as Euler angles.
- ajkjk 4y agoI don't think so? Most game engines for instance implement quaternions for ie slerp, but wouldn't mention dual quaternions, which are much more niche (used for translation + rotation at the same time).
- ajkjk 4y ago* ie -> eg
- mrjet 4y agoI can only answer for robotics: Dual quaternions haven’t really taken over. While there’s no universal way that people end up handling rigid body transforms, SO(3) + R3 for rigid body transforms are the norm in robotics. Some robotics orgs choose a single representation for SO(3) — usually quaternions or matrices — and use it everywhere. Note that quaternions are more space efficient and easier to normalize, but require 2x more operations to rotate a vector [1]. So you might see a quaternion shop use matrices in a hot loop for transforming 3D points. And a matrix shop might use quaternions in a hot loop for composing many transformations. Usually you have many fewer rigid body links than points in an e.g. pointcloud so it is performance favorable to use matrices. A final comment: Most users in a codebase should interact with rotations through a rotation library like Sophus or Manif. That library should implement left/right lerp, splines, “rotate a vector” and “compose a transformation”. There is basically never a need for a developer to know what rotation representation is being used to compute the rotation. If such a library is correctly implemented, you can even use Euler Angles as the underlying representation and never experience gimbal lock. [1] https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#Performance_comparisons https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotati...
- percentcer 4y agoAs you pointed out, you still need regular ol' quaternions if you're dealing with non-rigid transforms (e.g. in animation where there's some scaling transform involved as well)
- bodhiandpysics1 4y agowhich is very very very common (squatch and stretch)
- bodhiandpysics1 4y agoIn graphics, dual quaternions are used in skinning, but rarely for orientation and translation.
- gfxgirl 4y agogeometric algebra is replacing quaternions because GA handles tons of edge cases that quaternions don't?