Message #3562
Sujet: creation terrain
| Type | Date | Auteur | Contenu |
|---|---|---|---|
| Dernière modification | 03-02-2008 01:20:19 | Aseiy |
Salut. deja ca va bien à Albi ou quoi?
Je t'explique vite fait pour le drop : En réalité le moteur travaille par copie pour certaines chose donc tu peux les virer après les avoir ajouté. Comment savoir s'il copie ou non? a priori je pense qu'il copie a peu pres tout excepté les trucs trop volumineux (les Mesh, les MeshBuffers, les nodes, les images)mais essaie de mettre des ->drop() sur tous les types d'éléments et tu verra bien si tu leve de l'exception. Si tu en leve une c'est que l'élément était utile. Si tu utilise gdb, le debuger, tu auras une exception directement dans le code irrlicht apres cette opération au prochain appel de sceneManager->drawAll. virtual IAnimatedMesh* irr::scene::ISceneManager::addTerrainMesh ( const c8 * meshname, video::IImage * texture,video::IImage * heightmap,...) ) Cette fonction par exemple travaille sur trois pointeurs. Il est peu probable qu'irrlicht les recopie (les éléments sont volumineux et font donc perdre de la place en mémoire et du temps). Pour la premiere question tu utilises jusqu'alors : Je suspecte grandement cette fonction de défoncer ta mémoire en copiant "../../media/heightmap2.bmp" à l'infini. Cette chene represente un mesh, c'est à dire la géométrie exacte et relativement gourmande en mémoire de ton objet. Souvent Irrlicht se rappelle qu'il a deja chargé quelque chose en mémoire mais pour le terrain, étant donné qu'on en utilise un seul en général, il est probable que ce ne soit pas sauvegardé. Donc je te conseillerai plutot de faire une save de ton taff et de changer ton algo pour utiliser: Pour optimiser l'algo je suis sur que t'aura pas de probleme sur que les TerrainSceneNode soit pas plus optimisé pour ce genre d'affichage... C'est douteux mais si tes FPS prennent un tir tu sauras d'ou viens le probleme Bon courage. P.S. : le probleme s'appelle, pompeusement, le 'dynamic loading' et pour le réaliser bien te faudrait des cases suffisemment petites pour être chargées rapidement et pas encombrer la mémoire... mais ca gache le coté grandiose non? |
| Création du message | 03-02-2008 00:23:49 | Aseiy |
Salut. deja ca va bien à Albi ou quoi?
Je t'explique vite fait pour le drop : En réalité le moteur travaille par copie pour certaines chose donc tu peux les virer après les avoir ajouté. Comment savoir s'il copie ou non? a priori je pense qu'il copie a peu pres tout excepté les trucs trop volumineux (les Mesh, les MeshBuffers, les nodes, les images)mais essaie de mettre des ->drop() sur tous les types d'éléments et tu verra bien si tu leve de l'exception. Si tu en leve une c'est que l'élément était utile. Si tu utilise gdb, le debuger, tu auras une exception directement dans le code irrlicht apres cette opération au prochain appel de sceneManager->drawAll. virtual IAnimatedMesh* irr::scene::ISceneManager::addTerrainMesh ( const c8 * meshname, video::IImage * texture,video::IImage * heightmap,...) ) Cette fonction par exemple travaille sur trois pointeurs. Il est peu probable qu'irrlicht les recopie (les éléments sont volumineux et font donc perdre de la place en mémoire et du temps). Pour la premiere question tu utilises jusqu'alors : Je suspecte grandement cette fonction de défoncer ta mémoire en copiant "../../media/heightmap2.bmp" à l'infini. Cette chene represente un mesh, c'est à dire la géométrie exacte et relativement gourmande en mémoire de ton objet. Souvent Irrlicht se rappelle qu'il a deja chargé quelque chose en mémoire mais pour le terrain, étant donné qu'on en utilise un seul en général, il est probable que ce ne soit pas sauvegardé. Donc je te conseillerai plutot de faire une save de ton taff et de changer ton algo pour utiliser: Pour optimiser l'algo je suis sur que t'aura pas de probleme sur que les TerrainSceneNode soit pas plus optimisé pour ce genre d'affichage... C'est douteux mais si tes FPS prennent un tir tu sauras d'ou viens le probleme Bon courage. P.S. : le probleme s'appelle, pompeusement, le 'dynamic loading' et pour le réaliser bien te faudrait des cases suffisemment petites pour être chargées rapidement et pas encombrer la mémoire... mais ca gache le coté grandiose non? |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 130 invités en ligne membre en ligne: - RSS Feed |