#0 

01-09-2009 00:10:07

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

Bonsoir à vous,

J'ai un petit problème de gestion de scène.
Est il possible de décharger une scène IrrEdit pour en charger une autre avec le même "ISceneManager" ? Ou en fait, le chargement d'une scène IrrEdit rajoute simplement des objets à ISceneManager et du coup il n'est plus possible de revenir en arrière? (à moins de noter les identifiants dans IrrEdit de tous les objets pour les supprimer par le suite...) hmm

    Merci wink

Dernière modification par Gehogor (01-09-2009 00:13:51)


Et hop... wink

Hors ligne


#1 

04-09-2009 17:03:58

oli03
Petit nouveau
Lieu: Montluçon (Allier)
Date d'inscription: 29-08-2009
Messages: 4

Bonjour,

Oui, c'est possible : c'est la méthode Clear qui supprime tous les nodes de la scène.

Code:

m_IrrSceneManager->clear();

Dernière modification par oli03 (04-09-2009 17:05:23)

Hors ligne


#2 

04-09-2009 19:07:43

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

Oui en effet, je l'utilise déjà, le problème de cette méthode c'est que tous les objets rajoutés en dehors de la scène IrrEdit sont eux aussi supprimés. Je pense donc qu'il n'y a qu'un seul moyen de supprimer que la scène IrrEdit, c'est de la configurer avec des identifiants astucieusement choisis afin de les récupérer avec le "ISceneManager" dans son programme et en suite,  d'enlever ses éléments un par un..... On fera avec..

        Merci... smile


Et hop... wink

Hors ligne


#3 

05-09-2009 14:46:05

oli03
Petit nouveau
Lieu: Montluçon (Allier)
Date d'inscription: 29-08-2009
Messages: 4

Peut être pourrais-tu alors utiliser plusieurs scenemanager : un pour les objets de IrrEdit et un autre pour les autres nodes.
C'était une de mes questions récentes.

Une fois que le scenemanager "principal" est créé :

Code:

m_IrrSceneManager_IrrEdit = device->getSceneManager()->createNewSceneManager(false);
m_IrrSceneManager_Autre = device->getSceneManager()->createNewSceneManager(false);

Et après tu peux les traiter séparément.

Le post en question : ici

Olivier

Hors ligne


#4 

05-09-2009 19:29:36

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

En effet, c'est une très bonne idée, je l'ai codé immédiatement d'ailleurs, mais j'ai rencontré un problème. Les lumières placées dans la scène IrrEdit n'éclairent pas les objets ajoutés dans l'autre ISceneManager. (même dans le cas où le deuxième ISceneManager est créé comme clone "createNewSceneManager(true)"...).
   
      En même temps, il sans doute normal que, lorsqu'on créé deux manageurs de scène différents, qu'ils réagissent de manière indépendante.  Je vais voir si je peux trouver une astuce.  Merci encore. wink

Dernière modification par Gehogor (06-09-2009 01:10:41)


Et hop... wink

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
87 invités en ligne
Aucun membre connecté
RSS Feed