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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

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

  3. #3
    Membre confirmé
    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
    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
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    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 confirmé
    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
    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
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    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
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    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

  8. #8
    Membre averti
    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
    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

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    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

  10. #10
    Membre averti
    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
    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

  11. #11
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    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

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