#0 

19-12-2006 14:13:23

White Threat
Petit nouveau
Date d'inscription: 18-12-2006
Messages: 7

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:

Code:

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 place hmm Si 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.

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
80 invités en ligne
Aucun membre connecté
RSS Feed