C# FBX模型在XNA 4.0中未正确显示

C# FBX模型在XNA 4.0中未正确显示,c#,c#-4.0,xna,xna-4.0,game-engine,C#,C# 4.0,Xna,Xna 4.0,Game Engine,我有一个问题,XNA 4.0没有正确显示3D FBX模型 一个朋友创建了一个模型,当我在FBX查看器中打开它时,它会正确地显示出来 但当我将其加载到XNA并单击run时,它显示为 如果您能帮助解决此问题,我们将不胜感激 谢谢。每个网格都有一个骨骼。。。你应该用它来定位网格在正确的位置。。。此代码来自Microsoft private void DrawModel(Model m) { Matrix[] transforms = new Matrix[m.Bones.Count];

我有一个问题,XNA 4.0没有正确显示3D FBX模型

一个朋友创建了一个模型,当我在FBX查看器中打开它时,它会正确地显示出来

但当我将其加载到XNA并单击run时,它显示为

如果您能帮助解决此问题,我们将不胜感激


谢谢。

每个网格都有一个骨骼。。。你应该用它来定位网格在正确的位置。。。此代码来自Microsoft

private void DrawModel(Model m)
{
    Matrix[] transforms = new Matrix[m.Bones.Count];
    float aspectRatio = graphics.GraphicsDevice.Viewport.AspectRatio;
    m.CopyAbsoluteBoneTransformsTo(transforms);
    Matrix projection =
        Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f),
        aspectRatio, 1.0f, 10000.0f);
    Matrix view = Matrix.CreateLookAt(new Vector3(0.0f, 50.0f, Zoom),
        Vector3.Zero, Vector3.Up);

    foreach (ModelMesh mesh in m.Meshes)
    {
        foreach (BasicEffect effect in mesh.Effects)
        {
            effect.EnableDefaultLighting();

            effect.View = view;
            effect.Projection = projection;
            effect.World = gameWorldRotation *
                transforms[mesh.ParentBone.Index] *
                Matrix.CreateTranslation(Position);
        }
        mesh.Draw();
    }
}

您可以在

上找到它,这更适合在gamedevelopment.stackexchange.com上找到
private void DrawModel(Model m)
{
    Matrix[] transforms = new Matrix[m.Bones.Count];
    float aspectRatio = graphics.GraphicsDevice.Viewport.AspectRatio;
    m.CopyAbsoluteBoneTransformsTo(transforms);
    Matrix projection =
        Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f),
        aspectRatio, 1.0f, 10000.0f);
    Matrix view = Matrix.CreateLookAt(new Vector3(0.0f, 50.0f, Zoom),
        Vector3.Zero, Vector3.Up);

    foreach (ModelMesh mesh in m.Meshes)
    {
        foreach (BasicEffect effect in mesh.Effects)
        {
            effect.EnableDefaultLighting();

            effect.View = view;
            effect.Projection = projection;
            effect.World = gameWorldRotation *
                transforms[mesh.ParentBone.Index] *
                Matrix.CreateTranslation(Position);
        }
        mesh.Draw();
    }
}