Части модели Xna перекрывают другие

Я пытаюсь импортировать в 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();
        }
    }

Проблема в том, что когда я запускаю игру, некоторые части модели перекрывают другие, а не отстают. Я пытался загрузить другие модели из Интернета, но у них та же проблема.


person chiarfe    schedule 09.09.2012    source источник
comment
здесь вы можете найти ответ (также читайте комментарии)   -  person chiarfe    schedule 26.09.2012


Ответы (1)


Эта строка:

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

обычно упорядочивается наоборот, и порядок, в котором вы умножаете матрицы, будет отличать результаты. Попробуй это:

be.World = modelTransforms[mesh.ParentBone.Index] * GameCamera.World * Translation;
person Steve H    schedule 09.09.2012
comment
Спасибо за ответ, но не помогло, проблема осталась - person chiarfe; 10.09.2012