Reputation: 3979
I started programming in XNA. I developed a project simple will load a "fbx"mesh model exported from blender. Everything works perfectly. But now I want to duplicate / copied my model several times to create a floor! a matrix of 10 X 10 model. I tried several code does not work. Here is my sample code.
I do not understand why I can not duplicate my model.
Thank you very much.
//Function draw models mesh
private void draw_groundLand1()
{
//Draw 10 times model texture to make small ground
for (int a = 0; a < 10; a++)
{
// Copy any parent transforms.
Matrix[] transforms = new Matrix[model_ground_land1.Bones.Count];
model_ground_land1.CopyAbsoluteBoneTransformsTo(transforms);
// Draw the model. A model can have multiple meshes, so loop.
foreach (ModelMesh mesh in model_ground_land1.Meshes)
{
// This is where the mesh orientation is set, as well
// as our camera and projection.
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.World = transforms[mesh.ParentBone.Index] *
Matrix.CreateRotationY(cubeGroundLand1_modelRotation) * Matrix.CreateTranslation(cubeGroundLand1_position);
effect.View = View;
//effect.Texture = text_ground_lan1;
effect.Projection = Projection;
}
// Draw the mesh, using the effects set above.
mesh.Draw();
}
//Move position for the next mesh modal to draw
cubeGroundLand1_position.X += (float)1.0;
}
}
Upvotes: 2
Views: 237
Reputation: 3979
i have found my solution -> juste move this code ligne "cubeGroundLand1_position.X += (float)1.0;"
like:
private void draw_groundLand1()
{
for (int a = 0; a < 10; a++)
{
// Copy any parent transforms.
Matrix[] transforms = new Matrix[model_ground_land1.Bones.Count];
model_ground_land1.CopyAbsoluteBoneTransformsTo(transforms);
// Draw the model. A model can have multiple meshes, so loop.
foreach (ModelMesh mesh in model_ground_land1.Meshes)
{
// This is where the mesh orientation is set, as well
// as our camera and projection.
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.World = transforms[mesh.ParentBone.Index] *
Matrix.CreateRotationY(cubeGroundLand1_modelRotation) * Matrix.CreateTranslation(cubeGroundLand1_position);
effect.View = View;
//effect.Texture = text_ground_lan1;
effect.Projection = Projection;
cubeGroundLand1_position.X = (float)a+1;
}
// Draw the mesh, using the effects set above.
mesh.Draw();
}
}
Upvotes: 1