2012-04-05 5 views
1

Ich habe ein Modell, das ich in Blender gemacht habe, das einzelne Maschen darin hat. Wenn ich es in ein Xna-Projekt einfüge und versuche, das Modell über die Matrix-Übersetzung zu bewegen, gehen alle einzelnen Netze in verschiedene Richtungen. Mein Code aktualisiert jedes Mesh individuell. Gibt es einen besseren Code, den ich verwenden sollte, um die Meshes des Modells zusammen zu bewegen?Wie verschiebe ich Modelle in Xna als Ganzes?

Antwort

0

Wenn Sie nennen dies:

private void DrawModel(Model model, Matrix worldMatrix) 
    { 
     //Matrix array for number of bones 
     Matrix[] modelTransformations = new Matrix[model.Bones.Count]; 

     //Put bones into matrix array 
     model.CopyAbsoluteBoneTransformsTo(modelTransformations); 

     //for every model 
     foreach (ModelMesh mesh in model.Meshes) 
     { 
      foreach (BasicEffect effect in mesh.Effects) 
      { 
       //Add default lighting 
       effect.EnableDefaultLighting(); 

       //Set default postion 
       effect.World = modelTransformations[mesh.ParentBone.Index] * worldMatrix; 

       //Set view 
       effect.View = camera.viewMatrix; 

       //Set projection 
       effect.Projection = camera.projectionMatrix; 
      } 

      //Draw Model 
      mesh.Draw(); 
     } 
    } 

Und dann die Welt Matrix übersetzen, die Sie wie dieses in:

modelWorld *= Matrix.CreateTranslation(XDir, YDir, ZDir); 

sollten Sie keine Probleme haben. Zumindest mache ich es so.