1
我正在制作剥皮引擎,并使其为1个矩阵/框架/骨骼工作。然而,这是大量的数据,所以我想进一步做1矩阵/关键帧/骨骼,因此我可以对骨骼的旋转和平移进行插值(每个坐标轴上的缩放总是1,所以我忽略了这一点) 。为此,我想分解一个用于(缩放矢量),旋转四元数和平移矢量的矩阵(XMMATRIX结构),对它们进行插值并从中重新组合矩阵。我的代码大致是:XMMATRIX Decompose无法提供正确的缩放比例,旋转和平移
XMMATRIX temp;
{..} //Fill it from a file
temp = XMMatrixTranspose(temp); //Transposing temp because it was in a shader-readable format
XMVECTOR scal; //for scaling
XMVECTOR quat; //for rotation
XMVECTOR tran; //for translation
XMMatrixDecompose(&scal,&quat,&tran,temp);
XMMATRIX final=XMMatrixIdentity()*XMMatrixScalingFromVector(scal)*XMMatrixRotationQuaternion(quat)*XMMatrixTranslationFromVector(tran);
final = XMMatrixTranspose(final); //Transposing to get back the shader format
在这短短的代码中,我试图分解正确的矩阵(临时),然后在最后的矩阵重组,但我没有得到原矩阵回来。 (使用临时矩阵给出正确的结果,但使用最终矩阵不)
看来我错过了一些非常微不足道的东西,请问有人可以指出它吗?