• 4 heures
  • {0} Facile|{1} Moyenne|{2} Difficile

Mis à jour le 06/12/2013

Introduction à Ogre 3D

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Avant de commencer à plonger nos mains dans le code, je vous propose une petite introduction à Ogre, pour que vous fassiez un peu plus connaissance. :D

Un moteur 3D ?

Qu'est-ce qu'un moteur 3D ?

Utilisation

Tout d'abord, il est important de cadrer précisément ce cours par rapport au sujet qu'il aborde. En effet, Ogre est un moteur 3D, je pense que vous l'avez compris. :D Mais qu'est-ce qu'un moteur 3D ? À quoi ça sert ?

Un moteur 3D est une API (i.e. il fournit un ensemble de fonctions) qui permet à son utilisateur, en l'occurrence vous, de représenter des objets dans un monde en trois dimensions. (On s'en serait douté en même temps. ^^ ) Le moteur 3D est un intermédiaire entre vous et les librairies graphiques de plus bas niveau comme DirectX ou OpenGL, qui permet donc de se passer des aspects les plus complexes de la gestion d'objets 3D. Le moteur gère lui-même les objets dans la scène et vous donne accès à des fonctions pour les manipuler et les afficher de façon optimale.

Généralement, un moteur 3D coûte très cher à développer, c'est pourquoi on ne crée pas un moteur 3D pour chaque jeu ! Le renouvellement d'un moteur sert généralement à prendre en compte de nouvelles fonctionnalités des librairies graphiques pour offrir plus de possibilités aux développeurs.

Cependant, il ne faut pas confondre moteur 3D (ou moteur graphique) et moteur de jeu, voire moteur physique par exemple. En effet, un moteur 3D ne contient pas de fonctions pour gérer les collisions entre les objets ni pour les entrées utilisateurs. Ceci sera fait à l'aide de bibliothèques différentes à intégrer au programme, mais ce n'est en aucun cas Ogre qui gérera ça.

Pour résumer, voici par exemple ce qu'Ogre nous permettra de faire :

  • afficher des personnages, bâtiments, paysages en 3D ;

  • gérer les lumières et les ombres ;

  • utiliser une ou plusieurs caméras ;

  • créer des effets de brouillards, flammes, fumées...

En gros, cela concerne tout ce que l'on voit à l'écran, tout ce qui est en rapport avec le rendu.

Au-delà de ça, Ogre s'occupe aussi de gérer la fenêtre de l'application en elle-même, c'est-à-dire le cadre avec les boutons pour agrandir ou fermer la fenêtre, en haut à droite. Sachez que même si vous affichez votre application en plein écran, il faut s'occuper de cet aspect avec le système d'exploitation, et Ogre permet de gérer cela.

Les connaissances requises

Un moteur 3D, comme tout programme, peut être codé dans de nombreux langages différents. Les plus populaires sont cependant le C, le C++ et plus récemment le C#, le langage utilisé par le framework XNA de Microsoft. Ogre est programmé en C++, il est donc indispensable d'avoir de bonnes bases dans ce domaine avant de s'attaquer à ce moteur. Vous aurez en effet suffisamment à faire pour apprendre le fonctionnement d'Ogre sans avoir besoin de vous embarrasser d'apprendre le C++ en parallèle.

De plus, comme un moteur 3D, c'est beaucoup de géométrie dans l'espace, il est quasiment indispensable d'avoir des connaissances mathématiques d'un niveau de première / terminale scientifique pour assimiler plus rapidement les notions. Les mathématiques supérieures constituent un avantage indéniable, même s'il est possible d'assimiler les principes avec un peu de persévérance.

Ce tutoriel conserve bien sûr l'objectif de partir du plus faible niveau possible (après tout, on est des Zéros dans l'âme :lol: ) mais ces bases vous éviteront de tourner et retourner certains points dans tous les sens. Vous voilà prévenus !

Un peu d'histoire

Le projet Ogre est né en 1999 de l'esprit d'un certain Steve Streeting, programmeur de talent connu sous le pseudonyme de sinbad et qui a eu l'idée de construire un moteur 3D indépendant de la plate-forme et de l'API utilisées (Direct3D ou OpenGL). Le projet est rapidement créé sur SourceForge au début de l'année 2000 et grossira progressivement sous la supervision de sinbad. Celui-ci se retire en avril 2010 pour des raisons de santé mais reste un contributeur actif.

La version 1.0.0 du moteur sort en février 2005 sous le nom de code AzaThot. Les versions 1.x se succèdent au fil des ans et de façon régulière, toujours avec un nom de code désignant une créature mystique.
En avril 2010 est sortie la version 1.7.1, dénommée Cthugha, qui en profite pour changer de licence et passer en MIT en lieu et place de la LGPL utilisée jusqu'alors. Depuis novembre 2010, la révision 1.7.2 est disponible et c'est donc celle que nous utiliserons ici.

La communauté anglophone autour d'Ogre est plutôt active et le site officiel regorge de contributions diverses, tandis que la communauté francophone est plus restreinte.

Pourquoi Ogre et pas un autre ?

Ah, difficile question que celle-ci ! Je vais essayer d'y répondre de la façon la plus complète possible. :D

Tout d'abord, Ogre est un projet open source, ce qui signifie que vous pouvez avoir accès aux sources du moteur et regarder comment il a été codé (bon, je vous préviens, ce n'est pas évident :p ), mais aussi que vous pouvez vous le procurer gratuitement, ce qui est déjà une condition sine qua non lorsque l'on part de zéro.

Ensuite, il y a encore beaucoup de moteurs gratuits. Je ne peux pas vraiment parler en détails de ceux-ci, sachant que je n'ai testé qu'Ogre. Cependant je me suis beaucoup documenté afin de faire le meilleur choix possible, ce qui a fait ressortir deux moteurs principaux : Irrlicht et Ogre.

Voici ce qui ressort le plus souvent des communautés.

Irrlicht est plus rapide à prendre en main qu'Ogre, notamment au niveau de l'installation, pas forcément bien documentée pour ce dernier en plus d'être souvent tortueuse, mais aussi de l'utilisation, plus simple. En revanche, Ogre est beaucoup plus complet, sachant qu'il y a beaucoup plus de classes disponibles (je ne les ai pas comptées, mais il y en a environ trois fois plus).

Les deux moteurs ont chacun leur public, dépendant des goûts. En ce qui me concerne, j'ai vu beaucoup plus de projets commerciaux basés sur Ogre que sur Irrlicht.
Ce qui est certain, c'est qu'Ogre n'est pas évident à apprendre, mais il est très bien documenté, et sa communauté est, comme je l'ai dit plus haut, très active. Sa panoplie de logiciels annexes est assez conséquente, on retrouve notamment des extensions pour l'export de fichier à partir de logiciels de modélisation ou bien un logiciel de création de scène plutôt bien fait par exemple, qui fera l'objet d'un chapitre de ce cours.

Voilà : je pense que si vous êtes motivés, Ogre est largement à votre portée. Le fonctionnement de base du moteur n'est pas si compliqué une fois qu'on l'on se penche vraiment dessus, et il est surtout très puissant. ^^

Téléchargement et installation

Téléchargement

Comme Ogre est un projet open source, il est disponible directement sur le site de SourceForge. Néanmoins, vous pouvez y accéder en passant par le site officiel, sur lequel vous trouverez notamment la documentation complète de cette (très) vaste bibliothèque.

Image utilisateur

À l'heure où j'écris ces lignes, la dernière version stable est la 1.7.2, que vous pouvez télécharger en cliquant sur le lien correspondant à votre plate-forme : Visual Studio si vous êtes sous l'IDE de Microsoft, sinon vous trouverez les versions Mac OS X pour les possesseurs de machine Apple et MinGW si vous utilisez Code::Blocks par exemple.

Concernant Linux, la démarche d'installation au chapitre suivant inclut le téléchargement des paquets nécessaires, vous pouvez donc y passer directement.

Enfin, pour chaque plate-forme, si vous êtes des habitués de la méthode, il est possible de compiler vous-mêmes les sources après les avoir téléchargées ici.

Installation

Windows

Une fois que vous avez téléchargé le fichier exécutable, exécutez-le et choisissez un répertoire d'extraction. En ce qui me concerne je le place généralement dans C:/OgreSDK, mais vous êtes libres de choisir un autre répertoire. Notez bien le chemin que vous aurez choisi puisque nous en aurons besoin pour configurer nos projets et copier les bibliothèques nécessaires.

Il est à noter que contrairement aux précédentes versions, la 1.7.2 n'a pas d'installation à proprement parler, elle ne fait que décompresser le dossier contenant les fichiers nécessaires au fonctionnement d'Ogre. Ne soyez donc pas surpris si la méthode est un peu inhabituelle.

Mac OS X

Double-cliquez sur le fichier .dmg téléchargé, ce qui doit ouvrir une fenêtre avec un dossier OgreSDK. Il vous suffit de le placer à l'endroit où vous voulez installer Ogre, il est recommandé de choisir le dossier /Developer/SDKs/ qui est le plus approprié.

Vous avez finalement bel et bien décidé de vous attaquer à Ogre ? Téléchargé et décompressé vos fichiers ?

Parfait ! Passons tout de suite à la configuration de notre premier projet !

Exemple de certificat de réussite
Exemple de certificat de réussite