OpenNI to Directx matrices problem,
Members - Reputation: 101
Posted 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;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?