Je suis conscient que la question qui suit est vague, mais je rencontre des problèmes de performances que je n'avais pas prévus dans XNA.
J'ai un modèle peu poly (18 faces et 14 vertices) que j'essaie de dessiner à l'écran un nombre (élevé !) de fois. J'obtiens plus de 60 FPS (sur une machine décente) jusqu'à ce que je dessine ce modèle 5000+ fois. Est-ce que j'en demande trop ? J'aimerais beaucoup doubler ou tripler ce nombre (10-15k) au moins.
Mon code pour dessiner les modèles est donné ci-dessous. J'ai essayé d'éliminer autant de calculs que possible du cycle de dessin. Y a-t-il d'autres possibilités ou de meilleures alternatives ?
Remarque : tile.Offset est calculé une fois lors de l'initialisation, et non à chaque cycle.
foreach (var tile in Tiles)
{
var myModel = tile.Model;
Matrix[] transforms = new Matrix[myModel.Bones.Count];
myModel.CopyAbsoluteBoneTransformsTo(transforms);
foreach (ModelMesh mesh in myModel.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
// effect.EnableDefaultLighting();
effect.World = transforms[mesh.ParentBone.Index]
* Matrix.CreateTranslation(tile.Offset);
effect.View = CameraManager.ViewMatrix;
effect.Projection = CameraManager.ProjectionMatrix;
}
mesh.Draw();
}
}