Aller au contenu principal

Tutoriel Ogre 3D

27 février 2010
tags: , , ,

J’ai trouvé d’excellents tutoriels pour Ogre sur cette page :
http://ogre3d.fr/wiki/Accueil

Cette page qui, si je continue à m’amuser avec ogre 3D, deviendra probablement une de mes visites les plus régulières.

Le tutoriel est facile à suivre, seulement, il y a un ou deux points obscurs.

Les liens que je vais mettre sont à adapter selon votre installation (je vais les mettre de manière à coïncider avec mon précédent billet). Concernant mon précédent billet, j’y ai apporté une petite correction. Dans la partie finalisation, j’ai ajouté sudo ln -s /usr/local/lib/libCEGUI* /usr/lib.

Donc sur la page donnée plus haut, vous allez sur le tutoriel n°1. On va juste faire fonctionner le cas de base (afficher une page noire). Le reste est très bien détaillé.

Pré-requis, ne pas avoir effacé le répertoire ogre dans son home, lors de l’installation.

On récupère le code donné dans l’exemple et je le nomme tut1.cpp :

#include "ExampleApplication.h"

class TutorialApplication : public ExampleApplication
{
protected:
public:
TutorialApplication()
{
}

~TutorialApplication()
{
}
protected:
void createScene(void)
{
}
};

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include « windows.h »

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char **argv)
#endif
{
// Create application object
TutorialApplication app;

try {
app.go();
} catch( Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(), « An exception has occured! », MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
fprintf(stderr, « An exception has occured: %s\n »,
e.getFullDescription().c_str());
#endif
}

return 0;
}

Ensuite, il faut le compiler en lui indiquant où trouver ExampleApplication.h.
Celui-ci se trouve dans le répertoire où vous avez décompresser l’archive ogre-v1-7-0RC1.tar.bz2, chez moi c’est dans /home/boutor/ogre/Samples/Common/include.

Il faudra donc ajouter -I/home/boutor/ogre/Samples/Common/include dans la ligne de compilation.
Ma commande compilation est la suivante :
g++ tut1.cpp -o tut1 `pkg-config OGRE –libs –cflags` `pkg-config OIS –libs –cflags` `pkg-config CEGUI –libs –cflags` -I/home/ben/ogre/Samples/Common/include

Sous forme de makefile, ça donne:
## Compiler and linker settings
DEFINES = -g
LIBS = OGRE CEGUI OIS
CXX = g++
CXXFLAGS = $(shell pkg-config --libs --cflags $(LIBS)) $(DEFINES)
DEPENDENCIES = -I/home/ben/ogre/Samples/Common/include

## Files to include in yourApp project
SAMPLEAPP = tut1.cpp

## Compilation and linking occurs here
all: tut1
$(CXX) $(CXXFLAGS) $(SAMPLEAPP) -o tut1 $(DEPENDENCIES)

tut1: $(SAMPLEAPP)

## Clean up
clean:
rm -f $(SAMPLEAPP) tut1

Bon, je ne suis pas très fort en makefile… 🙂
N’hésitez pas à proposer mieux…

Maintenant, il s’agit de voir si ça marche!
Dans le répertoire courant, il manque deux fichiers cfg : plugins.cfg et resources.cfg. Leurs contenus sont expliqués dans le tutoriel ogre3d.fr.
Ceux-ci une fois de plus sont trouvables dans le répertoire ogre et configurer comme il faut pour votre machine.
On peut les récupérer dans /home/boutor/ogre/bin:

cp /home/boutor/ogre/bin/plugins.cfg ./
cp /home/boutor/ogre/bin/resources.cfg ./

Et voilà, plus qu’à exécuter pour voir un programme hallucinant…. Ha ben, non!
An exception has occured: OGRE EXCEPTION(7:InternalErrorException): Could not load dynamic library ../lib/RenderSystem_GL. System Error: ../lib/RenderSystem_GL.so: cannot open shared object file: No such file or directory in DynLib::load at /home/boutor/ogre/OgreMain/src/OgreDynLib.cpp (line 91)

Il faut tout de même éditer plugins.cfg et remplacer :
PluginFolder=../lib
par :
PluginFolder=/usr/local/lib/OGRE

Il doit probablement aussi être possible d’améliorer les liens dans ressources.cfg… Mais je n’ai pas encore creusé le sujet.

La fenêtre de lancement d'OGRE 3D

La fenêtre de lancement d'OGRE 3D

Bon on relance le programme… et?!? Ça marche.
Vous devez obtenir la fenêtre ci-dessous.

Vous choisissez les paramètres selon votre convenance et le programme vous affiche un bel écran noir.

Pour finir le programme, bouton échappe.

Voilà, vous avez fait la moitié du premier tutoriel.

Je vous laisse à la suite.

J’ai lu à plusieurs endroits, que pour connaître Ogre, il faut savoir s’en servir sans les inclusions ExempleApplication.h. Mais le but de ce tutoriel est plus de voir si l’installation d’Ogre fonctionne. Je conseille de faire la suite du tutoriel, pour au moins faire apparaître un objet 3D.

Edit: Je serais absent de ce blog pour 8 jours. Soyez patient pour les commentaires et les réponses que je peux apporter (pas sûr, ça).

One Comment leave one →
  1. Xarkam permalink
    27 février 2010 15 h 12 mi

    Salut,

    pour ton information, le jeu Torchlight a été réalisé avec Ogre3D.

Laisser un commentaire