Results 1 to 4 of 4

Thread: Inverse bind-pose matrix or transformation matrix of joint?

  1. #1
    Junior Member
    Join Date
    Jan 2010
    Posts
    10

    Inverse bind-pose matrix or transformation matrix of joint?

    Hi guys,

    Just want to clarify my problem and seek for some help.
    I did make(hack) the animation possible by the approach which I think could definitely be able to refined.

    I read the calculation in specification for skinning (page 38 and 175) and the thread stuck in the design discussions about how to calculate the inverse bind-pose matrix.
    I think if I want to animate the skeleton and meshes, I have to change the transformation matrix of a certain joint. By doing this, the meshes should deform as well as the bone.However, I cannot find any (appropriate) way to do this using Collada DOM.

    What I was doing now is to rotate the inverse bind matrix which I can get from a joint(node) instance.It turns out the vertices influenced by the joint was moved as I desired to. The problem is that I have to recursively do this for all its children based on the local coordinate of the joints.
    I think there must be a way that Collada DOM to do the job for me. So I feel still missed something. Please someone who knows what is happening give me a hint about where I should take a further look.

    Really appreciate the help.

    Cheers,
    Ray

  2. #2
    Senior Member
    Join Date
    Aug 2004
    Location
    California
    Posts
    771

    Re: Inverse bind-pose matrix or transformation matrix of joint?

    The DOM is a low level import/export API not a run-time engine. Engine features like skinning and animation calculations are part of your application engine that you develop.

  3. #3
    Junior Member
    Join Date
    Jan 2010
    Posts
    10

    Re: Inverse bind-pose matrix or transformation matrix of joint?

    Thanks a lot.I think I understand the things the other way around. I have gotten the model work,somehow. Could you please tell me that how the coordinate of each joint is defined in COLLADA?

  4. #4
    Senior Member
    Join Date
    Aug 2004
    Location
    California
    Posts
    771

    Re: Inverse bind-pose matrix or transformation matrix of joint?

    In COLLADA, a joint is a local coordinate system, i.e. a <node> element. COLLADA uses XML to represent these local coordinate systems hierarchically. e.g:

    Code :
    <node id="J1">
      <node id="J2">
        <node id="J3"/>
      </node>
    </node>

    Each <node> can have an arbitrary set of transformation elements (e.g. <translate>, <rotate>, <scale>, <matrix>, <lookat>, <skew>) that define its local coordinate system. In your engine, these transformation elements can be converted to 4x4 matrices and concatenated together, per <node>. This local coordinate system might be called object space, node space, or joint space.

    Then each <node> coordinate system can be concatenated with its parent <node> on up to the root to compute its world coordinate system.

    I hope that helps.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •