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

OpenGL Discussion :

Export Blender en Obj pour OpenGl, positionnement


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Par défaut Export Blender en Obj pour OpenGl, positionnement
    Bonjour à tous,

    pour un développement, je cherche à importer des objets issus de Blender dans mon appli OpenGl. Jusque là pas de problème, j'utilise le loader de glm et ca se passe bien : j'arrive à importer mes objets.

    Par contre, j'aimerais importer ces objets à une position relative. Je m'explique. J'ai en réalité plusieurs objets positionnés les uns par rapport aux autres dans Blender. Je cherche à les récupérer indépendamment dans OpenGl, mais j'aimerais conserver leur position relative : que le repère associé à l'objet que je charge dans OpenGl corresponde au repère global de Blender. L'idée est de pouvoir repositionner les objets comme dans Blender de manière simple.

    Je n'ai pas encore trouvé de solution... Y'a t'il un moyen dans les options d'exportation pour forcer Blender à associé ce repère comme repère de l'.obj ? Es-ce qu'on peut choisir le repère associé à un objet dans un fichier .obj ? J'ai vu que l'.obj géré les groupes. Es-ce que c'est par là qu'il faut que je me dirige ? Dans ce cas es-ce que je pourrais géré mes objets indépendamment ? Es-ce qu'il faut que je me dirige vers un autre format d'export qui gère ce positionnement ?

    Je sais ça fait beaucoup de questions... Mais je suis sûr qu'une solution existe autre que de relever les coordonnées des objets dans Blender et de les entrer dans mon appli !

    Tout conseil est le bienvenu.

    Vincent

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    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 098
    Par défaut
    D'après moi, le fichier OBJ contient les vertex avec leur positions dans le monde, il n y a pas de gestion de relativité.

    Et non je ne pense pas qu'il y ait une option dans blender pour faire cela, de plus je pense que c'est inutile et que la solution est ailleurs.

    Je ne suis pas sure d'avoir bien compris ton problème en opengl, mais tu pourrais éventuellement :

    - Pour chacun des objets du fichiers o (les lignes avec o), après chargement, recalculé une position en déplaçant les positions de chaque vertex (il faut donc trouvé le centre de gravité géométrique de l'objet et recalculer pour avoir 0,0,0 comme centre), avec ca tu pourras en faire ce que tu veux.
    (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

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    Salut,

    Une solution un peu moche mais qui devrait marcher consiste, dans Blender, à mettre ton objet (ie: son repère) au centre de la scène et à déplacer ses vertexs.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    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 098
    Par défaut
    Solution très moche (mais qui fonctionnerait certes), pour cela je ne l'avais même pas évoquée .

    Cela me semble plus "ennuyant" de faire le travail dans blender, alors qu'un petit morceau de code pourrait le faire (si j'ai bien compris son problème bien entendu).
    (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

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Par défaut
    Ce qu'il faut c'est que tu crées un exporteur de scène simple (en gros, il fait un texte qui dit pour chaque objet quel fichier charger, et ou placer l'objet) et ensuite faire un importeur dans ton programme.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Par défaut
    Merci à tous... Désolé j'ai été un peu long sur la réponse...

    Ouais, vous avez bien compris le problème et trouvez une solution. J'ai finalement trouvé l'option "Objects as OBJ Objects" qui conserve l'objet exporté exprimé dans le repère global de Blender. Ca me permet bien de loader séparément mais à la bonne position plusieurs objets appartenant au même ensemble. Ensuite, parce que j'ai également besoin du centre "réel" de chaque objet, je fais un calcul de centre de gravité et ca roule !

    A noter d'ailleurs que je ne calcul pas exactement le centre de gravité en parcourant les vertex : c'est bien, mais si un objet est déséquilibré en nombre de vertex sur une certaine partie (plus complexe d'un côté que d'un autre), ca ne me donne pas ce que je souhaite. Du coups, je fais un calcul de centre basé sur les distances extrèmes et ca marche bien.

    Merci à tous en tout cas !

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 098
    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 098
    Par défaut
    Citation Envoyé par kennyyy Voir le message
    A noter d'ailleurs que je ne calcul pas exactement le centre de gravité en parcourant les vertex : c'est bien, mais si un objet est déséquilibré en nombre de vertex sur une certaine partie (plus complexe d'un côté que d'un autre), ca ne me donne pas ce que je souhaite. Du coups, je fais un calcul de centre basé sur les distances extrèmes et ca marche bien.
    Oui pas bêtes en effet, prendre le centre d'une boite qui englobe les vertex est une idée a retenir.
    (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
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 819
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 819
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Oui pas bêtes en effet, prendre le centre d'une boite qui englobe les vertex est une idée a retenir.
    Un truc à faire aussi, dans le cas où on soit sur un problème 2D, genre aménagement d'espace/d'atelier/d'appart..., c'est mettre l'origine du repère local de l'objet au point le plus bas de la boite englobante. Comme ça l'altitude 0 correspond à la face inférieure de l'objet.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  9. #9
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 819
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 819
    Par défaut
    Salut;

    Citation Envoyé par kennyyy Voir le message
    Je cherche à les récupérer indépendamment dans OpenGl, mais j'aimerais conserver leur position relative : que le repère associé à l'objet que je charge dans OpenGl corresponde au repère global de Blender. L'idée est de pouvoir repositionner les objets comme dans Blender de manière simple.
    Après avoir fait deux/trois tests d'exports en obj, Blender fait de base ce que tu veux. Les objets sont exportés indépendamment (si tu as coché "Objects as OBJ Objects", mais ça l'est pas défaut), et avec les coordonnées exprimées dans le repère global... donc normalement, c'est bon de base. Non?

    [edit] ah ouais, non, en fait tu veux que les coordonnées soit en repère local, et avoir la transformation local/global... bon bah, tu importes, tu calcules le centre de gravité de ton objet, et zou... donc idem wax78...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Blender] Exporter un Wavefront (.obj)
    Par Ezarion dans le forum Développement 2D, 3D et Jeux
    Réponses: 15
    Dernier message: 07/01/2011, 09h42
  2. Exporter à partir de 3D Studio Max pour OpenGL
    Par philmor34 dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 10/02/2009, 20h54
  3. Paramétrer DevCpp pour OpenGL
    Par vargasvan dans le forum OpenGL
    Réponses: 7
    Dernier message: 04/10/2005, 11h49
  4. Question sur exports et les classes (pour une dll)
    Par DjPoke dans le forum Langage
    Réponses: 7
    Dernier message: 08/08/2005, 19h25
  5. logiciel pour opengl
    Par Mik@-D0 dans le forum OpenGL
    Réponses: 7
    Dernier message: 02/09/2004, 17h10

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