Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Java3D-MouseRotate-Mémoire [ Archives / Java2D et java3D ] (MasterGreg)

mardi 25 mai 2004 à 13:30:07 | Java3D-MouseRotate-Mémoire

MasterGreg


Bonjour,

Je dois pour un projet insérer plusieurs objets 3D (lus à partir d'un fichier obj) dans un Panel. Ca marche pour un petit nombre d'objets, mais à partir d'une trentaine (variable suivant les machines) les derniers objets chargés ne s'affichent plus (je n'ai que le fond). A priori ça vient de la mémoire ; quelqu'un pourrait-il me le confirmer ?

De plus, j'aimerais qu'en appliquant une transformation sur un des objets (via MouseRotate ou MouseTranslate), cette transformation soit appliquée en même temps sur un deuxième objet (ou même plus). Je dois donc (je pense) récupérer la matrice de transformation, mais comment faire ? Existe-t-il un événement du type "On_MouseRotate" ??

C'est pour un projet de fin d'année, alors merci d'avance !!!

Grégory

mardi 25 mai 2004 à 14:09:33 | Re : Java3D-MouseRotate-Mémoire

dmaillet

---pour la premiere question: qu'entends tu par je n'ai que le fond?
Ils sortent des limits de vison?
Aggrandis les...
---pour la deuxieme, qd tu dis rotation ou translation, tu veux dire a partir d'une origine differente? Car sinon, tout dependre de la facon d'accrocher tes objets avec le transformgroup ou il y a les translation rotation

c quoi ton projet?
---------------------------------------------
dams
...en dansant la javanaise ...
---------------------------------------------

mardi 25 mai 2004 à 18:15:26 | Re : Java3D-MouseRotate-Mémoire

MasterGreg

Salut

1) quand je dis je n'ai que le fond, c'est que l'objet en lui-même n'apparaît pas : je n'ai que la couleur de fond (cf l'exemple objLoad fourni avec Java3D) (mais c'est vraisemblablement lié à un manque de RAM au bout d'un certain nombre d'objets chargés)

2) Pour mon deuxième problème, ce que j'aimerais faire, c'est : avoir deux objets côte à côté mais dans deux Panel DISTINCTS (donc pas dans le même TransformGroup), et faire en sorte que quand je fais tourner l'un (ou bien que je zoome, etc) la même transformation soit appliquée en même temps sur le second objet.
Je ne sais pas si c'est très clair

Merci d'avance !

Grégory

mercredi 26 mai 2004 à 08:49:26 | Re : Java3D-MouseRotate-Mémoire

dmaillet

1) tu es sur que ton obj loade ne sors pas des bounds de ta vue?
tu as fait un setBackClipDistance suffisamment grand?
Car si c'etait un manque de Ram, tu aurais un java lang outofmemory exception
dans tout les cas, qd tu aas des pb de ram, tu peux deja specifie plus de ram a l'execution de ta machine virtuelle
java -Xms128m -Xmx512m
128Mo min, 512Mo max,
par defaut ce dernier est a 256 je crois

2)Je vois ce que tu veux dire, et oui il faut en fait 2 TG differents, l'un ayant les comportements, plus un ecouteur de mouvement de souris, pour catcher un event et recuperer la transformation a ppliquer sur l'autre...
Apres, tu peux mettre ca dans 2 canvas differents si tu veux, avec la meme view... ou bien dans le meme canvas...

BisRepetita: c quoi ton proj? tu fais quoi comme etude?

---------------------------------------------
dams
...en dansant la javanaise ...
---------------------------------------------

mercredi 26 mai 2004 à 09:24:49 | Re : Java3D-MouseRotate-Mémoire

MasterGreg


OK merci déjà pour ces renseignements.
Je suis en Licence Info. et mon projet consiste à pouvoir charger plusieurs objets au format OBJ, en choisir un de référence par Glisser-Deposer, lui appliquer les transformations (rotation, translation, homothétie) et que simultanément les autres subissent les mêmes translations. C'est une partie du projet, mais quand je saurais faire ça, je pense que le reste ira...(le reste consiste à établir un classement des objets).

Par contre j'ai fait un test dans un premier temps avec Behavior qui regarde si on appuie sur deux touches du clavier (d ou g) pour faire tourner le cube donc évidemment à l'intérieur du processStimulus de cette class je vois la transform3D, mais c'est pour l'appliquer aux autres que je bute. T'aurais pas un morceau de code ?
Désolé, je me suis mis à Java3D y'a très peu de temps, et je patauge un peu...J'ai bien demandé à mes encadrants mais malheureusement ils ne connaissent pas Java3D...

En tout cas, merci pour ce qui précéde, et merci pour ce qui arrive :o))

Grégory

mercredi 26 mai 2004 à 09:40:41 | Re : Java3D-MouseRotate-Mémoire

MasterGreg

Pour mon premier problème, au fait, ce n'est qu'avec la version DirectX qu'à partir d'un certain nombre les objets ne s'affichent plus (Pour mes essais, je charge toujours le même fichier, donc pas de problème de distance), et j'obtenais un message : fail to lock Vertex Buffer D3D_INTERNAL_ERROR (en gros).

J'ai changé pour une version OpenGL de DirectX et voici ce que j'obtiens à partir d'un certain nombre de fichiers chargés :
java.lang.InternalError
at javax.media.j3d.MasterControl.getCanvasBit(MasterControl.java:1049)
at javax.media.j3d.Canvas3D.addNotify(Canvas3D.java:1324)
at java.awt.Container.addNotify(Container.java:2049)
at javax.swing.JComponent.addNotify(JComponent.java:4291)
at java.awt.Container.addNotify(Container.java:2049)
at javax.swing.JComponent.addNotify(JComponent.java:4291)
at java.awt.Container.addNotify(Container.java:2049)
at java.awt.Panel.addNotify(Panel.java:71)
at java.awt.Container.addNotify(Container.java:2049)
at javax.swing.JComponent.addNotify(JComponent.java:4291)
at java.awt.Container.addNotify(Container.java:2049)
at javax.swing.JComponent.addNotify(JComponent.java:4291)
at java.awt.Container.addNotify(Container.java:2049)
at java.awt.ScrollPane.addNotify(ScrollPane.java:518)
at java.awt.Container.addNotify(Container.java:2049)
at javax.swing.JComponent.addNotify(JComponent.java:4291)
at java.awt.Container.addNotify(Container.java:2049)
at javax.swing.JComponent.addNotify(JComponent.java:4291)
at java.awt.Container.addNotify(Container.java:2049)
at javax.swing.JComponent.addNotify(JComponent.java:4291)
at javax.swing.JRootPane.addNotify(JRootPane.java:676)
at java.awt.Container.addNotify(Container.java:2049)
at java.awt.Window.addNotify(Window.java:418)
at java.awt.Frame.addNotify(Frame.java:482)
at java.awt.Window.pack(Window.java:436)
at com.borland.jbuilder.runtime.applet.AppletTestbed.startApplet(Unknown Source)
at com.borland.jbuilder.runtime.applet.AppletTestbed.main(Unknown Source)

donc je pense qu'il y a dépassement de capacité quelque part, mais je ne sais pas à quel niveau...

Grégory

mercredi 26 mai 2004 à 10:14:25 | Re : Java3D-MouseRotate-Mémoire

dmaillet

1)pour ton dernier post:
essai de ne pas mettre ton appli dans un applet, et enleve ton frame.pack() dans ton code...
met lui une size dans ton code et c'est tout pour voir...
si tu es sous windows, directX est mieux adaptes,
mais bien souvent, OpenGl est mieux...
continue a tester les deux...

2)Pour appliquer ton transform3d aux autres obj,:
TransformGroup tgdetonobj. = bgdetonobj.getTransformGroup();
tgdetonobj.setTransform(tontransform3drecupere);

---------------------------------------------
dams
...en dansant la javanaise ...
---------------------------------------------

vendredi 30 décembre 2005 à 18:03:29 | Re : cree dossier

mohaciel

 salut,
aidez moi

j'en sais pas comment cree des dossier  avec java
merci


mercredi 4 janvier 2006 à 08:54:28 | Re : Java3D-MouseRotate-Mémoire

dmaillet

Regarde sur la classe java.io.File, tu y trouveras ton bonheur.
Mais soit disant passant, tu a mis ce poste n'importe ou...
pense d'abord a chercher sur le forum,
et surtout sur internet (Google est ton ami...)
ou bien cree un nouveau post...






Cette discussion est classé dans : mémoire, transformation, objets, mouserotate, java3d


Répondre à ce message

Sujets en rapport avec ce message

[debutante][java3d] un objet dans un objet [ par ametisse ] Salut, je suis débutante en java3d et j'aurais besoin de savoir comment on fait pour mettre des objets dans d'autres objets.En fait, je souhaite creer collision des Objets en java3D [ par a_farsi ] Bonjourj'ai essayer un progrmme de collision des objets en java3D (exemple appelé TickTockCOllision donné avec les exemples de bases lors de l'instala [Java3D] Comment centrer la vue sur des objets WaveFront ? [ par frac10 ] Tout d'abord, bonjour à tout le monde ! Alors je m'explique un tout petit peu quand même : je suis en projet et je dois réaliser une modélisation 3D d mémoire et java3d [ par JCDjcd ] Bonjour,je voudrais savoir si c'est possible en Java3D de faire la chose suivante :je crée plein de Shape3D (par exemple des triangles, et les formess retourner un type de list [ par Also know as ] Bonjour, J'ai une liste qui contient des objets et je cherche le moyen de récupérer le type de ces objets. Je peux les avoir grâce a une méthode qui m plugin java3D [ par fredocom ] bonjour, j'ai besoin de quelques infos sur l'API java3D. Pour pouvoir visualiser une applet java3D sur le web, je sais que l'utilisateur doit disposer Questions sur objets [ par Aldee ] Salut, Je voudrais faire une application java où certains de mes objets sont connus de tous. Y-a-t'il un moyen de les faire connaitre par tous les rotation d'une sphere 3d dans un monde java3d [ par helbriand ] Salut,Est-ce qu'un pro de java3d pourrait m'aider ?La question : Comment faire tourner une sphere 3d sur elle-même dans unmonde 3d, par rapport à l'ax Objet Choice et évébement [ par Volfield ] J'utilise des objets choice pour le choix de mes dates (j/m/a).Pour récupérer les événements je texte si l'événement est egale à 2002 par exemple, le JAVA3D et jeu de course [ par toto0101 ] voila j'aimerai savoir où je pourrais trouver le code source d'un jeu de course en java3D? si oui pourriez vous me donner l'url ou m'envoyé le source


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.