Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 31 Oct 2012
Offline Last Active Oct 31 2012 06:03 AM

Topics I've Started

OpenNI to Directx matrices problem

31 October 2012 - 05:10 AM


I'm having serious problems converting the orientation matrix from OpenNi to a Direct3D matrix.

I'm using my own format for the 3D model and the skeleton and I'm also using just a plain box just to see if it woks independently from the character. It does not.

I am as now just rotating shoulder in order to isolate the problem.

Standing in T-Pose works ok.
Putting arms forward works ok.
Moving arms up and down with arms in front of me works ok.
However when I move arms up and down the arms rotate instead.

What could be the problem?

[source lang="cpp"]GetLimbOrientation(&Pos, &Ori, limbid, 0);D3DXMatrixIdentity(&DxMat);DxMat._11 = Ori[0];DxMat._21 = -Ori[3];DxMat._31 = Ori[6];DxMat._12 = -Ori[1];DxMat._22 = Ori[4];DxMat._32 = -Ori[7];DxMat._13 = Ori[2];DxMat._23 = -Ori[5];DxMat._33 = Ori[8];[/source]

I got the minuses from the "Sinbad" sample that is made for Ogre, It works even worse without them.

As I understand it, the difference between an Ogre-matrix and a D3DXMatrix is that the later one is just a transposed Ogre-matrix but I still can't get it to work.

Can anyone please help me?