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);
DxMat._11 = Ori;
DxMat._21 = -Ori;
DxMat._31 = Ori;
DxMat._12 = -Ori;
DxMat._22 = Ori;
DxMat._32 = -Ori;
DxMat._13 = Ori;
DxMat._23 = -Ori;
DxMat._33 = Ori;[/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?