Historique des modifications - Message

Message #10058

Sujet: probleme de performances


Type Date Auteur Contenu
Correction acceptée 23-06-2011 10:35:46 Zorian
Texte original:
Bonjour amis geeks,

Je fais un petit jeu avec irrlicht, et je me heurte a un probleme de performance. En cherchant sur le net j'ai trouvé une fonction "magique" qui n'a de magie que pour les autres (pourquoi tout le monde m'en veut? XD), permettant de stocher les données d'un IMesh dans la mémoire du GPU et non celle du CPU (si j'ai bien compris). L'idée m'a séduit mais je suis passé de 10 fPS a 10.5 ... :s Voici la fonction : setHardwareMappingHint(EHM_STATIC);

Je n'ai pas mon code sous les yeux mais l'algorythme est le suivant :

pour tous les modeles de la map je fais
{
IAnimatedMesh lMesh = sceneManaget->getMesh("modele.obj");
lMesh->setHardwareMappingHint(EHM_STATIC);
IAnimatedMeshSceneNode lModele = sceneManager->addAnimatedMeshSceneNode(lMesh);
lModele->setPosition(vector3df pos);
}

Et pi c'est tout !

Voila donc chaque élément du décors est dans un fichier séparé. Le truc c'est que c'est bien pratique pour les collisions avec les boundingbox.

J'ai pas une CG tip top mais elle me fait quand meme tourner Oblivion avec les graphismes a fond et un fps correct.

Voic un apercu du rendu avec un fps de 10 :

Qu'en pensez vous?

Merci d'avance
Correction proposée:
Bonjour amis geeks,

Je fais un petit jeu avec irrlicht, et je me heurte à un problème de performance. En cherchant sur le net j'ai trouvé une fonction "magique" qui n'a de magie que pour les autres (pourquoi tout le monde m'en veut? XD), permettant de stocker les données d'un IMesh dans la mémoire du GPU et non celle du CPU (si j'ai bien compris). L'idée m'a séduit mais je suis passé de 10 fPS a 10.5 ... :s Voici la fonction : setHardwareMappingHint(EHM_STATIC);

Je n'ai pas mon code sous les yeux mais l'algorithme est le suivant :

pour tous les modèles de la map je fais
{
IAnimatedMesh lMesh = sceneManaget->getMesh("modele.obj");
lMesh->setHardwareMappingHint(EHM_STATIC);
IAnimatedMeshSceneNode lModele = sceneManager->addAnimatedMeshSceneNode(lMesh);
lModele->setPosition(vector3df pos);
}

Et pis c'est tout !

Voilà donc chaque élément du décor est dans un fichier séparé. Le truc c'est que c'est bien pratique pour les collisions avec les boundingbox.

J'ai pas une CG tip top mais elle me fait quand même tourner Oblivion avec les graphismes à fond et un fps correct.

Voici un aperçu du rendu avec un fps de 10 :

Qu'en pensez vous?

Merci d'avance
Création du message 17-06-2011 07:43:15 D2R2robotrigolo
Bonjour amis geeks,

Je fais un petit jeu avec irrlicht, et je me heurte à un problème de performance. En cherchant sur le net j'ai trouvé une fonction "magique" qui n'a de magie que pour les autres (pourquoi tout le monde m'en veut? XD), permettant de stocker les données d'un IMesh dans la mémoire du GPU et non celle du CPU (si j'ai bien compris). L'idée m'a séduit mais je suis passé de 10 fPS a 10.5 ... :s Voici la fonction : setHardwareMappingHint(EHM_STATIC);

Je n'ai pas mon code sous les yeux mais l'algorithme est le suivant :

pour tous les modèles de la map je fais
{
IAnimatedMesh lMesh = sceneManaget->getMesh("modele.obj");
lMesh->setHardwareMappingHint(EHM_STATIC);
IAnimatedMeshSceneNode lModele = sceneManager->addAnimatedMeshSceneNode(lMesh);
lModele->setPosition(vector3df pos);
}

Et pis c'est tout !

Voilà donc chaque élément du décor est dans un fichier séparé. Le truc c'est que c'est bien pratique pour les collisions avec les boundingbox.

J'ai pas une CG tip top mais elle me fait quand même tourner Oblivion avec les graphismes à fond et un fps correct.

Voici un aperçu du rendu avec un fps de 10 :

Qu'en pensez vous?

Merci d'avance

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
118 invités en ligne
membre en ligne: -
RSS Feed