BVH=>Egg, Another Question about Matrix Order


#1

Another question concerning the way Panda calculate the joint matrix from its parent one
Are parent matrix post multplied or pre mulltiplied

I mean if Parent ranges from 0 to N (N being the lower level in hierarchy)
and Mn is transform matrix for joint n relative to parent n-1.
Does panda do:

Mn=M0M1M2M3…Mn-1
or Mn=Mn-1
Mn-2*…M0

I ask to know if conversion is required from BVH exported file


#2

The net transform of each node is derived by premultiplying the parent’s net transform with the node’s local transform.

That is, Mn = Mn-1Mn-2…M0, where M0 is the root transform.

This gives the intuitive composition of transforms, and provides for standard forward kinematics. It is not likely that an animation file format would use the opposite convention, which is not very useful, so I would be suprised if you find you have to make a conversion for this.

Note that transform matrices in Panda are represented row-major, which does reverse the meaning of premultiply and postmultiply from a column-major representation.

David


#3

Hmm Thks a lot.
Another question:
" A table is a set of animated values for joints. A tree of tables
with the same structure as the corresponding tree of joints must be
defined for each character to be animated. "

does this means that tables hierarchy (defined by { and }) must
match skeleton hierarchy or matching tables names with joint names is enough?

(hoping hoping…)


#4

The tables hierarchy should exactly match the skeleton hierarchy.

David


#5

FYI, you can examine the panda-walk.egg file in the models directory for an example of what the animation file ought to look like. This is designed to play on the panda.egg model file in the same directory.

You can run them with a command like this:


pview panda.egg panda-walk.egg

David