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
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
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");
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
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 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(); }
l'action sur le bouton "save"
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()); }
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.
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()));
Merci d'avance
C'est fait j'ai trouvé l'erreur
merci pour ta réponse
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
Bonjour,
mon problème est un problème de dll.
J'ai reconpileé OSG j'ai changer les Dlls et ça marche
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager