IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

3D Java Discussion :

[Java 3D] Manipuler un .OBJ ?


Sujet :

3D Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut [Java 3D] Manipuler un .OBJ ?
    Bonjour,

    Je suis entrain d'apprendre JAVA3D et j'ai appris les bases, mais je n'arrive pas trouver comment modifier (bouger, mettre une texture, etc...) un model .OBJ.
    Le model .OBJ est chargé et à l'écran mais je cherche à le manipuler maintenant.
    Pourriez-vous m'aider ?

    Cordialement,

    rXp>!<

  2. #2
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    une documentation pourra faire l'affaire.
    tu peux voir ici par exemple.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup

    J'ai lu, j'arrive à importer.
    Mais je ne comprend pas comment animé le OBJ.
    Pourriez-vous m'aider ? Avec un exemple ce code quelque chose, car là je suis un peu perdu.

    Cordialement,

    rXp>!<

  4. #4
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    salut voici un exemple fait par mes soins .je m'excuse pour les commentaires ,j'ai pas le temps c'est déjà l'heure pour faire doudou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    public BranchGroup construitScene()
    	{
     
    		BranchGroup BG = new BranchGroup();
    		Scene scene_telecharger = null;
     
     
    		try
    		{
    		 ObjectFile fichier_scene= new ObjectFile();
    		 scene_telecharger = fichier_scene.load("chemin...........obj");
     
    		}
    		catch(Exception e)
    		{
    		 System.out.println("fichier introuvable ");
    		}
     
     
    		Color3f couleur = new Color3f(1.0f,1.0f,1.0f);
    		AmbientLight lumiére = new AmbientLight(couleur);
    		BoundingSphere zone_eclairer = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 500);
    		lumiére.setInfluencingBounds(zone_eclairer);
    		BG.addChild(lumiére);
     
     
     
    		Shape3D forme3D = new ColorCube(0.3);
     
    		TransformGroup TG2 = new TransformGroup();
    		Transform3D rotation1 = new Transform3D();	
    		// comme un timeur qui exécute une action a chque 4 seconde
    		Alpha timer_declencheur = new Alpha(-1,2000);
    		// 0.0f----> Math*PI*2.0 = rotation de 0 a 2PI
    		RotationInterpolator mouvement_de_rotation =new RotationInterpolator( timer_declencheur,TG,rotation1,0.0f,(float)Math.PI*2.0f);
    		//definir la zone de mouvement
    		BoundingSphere region_de_mouvement = new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);
    		mouvement_de_rotation.setSchedulingBounds(region_de_mouvement);
    		TG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    		TG.addChild(scene_telecharger.getSceneGroup());
    		TG.addChild(mouvement_de_rotation);
    		BG.addChild(TG);
     
     
    	     BG.compile();
    		return BG;	
    	}
    bonne chance.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    Merci pour ce code, je l'essaierais cette après-midi.
    Mais j'ai vu que le *.compile() arrive à la fin.
    Cela veut dire qu'il faut tout prévoir avant de compiler ? On ne peut pas animer après la compilation ?

  6. #6
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par rXpCH Voir le message
    Merci pour ce code, je l'essaierais cette après-midi.
    Mais j'ai vu que le *.compile() arrive à la fin.
    Cela veut dire qu'il faut tout prévoir avant de compiler ? On ne peut pas animer après la compilation ?
    salut
    la méthode void compile() est utiliser pour optimiser les calculs : les objets BranchGroup seront compilés afin de convertir l'objet et tous ses ancêtres en une forme plus efficace pour le render.
    donc si tu l'enlève ,ton programme fonctionne mais les opérations de calculs pour créer la scène sur l'écran sont pas optimisés.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 49
    Points
    49
    Par défaut Java3D+Eclipse
    Bonjour à tous
    Voici une solution pour fonctionner Java3D avec eclipse.
    1. Clic-droit sur le projet et on choisit Properties ;
    2. Dans Java Build Path, on choisit Libraries et on clique sur Add Library... ;
    3. On choisit User Library, on fait Next et on clique sur User Libraries... ;
    4. On en créé un nouveau, on clique sur Add JARs... et on sélectionne les 3 *.jar qu'on a installé avec Java3d ;
    5. On clique sur Ok et Finish et on revient au Java Build Path ;
    6. On clique sur le plus de la nouvelle librairie, on surligne Native library location et on clique sur Edit... ;
    7. Avec External Folder... on choisit le {JAVA3D_HOME}/bin qui contient tous les DLLs et le tour est joué !

    http://peisme.blogspot.com/2011/02/u...c-eclipse.html

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 49
    Points
    49
    Par défaut appliquer une multitexture sur un objet comlexe
    Bonsoir slim_java
    Je suis entrain d'utiliser JAVA3D et j'ai réussi à télécharger un objet 3D (.obj) mais je ne suis pas arrivé à appliquer une multi_textures à un objet complexe.Par exemple j'ai un objet head et je veux appliquer des textures(couleurs de peaux,des yeux... dans des fichiers images ) sur cet objet.
    Et merci d'avance

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Ici c'est pas Slim_java

    Est-ce que ceci t'aiderais ?

    http://www.java-tips.org/other-api-t...in-java3d.html
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    Merci wax78
    Mais mon problème est de ne pas mélanger deux textures mais comment effectuer chaque texture à chaque partie de l'objet.Par exemple affecter à chaque face du cube une texture.
    Est ce que je peux faire un appel à des textures à partir du fichier .obj
    Par exemple j'ai un objet head et je veux appliquer une texture pour les yeux et une texture pour le nez etc.
    Et merci beaucoup

  11. #11
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    En général, un fichier OBJ est parfois accompagné d'un fichier MTL. Sinon il faut faire a la main... parce que je ne sais pas java3D gerer ca directement.

    Sinon sur wikipedia par exemple il y'a quelques infos interessante pour le OBJ et MTL : http://en.wikipedia.org/wiki/Wavefront_.obj_file
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    Bonsoir à tous
    les amis pour plaquer un texture sur un objet complexe(.obj) il me faut les coordonnées VT.Le question qui se pose comment déduire automatiquement ces coordonnées à partir des coordonnées des vertexs,car j'ai pas trouvé une solution pour mon problème que je l'ai expliqué précédemment.
    Et merci d'avance

  13. #13
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Il faut pour cela exporter ton objet avec les coordonées de texture et utiliser un modeleur pour le genererer si necessaire. Sinon il faut a la main dans le code faire du cubemapping, sphere ou cylindre mapping ... ce qui n'est pas le mieux.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    Merci wax78
    mon projet consiste à réaliser un programme qui permet de charger un fichier .obj (head) puis déformer cette tête en utilisant des points d’intérêt extraites à partir d'un visage capté.Puis plaquer les textures(la mâchoire, les lèvres, les yeux..) extraites à partir du visage (qui sont sauvegardés sous forme image) sur l'objet 3D.

  15. #15
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Oui, donc il faut creer le fichier OBJ avec les coordonnées de textures comme je l'ai dit. Les textures se "Déformeront bien" en suivi les vertex que tu déplaces pour "animer" le visage. Enfin je pense.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    wax78 j'ai pas compris votre solution " il faut creer le fichier OBJ avec les coordonnées de textures" car comment je peux trouver ces coordonnées de textures.

  17. #17
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Qui a "modelé" l'objet que tu vas importer ?

    Dans le ficheir OBJ les coordonées de textures sont definies avec vt au cas ou pour voir si le modele contient oui ou non des coordonées de textures. Sinon je ne vois vraiment pas comment tu vas faire avec un objet genre une tete ou un visage avec des projection simples ...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  18. #18
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    Bonsoir à tous

    j'ai réussi à charger un objet 3D(.obj),le visualiser et le déplacer avec la sourie avec java3D mais je ne sait pas comment enregister(exporter) une vue de cet objet sous forme d'image(bmp,png...).
    Et merci d'avance

Discussions similaires

  1. [Conception] Java et manipulation grandes quantités de données
    Par maccormick dans le forum Général Java
    Réponses: 12
    Dernier message: 19/07/2011, 12h39
  2. Probleme avec ASM (Java bytecode manipulation)
    Par GroRelou dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 14/03/2010, 17h50
  3. Réponses: 3
    Dernier message: 05/02/2008, 09h41
  4. [Java - Drools] Manipulation de fichiers / databases
    Par jacko2 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/01/2008, 15h13
  5. API Java pour manipuler fichier video
    Par jpgros dans le forum Multimédia
    Réponses: 1
    Dernier message: 03/10/2006, 23h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo