OgreAL
Préambule
La plupart de l'activité concernant OgreAL se réalise sur son forum :
http://www.ogre3d.org/addonforums/viewtopic.php?t=5932
Installation sous Windows
Environnement et hypothèses
Nous allons effectuer une installation avec VS 2010, on va supposer qu'on a une variable d'environnement OGRE_HOME, pointant à la racine du SDK. Les tests et l'installation seront tels qu'ils fonctionneront de la même manière que les tutoriels "Setting Up An Application" du wiki de Ogre, les données seront donc en parti présentes à l’intérieur du SDK de Ogre... L'éventuelle variable d'environnement BOOST_ROOT n'est pas nécessaire, car seul le répertoire Boost, contenu dans le SDK d'Ogre3D devrait être suffisant.
Installation
Installation de OpenAL
OgreAL n'est qu'un wrapper pour OpenAL, il est donc nécessaire d'avoir installé OpenAL sur son PC!
- Tout d'abord, l'installer sur son PC aller à l'adresse suivante, puis télécharger et installer oalinst.
http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx
- Ensuite, il faut installer le SDK d'OpenAL, pour cela sur la même page, télécharger OpenAL11CoreSDK.
S'il le demande, mettre le dossier du SDK par défaut, dans Program Files. (Il est possible qu'il veuille désinstaller une première fois, accepter dans ce cas, puis relancer une deuxième fois)
- Une fois installé, il faut également mettre les outils ALUT, et dans la même liste, télécharger ALUT -> freeeALut1.1.0-bin.
Il faut ensuite dézipper ce dossier à l’intérieur du SDK d'OpenAL, pour avoir la structure du dossier suivante : OpenAL 1.1 SDK
-docs -freealut-1.1.0-bin -include -...
Il faut ensuite mettre des variables d'environnement pour OpenAL :
- OPENAL_SDK --> C:\Program Files (x86)\OpenAL 1.1 SDK\
- OPENAL_INCLUDE_DIR --> C:\Program Files (x86)\OpenAL 1.1 SDK\include
La partie OpenAL est maintenant terminée, passons à OgreAL.
SVN et variables utiles
Créer là où vous souhaitez, un dossier OgreAL. Faire un checkout, avec TortoiseSVN sur ce dossier à l'adresse
https://ogreal.svn.sourceforge.net/svnroot/ogreal/trunk/OgreAL-Eihort
Ensuite, rendez-vous à l'adresse :
et télécharger libogg-1.3.0.zip ainsi que libvorbis-1.3.2.zip.
Dézipper dans le répertoire OgreAL, et renommer les dossiers libogg-1.3.0 par ogg et libvorbis-1.3.2 par vorbis.
Finalement cela devrait ressembler à ça :
Nous allons ensuite mettre de nouvelles variables d'environnement :
- OGRE_AL_HOME --> à l'endroit de la capture d'écran (nous allons ensuite utiliser abusivement cette variable d'environnement pour décrire les autres variables d'environnment)
- OGG_INCLUDE_DIR --> <OGRE_AL_HOME>\ogg\include
- VORBIS_INCLUDE_DIR --> <OGRE_AL_HOME>\vorbis\include
Ensuite aller dans \ogg\win32\VS2010 et pour les deux projets visual studio(libogg_dynamic et libogg_static), compiler en debug et en release.
Ensuite aller dans \vorbis\win32\VS2010 et compiler les deux solutions (vorbis_static et vorbis_dynamic) en mode debug et en mode release.
Configuration du projet
Lancer par la suite le projet OgreALVC9.sln.
NB : Le problème avec ce projet, c'est que c'est un projet VS 2008, et donc il faudra reconfigurer une partie de sa configuration.
Pour cela, dans l'assistant de conversion de VS, faire deux fois suivant, puis terminer.
Sélectionner tous les projets, sauf OgreALVC9 (et la solution) et cliquez-droit et faire "Décharger le projet".
Aller dans les propriétés du projet OgreALVC9.
- Sous Propriétés de configuration, répertoires VC++ , répertoires include, et mettre les chemins suivants (vous pouvez tout remplacer et mettre ce qui suit) :
$(OGRE_HOME)\boost_1_44;$(VORBIS_INCLUDE_DIR)\;$(OGG_INCLUDE_DIR)\;$(OGRE_HOME)\include\OGRE\;$(IncludePath)
- Sous propriétés de configuration, éditeur de lien, général, répertoires de bibliothèques supplémentaires mettre ceci (vous pouvez tout remplacer et mettre ce qui suit) :
$(OGRE_HOME)\boost_1_44\lib\;$(OGG_INCLUDE_DIR)\..\win32\VS2010\Win32\Debug;$(OGRE_SRC)/lib;$(OGRE_HOME)/lib/debug;$(OPENAL_SDK)/libs/Win32;$(BOOST_ROOT)/lib;$(VORBIS_INCLUDE_DIR)\..\win32\VS2010\Win32\Debug;../../ogg/win32/Debug/;../../vorbis/Win32/Debug/;../../vorbis/win32/VorbisFile_Static_$(Configuration);%(AdditionalLibraryDirectories)
- Sous propriétés de configuration, éditeur de lien, entrée, dépendances supplémentaires, mettre ceci (vous pouvez tout remplacer et mettre ce qui suit) :
OgreMain_d.lib;OpenAL32.lib;libvorbis_static.lib;libvorbisfile_static.lib;libogg_static.lib;%(AdditionalDependencies)
- Sous Editeur de lien, général, fichier de sortie, remplacer ce qui est écrit par :
$(OutDir)OgreAL_d.dll
La compilation devrait maintenant réussir.
Sous le dossier lib\Debug, vérifier la présence des fichiers ogreALVC9.dll et ogreALVC9.lib.
Hello world
Maintenant, créer un nouveau projet Ogre3D, comme le tuto du wiki de Ogre (Setting Up An Application).
Nous allons jouer un son, en boucle à l'ouverture de l'application.
Dans le SDK de Ogre, chercher les fichiers ressources.cfg et ressources_d.cfg, et dans ceux-ci rajouter sous [Popular]
FileSystem=../../media/Audio
et ajouter sous le dossier media, un nouveau dossier "Audio".
Dans celui-ci rajouter le fichier roar.wav utilisé pour les samples d'OgreAL.
Ouvrir le projet Ogre3D créé, et rajouter les configurations suivantes :
Propriétés de configuration --> C/C++ --> répertoires Include :
$(VORBIS_INCLUDE_DIR);$(OGG_INCLUDE_DIR);$(OPENAL_INCLUDE_DIR);$(OGRE_AL_HOME)\include\;
Propriétés de configuration --> éditeur de lien --> Répertoires de bibliothèques supplémentaires, rajouter :
$(OGRE_AL_HOME)\lib\debug\;
</pre>
Propriétés de configuration --> éditeur de lien --> entrée --> Dépendances supplémentaires, rajouter :
OgreALVC9.lib;
Enfin, dans le OgreSDK_vc10_v1-7-3\bin\debug, copier la dll OgreALVC9.dll.
Dans le projet Visual, écrire au niveau de la fonction createScene:
void TutorialApplication::createScene(void)
{
soundManager = new OgreAL::SoundManager();
OgreAL::Sound *sound = soundManager->createSound("Roar", "roar.wav", true);
Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
headNode->attachObject(sound);
sound->play();
}
Ajouter également un SoundManager au TutorialApplication :
class TutorialApplication : public BaseApplication
{
public:
TutorialApplication(void);
virtual ~TutorialApplication(void);
OgreAL::SoundManager *soundManager;
protected:
virtual void createScene(void);
};
Dans tutorialApplication.h, faire les includes suivants :
#include "BaseApplication.h"
#include "OgreAL.h"
#include "OgreALListener.h"
#include "OgreALSoundManager.h"
Le projet devrait maintenant se lancer en jouant un son en boucle.
Liens
- Le forum d'OgreAL :
http://www.ogre3d.org/addonforums/viewtopic.php?t=5932
- Le lien concernant l'installation d'OgreAL à partir, du SVN avec VisualStudio, mais qui ne marche pas, car le dépôt est maintenant trop vieux :
http://www.ogre3d.org/addonforums/viewtopic.php?f=10&t=3293
- Le lien concernant l'installation sous Windows, avec MinGW :
http://www.ogre3d.org/addonforums/viewtopic.php?f=10&t=3937
- Un lien concernant l'installation avec VS2005
http://www.deitel.com/Books/C/CHowtoProgram6e/OGREInstallationInstructions/tabid/3152/Default.aspx
Les installations qui n'ont pas marchés
- Installation avec MinGW
- Installation via code::blocks
Installation sous Linux
Tout en un Ubuntu
(Attention à vérifiez que chaque étape fonctionne individuellement)
#OpenAL
mkdir OpenAL && cd OpenAL
wget http://connect.creativelabs.com/openal/Downloads/openal-soft-1.13.tbz2
tar -xjf openal-soft-1.13.tbz2
cd openal-soft-1.13/build
cmake ..
make
sudo make install
#Autre dépendances
sudo apt-get install libvorbis-dev
sudo apt-get install libogg-dev
sudo apt-get install libtool
sudo apt-get install automake
#OgreAL
cd ../../..
mkdir OgreAL && cd OgreAL
svn co https://ogreal.svn.sourceforge.net/svnroot/ogreal/trunk/OgreAL-Eihort .
chmod +x ./bootstrap
./boostrap
./configure
make
sudo make install
#LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
cd Demos/bin
./Basic
Téléchargement et compilation OpenAL
Récupérez la dernière version du openal-soft pour Linux sur la page suivante : http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx
Téléchargement et compilation OgreAL
Récupérer la dernière version de OgreAL des dépôts
./boostrap
./configure
make
make install
Pensez à vérifier que la bibliothèque *libOgreAL.so.(0)* ont bien été créées dans le dossier */usr/local/lib* ou un équivalent (voir les trace du make install)
Pour tester les démos
cd Demos/bin
./Basic
#Vérifiez que cela fonctionne bien avant de continuer.
Si vous obtenez l'erreur suivante :
./Basic: error while loading shared libraries: libOgreAL.so.0: cannot open shared object file: No such file or directory
Ajouter le dossier de la bibliothèques dans la variable d'environnement qui cherchent les bibliothèques à l'exécution :
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
Si vous obtenez un problème de syntaxe vers la ligne 14XXX, sur des fonctions de recherche de packages, installez pkg-config, avec la commande suivante :
sudo apt-get install pkg-config
Autrement dit, vous pouvez tenter :
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
./Basic
Autres dépendances
Sous Ubuntu les dépendances dû à OGG et Vorbis sont dans les dépôts :
- libogg-dev* et *libvorbis-dev*.