J'ai trouvé intéressant le projet osgModeling qui est une librairie de modélisation pour OpenSceneGraph(OSG). Elle permet de générer différentes types de surfaces comme les extrusions, révolutions, lofts, Béziers & NURBS.
Une des caractéristiques importantes de cette librairie est d'aider l'implémentation de polygones multiples ainsi que la subdivision de polygones.
OpenGL
Wednesday, April 15, 2009
OpenSceneGraph (ou OSG pour les intimes) est une librairie graphique extraordinaire il s'agit à ma connaissance du scene graph open source le plus populaire et abouti ! Utilisé dans de nombreux autres projets commerciaux ou libre (comme par exemple le gaming & simulation engine : delta 3d) c'est vraiment un outil très puissant que j'étudie depuis un certain temps.
L'installation et la compilation de la librairie sous linux est relativement simple à partir du code source (très beau travail avec cmake), il faut installer au préalable quelques dépendances . Le cas échéant il y a aussi des paquets binaires tout prêts (typiquement pour les OS Microsoft).
Côté documentation, il y a un excellent "Quick Start Guide" de Paul Martz qui est disponible gratuitement sous une forme électronique mais bon comme souvent dans le monde OpenSource il ne faut pas hésiter à regarder le code source des nombreux exemples. Je propose ci après ce qui est probablement le plus basique des exemples histoire de vous mettre le pied à l'étrier :
/*******************************************************
** cgilosg01_drawmeacow.cpp
** the most basic and simplistic as possible example
** of using openscenegraph to draw a beautiful cow
********************************************************/
#include <iostream>
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <osgViewer/ViewerEventHandlers>
#define MY_MODEL "cow.osg"
int main (int argc, char** argv)
{
osgViewer::Viewer viewer;
// Let's load a very nice model
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFile(MY_MODEL);
if (!loadedModel) {
std::cerr << "Problem opening the model " << MY_MODEL << "\n";
exit (1);
}
viewer.setSceneData(loadedModel.get());
viewer.realize();
return viewer.run();
}
Pour compiler cet exemple sous Linux il suffit d'utiliser g++ comme suit :g++ -losgDB -losgViewer cgilosg01_drawmeacow.cpp -o cgilosg01_drawmeacow
il vous faut ajouter dans votre répertoire courant le fichier cow.osg qui se trouve dans le fichier de données exemples OpenSceneGraph-Data-2.8.0.zip ou mieux il suffit de fixer une variable d'environnement OSG_FILE_PATH pour la faire pointer sur l'endroit ou vous avez décompressé le fichier ci-dessusexport OSG_FILE_PATH='/usr/local/share/osg/OpenSceneGraph-Data/'
bonne découverte !
Publié par
Lao Tseu
à l'adresse
9:05 AM
0
commentaires
Libellés : 3D, exemple, openscenegraph, osg
