assuryan
Messages postés7Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention 4 juin 2008 27 sept. 2005 à 14:29
J'ai bien verifié qu'aucune de mes shape3D n'était nulle, ainsi que mes apparences et couleurs.
Je vais mettre le code de ma méthode car franchement, je ne vois rien,
je comprends pas. Si vous voyez quelque chose de douteux, faites m'en
part.
C'est donc un chargeur d'objet 3DS. Au debut, je changeais juste la
couleur du triangleArray que j'ajoutais a une Shape3D commune. Mais
j'aimerai séparer en 2 Shape3D auxquelle je pourraus mettre 2 apparence
diiferentes.
Voila le code (encore désolé, je ne sais pas si on peu, dans ce forum, faire appartaitre avec une coloration Java...)
public Loadeur_flowers(float X, float Y, float Z, TransformGroup objTrans)
Voila, et quand je compile ceci, plus rien ne s'affiche dans mon API et
je ne peux plus fermer la fenetre. Il faut que j'interrompt l'execution.
Par contre, comme deja dit, si lors de l'affectation de l'apparence aux
Shape3D "tiges" et "fleurs" je mets la meme apparence (l'une ou
l'autre) comme ceci :
fleurs.setAppearance(appFlower);
tiges.setAppearance(appFlower);
ou bien
fleurs.setAppearance(appTige);
tiges.setAppearance(appTige);
Tout fonctionne (bien sur, ma fleurs est de couleur uniforme)
Voila, si quelqu'un voit quelque chose, qu'il me fasse signe. J'avoue
que je perds espoir et ne comprends pas pourquoi ça ne marche pas.
assuryan
Messages postés7Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention 4 juin 2008 27 sept. 2005 à 15:10
Hé bien je lance l'application mais plus rien ne s'affiche alors que
normalement, un monde 3D devrait y etre, des elements tel que des
abeilles, fourmis...etc (projet d'intelligence artificielle sur les
sociétés d'insectes...).
Donc je n'ai aucune erreur de compilation, la fenetre bug tout
simplement : impossible de la fermer, pas de rafraichissement si je met
une fenetre par dessus et que je la re-affiche en premier plan...Etc.
La dalle est noire.
Pour remonter plus haut....voici mon code avec le TransformGroup, car a part de lui, je vois pas d'ou ça pourrai venir.
bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),500.0);
// Set up the background
Color3f bgColor = new Color3f(0f, 0f, 0f);
Background bg = new Background(bgColor);
bg.setApplicationBounds(bounds);
objRoot.addChild(bg);
MouseRotate behavior = new MouseRotate(objTrans);
objTrans.addChild(behavior);
MouseBehavior translate = new MouseTranslate(objTrans);
translate.setSchedulingBounds(bounds);
objTrans.addChild(translate);
behavior.setSchedulingBounds(bounds);
MouseZoom behavior2 = new MouseZoom(objTrans);
objTrans.addChild(behavior2);
behavior2.setSchedulingBounds(bounds);
keys = new KeyInputHandler(this, pop);
objRoot.addChild(keys);
objRoot.compile();
return objRoot;
}
La classe LoadWorld :
public LoadWorld(TransformGroup ObjTrans)
{
// creation du monde 3D...
blabla bla... je passe les details et nombreuse lignes de code.
// j'appelle une classe qui va s'occuper de construire toutes les fleurs
// dans le "this", je peux avoir acces a ce TransformGroup objTrans
flowers = new CreateFlowers(this);
}
Je pense que le plus important est la methode createScene. C'est pour
cela que je ne detail pas la suite. Tout ce que je fais, c'est que
toutes mes Shape3D, je les mets dans ce "objTrans". Peut etre faut-il
ajouter une Capability ou autre.
Pour en revenir a mon "erreur", je pense que ça vient d'une
"incomprehension" de la part de Java3D qui ne sait plus ce qu'il doit
faire de ses Noeuds. Dit comme ça, ça fait un peu naîf, mais c'est
l'impression que ça me donne. Seulement, ce qui me derange c'est que
avec les memes Apparence, tout "fonctionne", 2 differentes, plus rien
ne marche.
Si tu a une suggestion..merci d'avance et merci de ton aide.