1

Blender でエクスポートした .fbx モデルを XNA にインポートしようとしています。

これが私の描画コードです

public void Draw()
    {
        Matrix[] modelTransforms = new Matrix[Model.Bones.Count];
        Model.CopyAbsoluteBoneTransformsTo(modelTransforms);

        foreach (ModelMesh mesh in Model.Meshes)
        {
            foreach (BasicEffect be in mesh.Effects)
            {
                be.EnableDefaultLighting();
                be.World = GameCamera.World * Translation * modelTransforms[mesh.ParentBone.Index];
                be.View = GameCamera.View;
                be.Projection = GameCamera.Projection;
            }
            mesh.Draw();
        }
    }

問題は、ゲームを開始すると、一部のモデル パーツが他のパーツの上に重なって表示されることです。インターネットから他のモデルをダウンロードしようとしましたが、同じ問題があります。

4

1 に答える 1

0

この行:

be.World = GameCamera.World * Translation * modelTransforms[mesh.ParentBone.Index];

は通常逆に配置され、行列を乗算する順序によって結果が異なります。これを試して:

be.World = modelTransforms[mesh.ParentBone.Index] * GameCamera.World * Translation;
于 2012-09-09T23:11:01.297 に答える