OgreAL

De µRV - La réalité virtuelle au département informatique
Aller à : navigation, rechercher

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 :

http://xiph.org/downloads/

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 :

OgreAlDossier.png

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*.

Liens

http://www.ogre3d.org/addonforums/viewtopic.php?t=5932