[Bf-committers] Euler angles clarification

Recep Aslantas info at recp.me
Sun Mar 25 22:39:09 CEST 2018


Dahlia, converting between coord-sys is already working,
I'm just trying to understand what kind of euler angles used in Blender

I found this: https://github.com/mrdoob/three.js/issues/2803#issuecomment-11599841
According to that Blender uses EXTRINSIC rotations
I wanted to be sure that Blender uses EXTRINSIC rotations this is why I asked this question here,

Also I found this: https://wiki.blender.org/index.php/User:Aligorith/EulerRotationOrder
It seems Blender only uses STATIC rotations in this algorithm ( Ken Shoemake's algorithm ) if that doc is updated.
Original algorithm: https://github.com/erich666/GraphicsGems/blob/master/gemsiv/euler_angle/EulerAngles.h

Maybe "static axes" in that algorithm corresponds to "extrinsic rotations"
and "rotating axes" corresponds to "intrinsic rotations"
in this case everything would be clear


-R 

> On March 25, 2018 at 7:36 PM Dahlia Trimble <dahliatrimble at gmail.com mailto:dahliatrimble at gmail.com > wrote:
> 
> 
>     Maybe this might help provide some insight:
>     https://www.blender.org/forum/viewtopic.php?t=26417
> 
>     On Sun, Mar 25, 2018 at 7:05 AM, Recep Aslantas <info at recp.me mailto:info at recp.me > wrote:
> 
>         > > Thanks Gaia for reply,
> > 
> >         For testing angles;
> > 
> >         In Blender I'm adding rotations to a cube with specific euler order e.g.
> >         XYZ, XZY... then,
> >         I'm exporting it as COLLADA file to see matrix produced with this euler
> >         angles
> > 
> >         Then I'm testing it with cglm library to produce same matrix with same
> >         euler angles like this:
> > 
> >         mat4 rot;
> >         glm_euler_xzy((vec3){Xangle, Yangle, Zangle}, rot);
> >         glm_mat4_print(rot, stderr);
> > 
> >         this produces same matrix as Blender.
> > 
> >         The problem is that I was thought that I was implemented intrinsic (pitch,
> >         yaw and roll) rotations
> >         but now I realized that they are extrinsic (elevation, heading and bank)
> >         rotations
> >         which are reverse order of intrinsic (intrinsic XZY == extrinsic YZX)
> > 
> >         So before fix that but I wanted to know what convention
> >         does Blender use, extrinsic or intrinsic rotations?
> >         Because after changed the orders, the result will not be same :/
> > 
> >         Recently glm added new euler functions: https://github.com/g-truc/glm/
> >         pull/744
> >         My guess is that glm::eulerAngleYZX will not produce same rotation matrix
> >         as Blender
> > 
> >         FWIW, I'm using euler angles in AssetKit ( https://github.com/recp/
> >         assetkit ) which is COLLADA/glTF importer
> >         to convert coordinate systems, for instance Z_UP to Y_UP ...
> > 
> >         Thanks
> >             * Recep
> > 
> >     > _______________________________________________
>     Bf-committers mailing list
>     Bf-committers at blender.org mailto:Bf-committers at blender.org
>     https://lists.blender.org/mailman/listinfo/bf-committers
> 


More information about the Bf-committers mailing list