AndroidのOpenGLESアプリでボーンアニメーションを実装する際に問題が発生しています。 モデルの場合、私は3ds maxでエクスポートされたFBXファイルをassimpで変換し、テキストファイルに変換しました。このファイルには、骨のデータをロードする(頂点、重み、行列をオフセット、階層構造など)Android OpenGLESボーンアニメーションの問題
私はバインドを得ることができ、私は単位行列として、骨基質を送信する場合のポーズ:
その後、私は保存します各ノードの子及びこのブロブが結果である。このコード
public void setBoneHeirarchy()
{
for (Bone b : mRootBones)
{
setBoneTransformations(b, mRootTransform);//From assimp aiScene->mRootNode->mTransformation
}
}
private void setBoneTransformations(Bone b, Matrix4 parent)
{
Matrix4 globalTransform = new Matrix4();
globalTransform.multMatrix(parent); //[this].multMatrix([arg]) multiplies the matrix like [this] = [this] * [arg]
globalTransform.multMatrix(b.nodeTransformation); //loaded from assimp as aiNode->mTransformation
b.transformation.loadIdentity(); //the final transformation to return
b.transformation.multMatrix(mRootTransformInverse); //Inverse of mRootNode->mTransformation
b.transformation.multMatrix(globalTransform); //calculated above
b.transformation.multMatrix(b.offsetMatrix); //read from text file (converted with assimp)
for (Bone child: b.children)
setBoneTransformations(child, globalTransform);
}
を使用して再帰的に両親によってノード変換行列を乗算:
は、私はこれを取得するので、私の骨の重みとIDが正しいと思う: i.stack.imgur.com/fcTro.png 私がしようとしていた変換行列
の1を翻訳チュートリアルogldev.org/www/tutorial38/tutorial38.html
に従うと、今私はどこでエラー
行列を読み込むに問題があるか、それが計算されるために検索する場所を知っているのですか?