Historique des modifications - Message

Message #853

Sujet: Probleme de performances: 20 FPS pour 30000 polygones


TypeDateAuteurContenu
Création du message19-12-2006 13:13:23White Threat
Bonjour a tous,

j'ai un petit soucis de performances et je ne trouve pas de solution simple pour le resoudre:

Je fais un niveau de 100 par 100 qui contient des murs sur les bords et aleatoirement a l'interieur.
un petit exemple de code pour illustrer:
for (int x =0; x <100; x++)
  for (int y = 0; y < 100; y++)
    if (x == 0 || x == 99 || y == 0 || y == 99 || rand()%5 == 1) {
      irr::scene::ISceneNode* cube = smgr->addCubeSceneNode(1);
      cube->setPosition(irr::core::vector3df(x,y,0));
      cube->setAutoCulling(true);
      cube->setMaterialTexture(0, driver->getTexture("../../media/wall.jpg"));
    }

Je cree donc environ 2360 cubes soit 30000 polygones au total (6faces*2tri*2360cubes si mon calcul est juste...).

Premier point:
Etant donne que je ne les affiche pas tous dans la camera, y a-t-il un moyen simple de ne pas calculer le rendu de chacun des cubes hors-champs?
Est-ce que j'ai mis trop d'objets a la racine de la scene et qu'elle n'arrive pas a tout tester en meme temps?

Si irrlicht utilise effectivement les BoundingBoxes des elements pour savoir si on devait les afficher ; je pensais utiliser des Empty Nodes dont la BoundingBox encapsuleraient une partie du niveau pour alleger le nombre d'objet par noeud. (pour ceux qui connaissent: structure d'Arbres a N branches ou d'Octree) Mais ce serait assez long et fastidieux a mettre en placehmmSi irrlicht ne le fait pas, promis j'en programme un (quand j'ai le temps) et je le distribue (a moins que quelqu'un ne l'ait deja fait...)

Deuxieme point:
je trouves que mes performances sont assez mauvaises (1500 poly/sec) ; meme si ma machine est assez vieille ca devrait aller...(Athlon 2000+ + 1GoDDR + Radeon 9600)
J'utilise 2 cameras donc admetons 3000 poly/sec, c'est toujours pas terrible...
Quelqu'un aurait-il une idee?


Merci d'avance.

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
185 invités en ligne
membre en ligne: -
RSS Feed