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?
1
A
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.