6 votes

Combien de modèles (low poly) XNA peut-il gérer ?

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();
            }
        }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X