Inside Sabertooth
Learn how Sabertooth uses 3ds Max to create 3D interactive projects, including HBO Go’s Game of Thrones interactive experience
  • 1/3
You are here: Forum Home / Autodesk® FBX® / FBX SDK / The Makeup of the local matrix of an KFbxNode
  RSS 2.0 ATOM  

The Makeup of the local matrix of an KFbxNode
Rate this thread
 
23984
 
Permlink of this thread  
avatar
  • Total Posts: 2
  • Joined: 29 January 2007 11:49 AM

I am trying to extract animation data from an fbx file, this data is most likely to come from Motion Builder however it could come from anywhere.

Ideally I’d like to keep the Pre and Post rotation properties separate from trs.

Is there any chance you could explain to me what properties contribute to the local matrix of an KFbxNode.
I understand for example that it is composed of.
Local Translation
Local Rotation
Local Scale
Pre Rotate
Post Rotate

Local Matrix = (((Local Scale * Post Rotation) * Local Rotation) * Pre Rotation) * Local Translation

but are there any others and if so, how are they combined together?

Is there any documentation available that explains what are the steps taken to compute an KFbxNode’s local matrix?

Thanks in advance,
Luke



Replies: 0
avatar

Hi Luke,
here is some details, to make it clear, I also list the related MEL commands, hopefully it useful for you. any problems, please let me know.

Local Matrix = LocalTranslation * RotationOffset* RotationPivot* PreRotation * LocalRotation* PostRotation * RotationPivotInverse* ScalingOffset* ScalingPivot* LocalScaling* ScalingPivotInverse;

LocalTranslation : translate (xform -query -translation)
RotationOffset: translation compensates for the change in the rotate pivot point (xform -q -rotateTranslation)
RotationPivot: current rotate pivot position (xform -q -rotatePivot)
PreRotation : joint orientation(pre rotation)
LocalRotation: rotate transform (xform -q -rotation & xform -q -rotateOrder)
PostRotation : rotate axis (xform -q -rotateAxis)
RotationPivotInverse: inverse of RotationPivot
ScalingOffset: translation compensates for the change in the scale pivot point (xform -q -scaleTranslation)
ScalingPivot: current scale pivot position (xform -q -scalePivot)
LocalScaling: scale transform (xform -q -scale)
ScalingPivotInverse: inverse of ScalingPivot



Zhihao, Data Platform - Autodesk

Replies: 0
avatar
  • zydgyy
  • Posted: 28 December 2011 12:47 AM

LocalTranslation : translate (xform -query -translation)
RotationOffset: translation compensates for the change in the rotate pivot point (xform -q -rotateTranslation)
RotationPivot: current rotate pivot position (xform -q -rotatePivot)
PreRotation : joint orientation(pre rotation)
LocalRotation: rotate transform (xform -q -rotation & xform -q -rotateOrder)
PostRotation : rotate axis (xform -q -rotateAxis)
RotationPivotInverse: inverse of RotationPivot
ScalingOffset: translation compensates for the change in the scale pivot point (xform -q -scaleTranslation)
ScalingPivot: current scale pivot position (xform -q -scalePivot)
LocalScaling: scale transform (xform -q -scale)
ScalingPivotInverse: inverse of ScalingPivot

--------------------------------------------------------------------------------

So,how to compute the “RotationPivotInverse” and “ScalingPivotInverse”



Replies: 0
avatar
  • Zhihao.Li
  • Posted: 28 December 2011 12:47 PM

It’s the inverse matrix. You can get them through
KFbxMatrix::Inverse ( )



Zhihao, Data Platform - Autodesk

Replies: 0