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

Ogre Discussion :

Charger un fichier scene créé sous Blender sur Ogre3D


Sujet :

Ogre

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut Charger un fichier scene créé sous Blender sur Ogre3D
    Bonjour à tous,
    Je sollicite votre aide encore une fois pour m'enlever une bonne épine du pied.
    J'ai crée une scène blender (.scene) et je voudrais de l'aide pour savoir comment je peux l'incorporer dans mon projet Ogre. J'ai essayé DotSceneLoader mais j'ai des soucis avec le code lors de la génération (string ogre ne peut pas être converti en const char*). Je désespère.

    Je suis sur Windows 7 et Visual Studio 10.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    êtes vous sur que Ogre accepte le format .scene ?

    Sinon pour l'erreur de string, ne suffirait t-il pas d'appeler la fonction c_str() de la classe std::string ? Pouvez vous nous montrer votre code ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Merci, LittleWhite.

    Pour le code, j'utilise celui-ci : ICI

    Pour le .scene, je ne sais pas car je débute dans ogre3D. AU pire, je peux la mettre en format xml (Je ne perds rien en données). Le souci, c'est comment et avec quel code je crée la scène sous Ogre, sachant qu'avec le lien ci dessus j'ai des soucis dans la compilation comme j'ai cité au premier message
    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
    1>------ Début de la génération*: Projet*: Ogre3D, Configuration*: Debug Win32 ------
    1>La génération a démarré 05/04/2012 00:24:51.
    1>InitializeBuildStatus:
    1>  Mise à jour de l'horodatage "Debug\Ogre3D.unsuccessfulbuild".
    1>ClCompile:
    1>  main.cpp
    1>c:\ogresdk\include\ogre\exampleframelistener.h(343): warning C4244: '+='*: conversion de 'double' en 'Ogre::Real', perte possible de données
    1>c:\ogresdk\include\ogre\exampleframelistener.h(344): warning C4244: '-='*: conversion de 'double' en 'Ogre::Real', perte possible de données
    1>c:\ogresdk\include\ogre\exampleframelistener.h(348): warning C4244: 'argument'*: conversion de 'double' en 'Ogre::Real', perte possible de données
    1>c:\ogresdk\include\ogre\exampleframelistener.h(349): warning C4244: 'argument'*: conversion de 'double' en 'Ogre::Real', perte possible de données
    1>c:\ogresdk\include\ogre\exampleframelistener.h(454): warning C4244: '-='*: conversion de 'double' en 'Ogre::Real', perte possible de données
    1>  DotSceneLoader.cpp
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(218): warning C4390: ';'*: une instruction contrôlée a été trouvée vide*; est-ce ce que vous souhaitiez*?
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(298): warning C4390: ';'*: une instruction contrôlée a été trouvée vide*; est-ce ce que vous souhaitiez*?
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(306): warning C4305: 'argument'*: troncation de 'double' à 'Ogre::Real'
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(356): warning C4390: ';'*: une instruction contrôlée a été trouvée vide*; est-ce ce que vous souhaitiez*?
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(361): warning C4390: ';'*: une instruction contrôlée a été trouvée vide*; est-ce ce que vous souhaitiez*?
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(366): warning C4390: ';'*: une instruction contrôlée a été trouvée vide*; est-ce ce que vous souhaitiez*?
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(369): warning C4390: ';'*: une instruction contrôlée a été trouvée vide*; est-ce ce que vous souhaitiez*?
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(599): warning C4390: ';'*: une instruction contrôlée a été trouvée vide*; est-ce ce que vous souhaitiez*?
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(604): warning C4390: ';'*: une instruction contrôlée a été trouvée vide*; est-ce ce que vous souhaitiez*?
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(660): warning C4305: 'argument'*: troncation de 'double' à 'Ogre::Real'
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(781): error C2664: 'const char *TiXmlElement::Attribute(const char *) const'*: impossible de convertir le paramètre 1 de 'const Ogre::String' en 'const char *'
    1>          Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(782): error C2664: 'const char *TiXmlElement::Attribute(const char *) const'*: impossible de convertir le paramètre 1 de 'const Ogre::String' en 'const char *'
    1>          Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(789): error C2664: 'const char *TiXmlElement::Attribute(const char *) const'*: impossible de convertir le paramètre 1 de 'const Ogre::String' en 'const char *'
    1>          Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(790): error C2664: 'const char *TiXmlElement::Attribute(const char *) const'*: impossible de convertir le paramètre 1 de 'const Ogre::String' en 'const char *'
    1>          Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(797): error C2664: 'const char *TiXmlElement::Attribute(const char *) const'*: impossible de convertir le paramètre 1 de 'const Ogre::String' en 'const char *'
    1>          Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>c:\users\christophe\desktop\cours telecom\ogre3d\ogre3d\dotsceneloader.cpp(800): error C2664: 'const char *TiXmlElement::Attribute(const char *) const'*: impossible de convertir le paramètre 1 de 'const Ogre::String' en 'const char *'
    1>          Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>  Génération de code en cours...
    1>
    1>ÉCHEC de la build.
    1>
    1>Temps écoulé 00:00:35.67
    ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
    Voici le rapport de compilation pour que tu puisse voir l'erreur.Pour info, toutes les librairies sont bien insérées dans le projet. Et le coup du c_str() ne fonctionne pas car Ogre crée sa propre classe String.

    Merci de m'avoir répondu.
    Christophe.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Vous êtes sur que le Ogre::String n'est pas un typedef de std::string ?
    (Je ne trouve rien pour le moment sur Google, mais c'est ce semble indiqué la doc : http://www.ogre3d.org/docs/api/html/...d56bb8fa188c45 / http://www.ogre3d.org/docs/api/html/...eadf25f536ac8c )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Merci, pour la méthode, je l'utilisai mal, ça fonctionne. Reste plus qu'à essayer de charger une scene.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Désolé de revenir à la charge mais j'ai un industriel derrière mon dos qui attend des résultat que je n'ai guère pour le moment.
    Impossible de charger la scene avec DotSceneLoader. Je dis impossible car il n'y a rien qui s'affiche, en faisant un débogage pas à pas, je remarque qu'il n'arrive pas à lire et surtout à interpréter le fichier .scene (extension de XML). Peut-il avoir un rapport avec la version du xml employé. Je ne sais pas, je suis seulement étudiant.
    Alexandre, Connais un moyen de charger un fichier scene créé sous blender.

    J'ai essayer de charger un à un les élément de la scene, je n'ai pas un résultat assez satisfaisant. Je te m'en en screenshot, le fichier blender et ce que j'arrive à avoir en un à un sous ogre. Merci de ta seule aide.

    Pour info, j'utilise la base de la base sous ogre, c'est-à-dire le fichier ExampleApplication.h. Cela vient peut être de là. Ou alors de mon exportation sous blender, je ne dois pas faire une manipulation comme il faut.
    Je désespère.

    Merci d'avance pour ton aide.
    Images attachées Images attachées   

  7. #7
    Membre habitué
    Profil pro
    Dev
    Inscrit en
    Mai 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Mai 2009
    Messages : 257
    Points : 190
    Points
    190
    Par défaut
    le mieux serait d'écrire ton propre parser avec une lib comme tinyXML plutot que d'incoporer un snippet douteux écrit par un inconnu

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Je veux bien mais je suis débutant en ogre et encore plus en parseur. As-tu un tuto à me conseiller ?

  9. #9
    Membre habitué
    Profil pro
    Dev
    Inscrit en
    Mai 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Mai 2009
    Messages : 257
    Points : 190
    Points
    190
    Par défaut
    Citation Envoyé par djrital42 Voir le message
    Je veux bien mais je suis débutant en ogre et encore plus en parseur. As-tu un tuto à me conseiller ?
    il s'agit juste de savoir récupérer des informations à partir d'un fichier Xml, Ogre a peu d'importance là dedans

    donc tu prends une lib Xml en C++ comme par exemple tinyXml (que tu peux compiler toi même avec Visual Studio)

    pour écrire le parseur c'est simple : pour chaque type de balise (<node>, <entity>, <poisition>, <rotation>....), tu écrits une méthode correspondante processNode, processEntity... qui va créer un objet Ogre

    ça n'a rien de sorcier, il suffit de lire les tutos de tinyXml et de les adapter au fichier .scene

    voilà un tuto http://www.grinninglizard.com/tinyxm...tutorial0.html

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Re Bonjour et merci pour vos réponses.
    J'ai crée mon fichier XML et j'arrive à charger ma scène. Magique !!!
    Le souci c'est que l'exporter sous Blender plante un peu.
    Je ne sais pas d'où cela peut venir.
    Il n'exporte pas les modifiers arrays et mirros arrays. Alors que l'exporter est sensé les exporter. Connaissez-vous ce problème.

Discussions similaires

  1. Charger un fichier texte en code VBS sur SAP
    Par MAn_44 dans le forum VBScript
    Réponses: 0
    Dernier message: 28/09/2014, 18h26
  2. Réponses: 9
    Dernier message: 31/07/2009, 10h14
  3. Réponses: 2
    Dernier message: 12/01/2009, 13h24
  4. Réponses: 5
    Dernier message: 01/12/2008, 17h00
  5. Copier fichiers sous UNIX sur cle USB
    Par eldiablol dans le forum Administration système
    Réponses: 3
    Dernier message: 30/11/2006, 19h10

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