FBX SDK Programmer's Guide > Nodes and the Scene Graph > FBX Nodes >

# Computing Transformation Matrices

The FBX SDK and Maya use the same formula to compute a transformation matrix. However, 3ds Max uses a different formula.

NoteThe FBX importers and exporters for 3ds Max automatically convert transformation matrices to and from 3ds Max.

## FBX and Maya

The following formula represents how the FBX SDK and Maya compute the transformation matrix for a node:

WorldTransform = ParentWorldTransform * T * Roff * Rp * Rpre * R * Rpost -1 * Rp-1 * Soff * Sp * S * Sp-1

Where the term: | Is a 4 x 4 matrix that contains:
--- | ---
WorldTransform | Transformation matrix of the node
ParentWorldTransform | Transformation matrix of the parent node
T | Translation
Roff | Rotation offset
Rp | Rotation pivot
Rpre | Pre-rotation
R | Rotation
Rpost -1 | Inverse of the post-rotation
Rp -1 | Inverse of the rotation pivot
Soff | Scaling offset
Sp | Scaling pivot
S | Scaling
Sp -1 | Inverse of the scaling pivot

Notes:

- Computations are performed from left to right.
- The effect of the formula is that any given vector is first translated, then rotated, and then scaled.
- The R matrix takes into account the rotation order. Because of the mathematical properties of the matrices, R is the result of one of the possible combinations of Rx, Ry, and Rz (each being matrices). For example, for the default rotation order of XYZ, R = Rx * Ry * Rz

## 3ds Max

The following formula represents how 3ds Max computes the transformation matrix for a node. All the terms in the formula are the same as in FBX and Maya, except for the three terms that represent geometric transformation:

WorldTransform = ParentWorldTransform * T * R * S * OT * OR * OS

Where the term: | Is a 4 x 4 matrix that contains:
--- | ---
WorldTransform | Transformation matrix of the node
ParentWorldTransform | Transformation matrix of the parent node
T | Translation
R | Rotation
S | Scaling
OT | Geometric transform translation
OR | Geometric transform rotation
OS | Geometric transform scaling

Notes:

- Computations are performed from left to right.
- Geometric translation, geometric rotation, and geometric scaling relate to the object-offset concept in 3ds Max. These geometric transformations are applied to the node attribute after the node transformations.
- Geometric transformations are not inherited: ParentWorldTransform does not contain the OT, OR, and OS of WorldTransform’s parent node.
- Geometric transformations are implemented in FBX SDK as three properties of FbxNode objects: FbxNode::GeometricTranslation, FbxNode::GeometricRotation, and FbxNode::GeometricScaling.