Compiler Ogre, Bullet et OgreBullet sous Linux
La compilation et l'installation de OgreBullet n'est pas toujours évidente et la page du Wiki ne mentionne une solution maladroite que pour les systèmes d'exploitation de Microsoft. Force est de constater que faire le lien entre Ogre et Bullet n'est pas une chose évidente quand on ne manie pas l'art de la compilation sur le bout des doigts ! Ce tutoriel a pour but de compléter différentes informations trouvées sur le web pour pouvoir utiliser les deux moteurs en symbiose. Dans ce tutoriel, nous verrons tout sur la compilation et l'installation de Ogre, Bullet et enfin OgreBullet.
Ce tutoriel a été testé et réalisé sous Mageia 1 32bits et 64bits. La procédure reste la même pour les deux architectures, seules les dépendances changent légèrement (comme expliqué plus bas).
$HOME : fait référence au dossier personnel /home/pseudo
Compiler OGRE
Prérequis
Paragraphe inspiré de cette page.
Avant de compiler OGRE, il est nécessaire de satisfaire ses dépendances. Il va falloir installer différents paquets (si ta distribution dispose d'un gestionnaire de paquets). Sinon, tu pourras télécharger les sources de ces dépendances et les compiler. Voici la liste des dépendances pour OGRE, les noms n'étant pas tout à fait les mêmes d'une distribution à une autre.
Distributions à paquets .DEB
Pour Ubuntu Karmic et suivants (à confirmer pour Debian et dérivés).
#Compilateur et outils de configuration sudo apt-get install build-essential automake libtool #Ensemble des dependances : > sudo apt-get install libfreetype6-dev libboost-date-time-dev \ > libboost-thread-dev nvidia-cg-toolkit libfreeimage-dev \ > zlib1g-dev libzzip-dev libois-dev libcppunit-dev doxygen \ > libxt-dev libxaw7-dev libxxf86vm-dev libxrandr-dev libglu-dev
Distributions à paquets .RPM
Pour Fedora :
#Dependances obligatoires : gcc-c++ libXaw-devel freetype-devel freeimage-devel zziplib-devel cmake #Dependances recommandees : boost-devel ois-devel Cg #Dependances optionnelles : doxygen cppunit-devel
Pour Mandriva et dérivés :
#Dependances obligatoires : gcc-c++ libxaw-devel libfreetype6-devel libfreeimage-devel libzziplib-devel cmake #Dependances recommandees : libboost-devel libOIS-devel Cg #Dependances optionnelles : doxygen libcppunit-devel
Pour Mandriva et dérivés, les paquets du type "lib..." en 64bits se trouvent en tapant "lib64..." (ex: lib64freetype6-devel). Pense à installer make si ce n'est pas déjà le cas ;-)
Autres distributions
Pour les distributions utilisant un autre système de paquets ou n'ayant pas de système de paquets, cette section est à compléter.
/!\ Extrait du fichier BuildingOgre.txt des sources /!\ Dependances obligatoires : * freetype: http://www.freetype.org Dependances recommandees : * Boost: http://www.boost.org (+) * Cg: http://developer.nvidia.com/object/cg_toolkit.html * DirectX SDK: http://msdn.microsoft.com/en-us/directx/ * FreeImage: http://freeimage.sourceforge.net * zlib: http://www.zlib.net * zziplib: http://zziplib.sourceforge.net Dependances optionnelles : * CppUnit: http://cppunit.sourceforge.net * Doxygen: http://doxygen.org * OIS: http://sourceforge.net/projects/wgois * POCO: http://pocoproject.org * TBB: http://www.threadingbuildingblocks.org
À propos de NVidia CG Toolkit
Bien que le paquet CG Toolkit soit fourni par NVidia, ils sont utiles y compris si tu possèdes une carte graphique AMD/ATI ou Intel par exemple. Il n'est pas exclusif aux cartes graphiques NVidia !
Les paquets de CG Toolkit peuvent se trouver sur http://developer.nvidia.com/cg-toolkit-archive .
Compilation de OGRE
Ce paragraphe s'appuie fortement sur cette page.
Pour la suite du tutoriel, je considèrerai que tu as installé toutes les dépendances y compris les plus optionnelles. En cas de problème, vérifie que tu les as toutes installées avant de compiler Ogre.
Télécharge les sources de OGRE pour Linux sur le site officiel (ce tutoriel utilise OGRE 1.7.3).
Décompresse l'archive et place le dossier dans un répertoire dont le chemin n'a ni espace, ni caractères accentués (dans ton $HOME par exemple) pour éviter d'éventuelles erreurs.
La compilation est en réalité une étape toute bête même si elle peut paraître complexe au début. Suis les commandes suivantes, les commentaires sont là pour t'aider à comprendre ce que tu fais. Avant de passer à l'étape qui suit, vérifie bien qu'aucune erreur n'a eu lieu.
#Decompression archive tar -xf ogre_src_v1-7-3.tar.bz2 #Entrer dans le dossier cd ogre_src_v1-7-3 #Creation dun dossier build pour stocker proprement les fichiers compiles mkdir build #Entrer dans le dossier build cd build #Preparation de la compilation avec CMake avec les fichiers du dossier parent #Installe les fichiers Samples (utiles pour les tutoriels et les tests rapides) cmake -DOGRE_INSTALL_SAMPLES=TRUE .. #Cmake reussi si sortie : #-- Configuring done #-- Generating done #-- Build files have bee written to: ... #Si aucune erreur au cours du Cmake, compiler les fichiers sources. #Option pour utiliser plusieurs coeurs du processeur: #-ji ou i = nombre de coeurs (threads) a utiliser #exemples: -j2 pour double coeur // -j4 pour quadcore... make -j2 #Si aucune erreur au cours du make, installer les fichiers #Pour Ubuntu sudo make install #Pour distributions separant le super-utilisateur root (Debian, Mandriva,...) su make install
À la fin de l'installation, vérifie où sont copiés les fichiers. Après la compilation telle que décrite juste au-dessus, ils se trouvent normalement dans /usr/local (sinon dans /usr) : /usr/local/bin pour les binaires, /usr/local/include pour les fichiers sources et /usr/local/lib pour les bibliothèques.
Note : Si cmake plante dès le début, c'est peut-être parce que tu n'as pas make installé !
Note : Si cmake sort une erreur à propos de Xrandr, installe le paquet de développement de Xrandr ! La plupart du temps, une erreur survient à cause d'une dépendance non satisfaite, plus particulièrement les paquets de développement (leur nom se termine par «dev» ou «devel»).
Installer les échantillons de Ogre (pour tutoriels et essais)
Les Samples sont normalement compilés et installés dans /usr/local/share/OGRE.
Compiler Bullet Physics
Cette partie s'inspire fortement de ce post.
Prérequis
Comme pour OGRE, le moteur Bullet a besoin de s'appuyer sur des librairies, fichiers et programmes externes. Nous allons procéder à leur installation avant de compiler Bullet. Profitons-en pour installer les dépendances de OgreBullet par la même occasion !
Ubuntu, Debian et leurs dérivés
>sudo apt-get install cmake autoconf \ > automake libtool libgl1-mesa-dev freeglut3-dev
Mandriva et dérivés
#Dependances a avoir cmake autoconf automake automake1.7 libtool libmesagl1-devel libmesaglut3-devel
Compilation de Bullet
Télécharge les sources de Bullet, prends la version avec les fins de ligne Unix (pour ce tutoriel j'utilise la version 2.77). Comme pour OGRE, décompresse l'archive et place le dossier dans un répertoire dont le chemin n'a ni espace ni caractère spécial. Puis, suis les instructions :
#Decompression archive tar -xf bullet-2.77.tgz #Entrer dans le dossier cd bullet-2.77 #Creation dun dossier build pour stocker proprement les fichiers compiles mkdir build #Entrer dans le dossier build cd build #Preparation de la compilation avec des parametres supplementaires #Pas de compilation des demos, compilation et #installation des bibliotheques supplementaires #Tout mettre sur une seule ligne! cmake -G "Unix Makefiles" -DBUILD_DEMOS=FALSE -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=RelWithDebugInfo -DBUILD_EXTRAS=ON -DINSTALL_EXTRA_LIBS=TRUE .. #Ne pas faire attention aux avertissements #-- WARNING: you are using the obsolete 'GLU' package, please use 'OpenGL' #instead #Lancer la compilation #Adapte loption -j a ton processeur make -j2 #Si aucune erreur au cours du make, installer les fichiers #Pour Ubuntu sudo make install #Pour distributions separant le super-utilisateur root (Debian, Mandriva,...) su make install
Avant de passer à l'installation de OgreBullet, vérifie où se trouvent les fichiers de Bullet. Si tout s'est bien passé, ils sont avec les fichiers de OGRE, dans /usr/local.
Faire le lien en installant OgreBullet
L'addon OgreBullet est téléchargeable directement à cette adresse. Place le dossier extrait dans un endroit sans espace ni caractère spécial.
Avant de se lancer dans la compilation, il faut modifier légèrement le fichier Collisions/src/Makefile.am. Ouvre le avec un éditeur de texte (Gedit, etc) et modifie la fin ainsi :
libOgreBulletCol_la_LIBADD = \ $(OGRE_LIBS) \ $(bullet_LIBS) \ -lConvexDecomposition
Comme nous avons déjà installé les dépendances dans Compilation de Bullet, il ne nous reste plus qu'à compiler ! Retourne dans le dossier racine, ogrebullet, là où se trouve le fichier autogen.sh. C'est ce fichier qui va nous servir à compiler cette fois.
#Changement des droits sur le fichier autogen.sh chmod 755 autogen.sh #Execution du script autogen.sh ./autogen.sh #Definition de variables d'environnement # A ADAPTER SELON L'EMPLACEMENT DE TES FICHIERS ! export CPPFLAGS="-I/usr/local/include/OGRE -I/usr/local/include" export LDFLAGS="-L/usr/local/lib/OGRE -L/usr/local/lib" export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" #Configuration de la compilation #prefix pour placer OgreBullet avec les bibliotheques et OGRE et BULLET, #change ce prefix en fonction des dossiers d'installation pour toi CXXFLAGS=-I/usr/local/include/bullet/ConvexDecomposition ./configure --prefix=/usr/local #Compilation make #Si aucune erreur au cours du make, installer les fichiers #Pour Ubuntu sudo make install #Pour distributions separant le super-utilisateur root (Debian, Mandriva,...) su make install #L'installation se termine avec ce message #Libraries have been installed in # /usr/local/lib #Mise a jour des bibliotheques partagees #Pour Ubuntu sudo ldconfig #Pour les autres distributions (Debian, Mandriva,...), en privileges root ldconfig
OGRE et Bullet peuvent maintenant interagir à l'aide de OgreBullet ! Pour tester l'installation, il n'y a qu'à faire un petit essai...
Télécharge ce fichier de démonstration et décompresse-le. Avant de le compiler, il va falloir faire quelques modifications :
- Corrige la valeur de OGRE_PATH dans le fichier Makefile pour le point d'installation de tes fichiers (théoriquement /usr/local) ;
- Modifie celle de PluginFolder de plugins.cfg pour le répertoire des bibliothèques d'OGRE (/usr/local/lib/OGRE)
- Tous les chemins de resources.cfg doivent correspondre au dossier où se trouvent les Samples et OGRE : si tu as installé depuis les sources c'est normalement /usr/local/share/OGRE/media, si tu les as installé avec le système de paquets ils peuvent être sinon dans /usr/share/OGRE/media).
- Une fois ces modifications opérées, compile en tapant "make" dans un terminal. Tu devrais obtenir un fichier exécutable et un fichier .o . Appuie sur la touche B dans le "jeu" pour jeter des cubes !
Ajouter un commentaire
Les commentaires sont verrouillés pour cet article.
0 commentaire