1

我正在尝试在 XNA 中导入一个用搅拌机导出的 .fbx 模型。

这是我的绘图代码

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 回答