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

OpenSceneGraph Discussion :

Sauvgarder un .osg sur mon disque


Sujet :

OpenSceneGraph

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    May 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : May 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Sauvgarder un .osg sur mon disque
    Bonjour,
    Dans le cadre de mon stage, je dois exporter une description visuelle 3D faite par OSG en un fichier externe .OSG sur mon dique dur.
    Y a t-il un exemple ou un Tuto qui me permet de faire ça
    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    March 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : March 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Bonjour,

    Alors votre question manque de clareté...

    Qu'est ce que vous definissez par "description visuelle faite par osg" ?

    Sinon, pour ce qui est de l'écriture, il est facilement possible d'écrire un graph de scene d'OSG au format .osg, en utilisant juste la méthode statique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    osgDB::writeNodeFile(myRootNode, "mypath/myFile.osg");
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    May 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : May 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    bonjour, Merci pour votre réponse
    enfet j'utilise un Logiciel OpenSource "OpenRoadEd" qui génére une description de la route à partir d'un fichier OpenDrive (un standard de description de route : fichier xml). Et dans mon travail j'ai besoin de cette description visuelle de la route. J'ai utilisé writeNodeFile mais je sais pas où est le problème.

    ci-dessous mon IHM pr sauv de OSG

    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
    void MainWindow::saveOSG()
    {
    	// Opens an "save file" dialog
    	QString fileName = QFileDialog::getSaveFileName(this,tr("Save File"), QDir::currentPath(), tr("OpenDRIVE (*.osg)"));
    	if (fileName==NULL)
    	return;
     
    	// Saves the geometry data to the file
    	mOsgMain->SaveGeometry(fileName.toStdString());
     
     
    	// Returns the keyboard focus to the 3D viewport
    	setFocus();
    	mOSGViewer->setFocus();
    }
    la fonction SaveGeometry :

    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
    void OSGMain::SaveGeometry(std::string fileName)
    {
    	//Create a fresh group
    	osg::ref_ptr<osg::Group> groupToSave = new osg::Group;
     
    	//Add all the important geometry to it
    	groupToSave->addChild(mRoadsGroup);
    	groupToSave->addChild(mSceneryGroup);
    	groupToSave->addChild(mJunctionsGroup);
     
    	//Save it to a file 
     
    	osgDB::writeNodeFile(*(groupToSave.get()),fileName);
     
    	//Clear it
    	groupToSave->removeChildren(0,groupToSave->getNumChildren());
    }
    l'action sur le bouton "save"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mFileMenu = new QMenu(tr("&File"), this);
    mFileMenu->addAction(mSaveGeometryAct);
     
    mSaveGeometryAct = new QAction(tr("Save geometry..."), this);
    connect(mSaveGeometryAct, SIGNAL(triggered()), this, SLOT(saveOSG()));
    Le problème que je compile et j'execute la solution sans erreur mais quand j'appui sur le bouton "saveGeomety" rien ne se passe.
    Merci d'avance

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    May 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : May 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    C'est fait j'ai trouvé l'erreur
    merci pour ta réponse

  5. #5
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    March 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : March 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    De rien.

    Il aurait été sympa que tu explique ton erreur au passage, pour la prochaine personne qui rencontrera le meme soucis que toi et qui tombera sur ce topic
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    May 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : May 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    mon problème est un problème de dll.
    J'ai reconpileé OSG j'ai changer les Dlls et ça marche

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    May 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : May 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    re salut,
    maintenant je dois convertir le fichier .osg à .mesh donc j'ai pensé à passer par un format intermédiare .flt et puis il y a un convertisseur FltToMesh.
    Dabord, j'ai exploré la piste de Collada qui s'avaire trop compliqué et ça va me bouffé bcp de temps.
    Voila, je récupère mon fichier osg je le converti avec osgconv à .flt
    ouppps surprise je trouve pas ma texture quand je lance le fichier flt avec osgviewr. Jusqu'à mnt je trouve pas le pb mais au cours de la conversion il me sors ce msg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fltexp: Invalid number of texture coordinates for unit 1

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/01/2008, 16h18
  2. l'applet qui écrirait sur mon disque
    Par poulette3000 dans le forum Applets
    Réponses: 2
    Dernier message: 12/06/2007, 12h36
  3. faire le lien avec une image sur mon disque dur
    Par tsubasette dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 23/10/2006, 01h45
  4. Comment obtenir cette fenetre me permettant de chercher quelque chose sur mon disque
    Par budylove dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 15/05/2006, 16h27
  5. Réponses: 6
    Dernier message: 29/10/2005, 15h10

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