1. Introduction

OpenSceneGraph est une interface Open Source permettant la mise en place de scènes 3D. Cette API est très utilisée dans les domaines tels que la modélisation, la réalité virtuelle ou encore dans le monde du jeux vidéo. OSG est une surcouche d'OpenGL, entièrement écrit en C++ et utilisable sur des systèmes d'exploitation tels que Windows, Mac OS, Linux...

Dans ce tutoriel nous allons apprendre à installer OSG et à configurer l'environnement de travail afin de permettre le lancement d'une application de test.

2. Programmes utilisés

Nous allons commencer par traiter l'installation d'OSG sous Windows XP, l'IDE que nous configurerons est Microsoft Visual Studio 2008.

Nous verrons deux manières d'installer OSG sous Windows, la première utilisant les sources et la seconde les packages binaires.

Afin de pouvoir compiler les sources nous utiliserons aussi le programme Cmake. Enfin nous verrons l'installation sous Linux.

3. Mise en pratique

3-A. Installation des sources sous Windows XP

3-A-1. Téléchargement des sources d'OSG

Pour commencer il faut télécharger les sources d'OSG ainsi que le Dependency Package sur le site d'OpenSceneGraph. Une fois les sources récupérées dézippez-les. Ici nous les extrairons directement à la racine du disque C.

Image non disponible Attention à ne pas avoir de double dossier OpenSceneGraph-2.8.2 après avoir extrait les sources. Ce n'est pas grave en soit, mais cela peut éviter quelques problèmes.
Il faut aussi télécharger le fichier .zip dataset ici, puis l'extraire dans un répertoire quelconque.
Image non disponible

Ensuite, afin de pouvoir compiler les sources d'OSG, il faut télécharger le programme CMake ici, version 2.4.8 (la version supérieure a des problèmes avec OSG). Installez CMake avec toutes les options par défaut.

Après avoir installé CMake nous allons maintenant pouvoir compiler les sources que nous avons téléchargées afin de créer les fichiers nécessaires à Visual Studio.

Lancez CMake, vous devriez obtenir ceci :

Image non disponible

Nous allons maintenant spécifier les champs afin de pouvoir compiler les sources.

Image non disponible

Nous précisons dans « Where is the source code » le dossier qui contient les sources, c'est le dossier OpenSceneGraph-2.8.2, si vous avez extrait les sources comme vu précédemment.

Dans « Where to build the binaries », on choisit un dossier de réception pour les fichiers créés par Cmake.

Il faut donc créer un dossier, ici nommé Compile. Cliquez sur « Show Advanced Value ». Il faut enfin configurer CMake afin de générer les fichiers pour la bonne version de Visual Studio. Cliquez sur ‘'Configure'', une fenêtre apparaît, sélectionnez votre IDE dans la liste déroulante, ici ‘'Visual Studio 9 2008''.

Image non disponible

3-B. Installation des binaires sous Windows XP

3-B-1. Téléchargement des binaires d'OSG

Afin d'installer les binaires d'OSG il faut tout d'abord les télécharger sur le site.

Il faut télécharger la version Debug et Release. Dans ce tutoriel les deux .zip récupérés sont : openscenegraph-all-2.8.2-win32-x86-vc90-Debug(2) et openscenegraph-all-2.8.2-win32-x86-vc90-Release(2).

Téléchargez aussi le Sample Dataset ici.

Décompressez les trois archives puis copiez le contenu du répertoire Release dans le répertoire Debug. Lorsqu'on vous demande si vous voulez remplacer les fichiers cliquez sur « non pour tous ».

Les fichiers contenus dans le Sample Dataset permettent surtout de lancer des exemples, le répertoire dans lequel vous le mettez n'est donc pas très important. Dans ce tutoriel les répertoires d'OSG seront à la racine dans C:\ OpenSceneGraph-2.8, nous créerons un répertoire Samples dans le dossier d'OSG ou nous placerons le dossier Sample Dataset.

Image non disponible

L'installation est maintenant terminée, mais il faut configurer Windows en ajoutant des variables d'environnement, afin de permettre à Windows d'utiliser OSG.

Faites un clic droit sur Poste de Travail puis sélectionnez Propriétés.

Cliquez ensuite sur l'onglet Avancé puis sur Variables d'environnement.

Image non disponible

Créez une nouvelle variable appelée « OSG_ROOT » Dans le champ valeur, rentrez le chemin du répertoire d'OSG, ici « C:\ OpenSceneGraph-2.8.0 ».

Maintenant nous allons modifier certaines références liées à la variable OSG_ROOT. Faites de même pour les autres variables :

  • Variable : « OSG_BIN_PATH » ;
    • Valeur : « %OSG_ROOT%\bin » ;
  • Variable : « OSG_INCLUDE_PATH » ;
    • Valeur : « %OSG_ROOT%\include » ;
  • Variable : « OSG_LIB_PATH » ;
    • Valeur : « %OSG_ROOT%\lib » ;
  • Variable : « OSG_SAMPLES_PATH » ;
    • Valeur : « OSG_ROOT%\share\OpenSceneGraph\bin » ;
  • Variable : « OSG_FILE_PATH » ;
    • Valeur : « %OSG_ROOT%\samples\OpenSceneGraph-Data-2.8.0 ».
Image non disponible

Modifiez ensuite la variable d'environnement Path en ajoutant « %OSG_BIN_PATH%;%OSG_SAMPLES_PATH%; » à la fin de la valeur de la variable.

Appliquez les changements et fermez la fenêtre.

La configuration de Windows pour OpenSceneGraph est terminée. Il faut maintenant configurer Visual Studio.

3-C. Configuration de Visual Studio 2008

Afin de configurer Visual Studio nous allons créer un nouveau projet et changer ses propriétés. Pour cela, lancez Visual Studio.

Sélectionnez Fichier → Nouveau → Projet → et choisissez Nouveau Projet Vide dans C++

Image non disponible

Ici le projet s'appelle Test mais le nom n'a aucune importance.

Cliquez sur Ok.

Ajoutez ensuite un fichier .cpp à votre projet. Ici le fichier s'appelle main.cpp.

Nous allons maintenant configurer le projet Test.

Dans la barre d'outils cliquez sur Projet → Propriétés.

Sélectionnez la configuration Debug.

Dans le Menu C/C++ → Général, collez « $(OSG_INCLUDE_PATH) » à côté de Autres répertoires Includes.

Image non disponible

Ensuite dans C/C++ → Préprocesseur, collez “WIN32;_WIN32;_DEBUG” dans Définitions du préprocesseur.

Image non disponible

Dans le menu déroulant Éditeur de liens → Général, collez « $(OSG_LIB_PATH) » dans Répertoire de bibliothèques supplémentaires.

Image non disponible

Maintenant dans l'onglet Entrée ajoutez les bibliothèques que vous utilisez dans votre projet.

Ici nous ajouterons osgd.lib « osgGad.lib osgDBd.lib osgViewerd.lib osgTextd.lib osgUtild.lib OpenThreadsd.lib » dans Dépendances supplémentaires.

Image non disponible

Toutes les bibliothèques ajoutées finissent par un ‘d' car elles sont utilisées pour le mode Debug.

Maintenant que le mode Debug est configuré il ne reste plus qu'à recommencer les mêmes opérations pour le mode Release.

Il faut cependant changer la définition du préprocesseur par ‘'NDEBUG'' et enlever les ‘d' à la fin de chaque bibliothèques ajoutées dans les Dépendances supplémentaires.

Une fois ces opérations effectuées votre environnement de travail est correctement configuré. Nous allons lancer un petit programme de test afin de vérifier si OSG est bien intégré.

Copiez-collez le code suivant dans votre main.cpp :

 
Sélectionnez
#include <osgViewer/Viewer> 
#include <osgText/Text> 
osg::Node* CreateScene() 
{ 
     // Création d'un nœud et désactivation de la lumière pour celui-ci
     osg::Geode* geode = new osg::Geode(); 
     osg::StateSet* stateset = geode->getOrCreateStateSet(); 
     stateset->setMode(GL_LIGHTING,osg::StateAttribute::OFF); 

     // Création d'une projection orthographique afin d'avoir le texte aligné à l'écran
     osg::Camera* camera = new osg::Camera; 
     camera->setProjectionMatrix(osg::Matrix::ortho2D(0,512,0,512)); 
     camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF); 
     camera->setViewMatrix(osg::Matrix::identity()); 
     camera->addChild(geode); 

     // Création d'un texte et ajout au noeud
     osgText::Text* text = new osgText::Text; 
     geode->addDrawable(text); 

     // Définit les données du texte
     text->setPosition(osg::Vec3(16.f, 16.0f, 0.0f)); 
     text->setColor(osg::Vec4(1.0f, 1.0f, 0.0f, 1.0f)); 
     text->setText("Hello World"); 

     return camera; 
} 

int main(void) 
{ 
     // Construit le viewer
     osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer; 

     // Créer une fenêtre 512x512 et la positionner en 32, 32
     viewer->setUpViewInWindow(32, 32, 512, 512); 

     // Définit les données de scène que le viewer dessinera
     viewer->setSceneData(CreateScene()); 

     // Exécute la boucle principale
     return viewer->run(); 
}

Vous devriez obtenir ceci en lançant le projet :

Image non disponible

Voila l'installation d'OSG est terminée, votre environnement de travail est correctement configuré et vous allez pouvoir vous lancer dans OpenSceneGraph.

4. Aller plus loin

Si vous rencontrez des problèmes lors de l'installation ou si vous voulez approfondir certains points les sites suivant sont accessibles.

5. Remerciements

Merci jacques_jean pour les corrections.