Skip to main content

History: Paging Scene Manager Installation

Source of version: 4 (current)

Copy to clipboard
            {maketoc}

!Sample Maps
# Download the sample maps as [http://tuan.kuranes.free.fr/datasrcs.zip|datasrcs.zip] from [http://tuan.kuranes.free.fr/Ogre.html|Tuan's web site].
# Extract the directory __datasrcs__ that you find in your __datasrcs.zip__ into the __PLSM/Samples/media/paginglandscape2__ directory that you will create in the next section.
# Once you have extracted them, you can enable the terrains in paginglandscape2.cfg and maptools.cfg if needed. CVS users: You are required to do this.

!Prebuilt Demo Binaries
* Download the binaries [http://tuan.kuranes.free.fr/Ogre.html|here] and extract all files into a directory. It doesn't matter how you call it, but here we shall call it the __PLSM__ directory.
* Download and extract the Sample Maps as described in the previous section. Now you should have several *.raw and *.png textures in this directory: __PLSM/Samples/Media/paginglandscape2/datasrcs/__.
* Change the __resources.cfg__ in the base directory to the following:
{CODE(wrap="1", colors="ini")}# Resource locations to be added to the 'boostrap' path
# This also contains the minimum you need to use the Ogre example framework
[Bootstrap]
Zip=./OgreCore.zip

# Resource locations to be added to the default path
[General]
FileSystem=./
FileSystem=./fonts
FileSystem=./programs
FileSystem=./scripts
FileSystem=./textures
FileSystem=./models
FileSystem=./overlays
FileSystem=./particle
FileSystem=./gui

[PLSM2]
FileSystem:=./Samples/media/paginglandscape2/
FileSystem:=./Samples/media/paginglandscape2/terrains
FileSystem:=./Samples/media/paginglandscape2/materials\textures
FileSystem:=./Samples/media/paginglandscape2/models
FileSystem:=./Samples/media/paginglandscape2/overlays
FileSystem:=./Samples/media/paginglandscape2/materials
FileSystem:=./Samples/media/paginglandscape2/materials/scripts
FileSystem:=./Samples/media/paginglandscape2/materials/programs
FileSystem:=./Samples/media/paginglandscape2/datasrcs{CODE}
* Run __MapSplitter.exe__ to generate data.
* Change the __resources_plsm2.cfg__ in the base directory to this:
{CODE(wrap="1", colors="ini")}# Resource locations to be added to the 'boostrap' path
# This also contains the minimum you need to use the Ogre example framework
[Bootstrap]
Zip=./OgreCore.zip

# Resource locations to be added to the default path
[General]
FileSystem=./
FileSystem=./fonts
FileSystem=./programs
FileSystem=./scripts
FileSystem=./textures
FileSystem=./models
FileSystem=./overlays
FileSystem=./particle
FileSystem=./gui

[PLSM2]
FileSystem:=./Samples/media/paginglandscape2/
FileSystem:=./Samples/media/paginglandscape2/terrains
FileSystem:=./Samples/media/paginglandscape2/materials\textures
FileSystem:=./Samples/media/paginglandscape2/models
FileSystem:=./Samples/media/paginglandscape2/overlays
FileSystem:=./Samples/media/paginglandscape2/materials
FileSystem:=./Samples/media/paginglandscape2/materials/scripts
FileSystem:=./Samples/media/paginglandscape2/materials/programs
FileSystem:=./Samples/media/paginglandscape2/datasrcs{CODE}
* In the file __PLSM\Samples\Media\paginglandscape2\paginglandscape2.cfg__ change the first line of the file to be 
{CODE(wrap="1", colors="ini")}DefaultMap=European_Alpes{CODE}
* Run Demo_PagingLandScape2.exe from PLSM directory. Use the ((Paging Scene Manager|#Demo Application|demo controls)) to move around. PLSM2 should be succesfully installed now.

__WARNING:__ do not use any of the dll's from the binary pack to compile/run your own plsm2 applications, use the source package.

!Ogre SDK Compatible Install
First of all you need the stable Ogre SDK from [http://www.ogre3d.org/index.php?option=com_remository&Itemid=74&func=selectcat&cat=1|ogre website].
* Unpack/install the SDK

If you want stable, Ogre 1.4 SDK compatible plsm2. Download source from [http://tuan.kuranes.free.fr/Ogre.html|here]

!!VC9.0 + Ogre1.6RC1 Install
* Download/checkout the [http://ogreaddons.svn.sourceforge.net/viewvc/ogreaddons/trunk/paginglandscape/|PLSM2 Source]
* Unpack/move the PLSM2 source so it resides ''OgreSDK-Directory''\paginglandscape
* Open the plsm2_vc8 with Visual C++ 2008
* Right click on the __Plugin_PagingLandScapeSceneManager2'''-project and select properties
* On ''Configuration'', select "All the configurations" so both "Release" and "Debug" modes are configured
* Goto ''Configuration Properties > C/C++ > __General__'' and add ".", "''OgreSDK-Directory''\include" and "''OgreSDK-Directory''\include\opt" at the Additional Include Directories option
* Goto ''Configuration Properties > Linker > __General__'' and add "''OgreSDK-Directory''\lib\opt", "." and "''OgreSDK-Directory''\lib" at the Additional Library Directories
* Goto ''Configuration Properties > Linker > __Input__'' and add "Plugin_OctreeSceneManager_d.lib" at the Additional Dependencies option
* Click Ok
* Right click on the ''Plugin_PagingLandScapeSceneManager2__-project select "Project Only" and the "Build Only..."-option

!!VC8.0 Install
You will need :
* Get Paging landscape 2 source from [http://tuan.kuranes.free.fr/Ogre.html|here].
* Extract it so that paginglandscape is in the same directory as OgreSDK.
* build the plsm2 Solution. (the _SDK.sln)

!!VC7.1 Install
You will need :
* Get Paging landscape 2 source from [http://tuan.kuranes.free.fr/Ogre.html|here].
* Extract it so that paginglandscape is in the same directory as OgreSDK.
* build the plsm2 Solution. (the _SDK.sln)

!!Linux Install
In ogreaddons/paginglandscape/ directory:
* execute bootstrap && ./configure && make && su && make install
* edit Tools/Common/bin/maptools.cfg and Tools/Common/resources.cfg according to you directory structure. (mainly where are the Media)
* cd Sample/Common/bin 
* edit maptools.cfg and resources.cfg according to you directory structure.(mainly where are the Media)
* ./Mapsplitter
* Resulting map splitted may be in directory no listed in resources.cgf. add them. (or uncomment them.)
* ./PagingLandScape

!Ogre CVS HEAD (Dagon) Compatible Install
If you want latest PLSM2 code, CVS ogre HEAD compatible (Dagon). 
Use plsm2 CVS.

!!Visual Studio Install
!!!Install
!!!!VC 7.1 & VC8 Install
You will need :
* latest Ogre CVS update.
* \ogreaddons\paginglandscape from Ogre CVS.

If compiling against CVS :
* build the Ogre Solution. (the _CVS.sln)

!!!Run
# Now you can run demo_paginglandscape2.exe from Samples/common/Debug or Samples/common/Release

!!Linux Install
In ogreaddons/paginglandscape/ directory:
* execute bootstrap && ./configure && make && su && make install
* edit Tools/Common/bin/maptools.cfg and Tools/Common/resources.cfg according to you directory structure. (mainly where are the Media)
* cd Sample/Common/bin 
* edit maptools.cfg and resources.cfg according to you directory structure.(mainly where are the Media)
* ./Mapsplitter
* Resulting map splitted may be in directory no listed in resources.cgf. add them. (or uncomment them.)
* ./PagingLandScape

!!!Subsection
If the above method didn't work try this.

I'm a newbie Ogre & C++ user so what I'm about to describe may not be by the book, some may not be neccessary but at the very least it did install a working system. Hopefully somebody with more experience will correct my errors.
If you haven't already done so you need to download Ogre & Paginglandscape from CVS. Copy Paginglandscape into the same directory where you unpacked Ogre, eg. /home/someone/Ogre/ogrenew & /home/someone/Ogre/paginglandscape.
Install Ogrenew with the usual bootstrap, ./configure&&make&&make install routine. I like to use checkinstall ( [http://asic-linux.com.mx/~izto/checkinstall/] ) as this keeps track of all the files and builds a package for your system & installs that, which is an easy way to keep your box tidy.

a) In /paginglandscape/configure.in,
below "AM_CONFIG_HEADER(config.h)"
add:-
{MONO()}dnl Next line added
 AC_LANG_CPLUSPLUS
{MONO}
above the "AC_CHECK_LIB" statements
add:-
{MONO()}dnl Next line added
 PKG_CHECK_MODULES(OGRE, [OGRE >= 1.2]){MONO}
below the "AC_CHECK_FUNC" statements
add:-
{MONO()} dnl added checks
 AC_CHECK_FUNCS([floor])
 AC_CHECK_FUNCS([memset])
 AC_CHECK_FUNCS([pow])
 AC_CHECK_FUNCS([sqrt])
 AC_CHECK_HEADERS([malloc.h])
 AC_CHECK_HEADERS([sys/param.h])
 AC_C_CONST
 AC_FUNC_MEMCMP
 AC_HEADER_STDBOOL
 AC_PROG_RANLIB
 AC_TYPE_SIZE_T
 AC_C_INLINE
 dnl end of added checks{MONO}
above the "dnl Detect endianness" statement
add:-
{MONO()} dnl Next 2 lines added
 AC_SUBST(OGRE_CFLAGS)
 AC_SUBST(OGRE_LIBS){MONO}

b) In paginglandscape/Tools/MapSplitter/Makefile.am
add a new line:-
{MONO()} LDADD = @OGRE_LIBS@{MONO}
c) In paginglandscape/Tools/MapSplitter/src/Makefile.am.
 In the line reading "MapSplitter_LDADD = -lOgreMain"
add $(OGRE_LIBS) so that it reads
{MONO()} MapSplitter_LDADD = -lOgreMain $(OGRE_LIBS){MONO}
d) In paginglandscape/Samples/PagingLandScape2/src/Makefile.am.
In the line reading "PagingLandScape2_LDADD = $(top_srcdir)/PlugIns/PagingLandScape2/src/Plugin_PagingLandScape2.la"
add $(OGRE_LIBS) so that it reads
{MONO()}PagingLandScape2_LDADD = $(top_srcdir)/PlugIns/PagingLandScape2/src/Plugin_PagingLandScape2.la $(OGRE_LIBS){MONO}
e) Copy ExampleApplication.h & ExampleFrameListener.h from ogrenew/Samples/Common/include to paginglandscape/Samples/Common/include
f) In paginglandscape/Plugins/PagingLandScape2/src/OgrePagingLandScapeAxisAlignedBoxSceneQuery.cpp.

add the following if they are not already included:-
{CODE(wrap="1", colors="c++")} #include "OgrePagingLandScapeTile.h"
 #include "OgrePagingLandScapePage.h"
 #include "OgrePagingLandScapePageManager.h"
 #include "OgrePagingLandScapeData2D.h"{CODE}
f)Make Bootstrap excutable then do Bootstrap, ./configure, make etc.

Check that everything installed Ok by looking in /usr/local/include for the OGRE & PAGINGLANDSCAPE directories and in /usr/local/lib/OGRE for the PagingLandScape2 libraries.

g) Follow the instructions at [http://tuan.kuranes.free.fr/Ogre.html] for downloading and installing datasrcs.zip.

h) Find resources.cfg in paginglandscape/Samples/Common/bin and rename it to resources_plsm2.cfg then open it in your favourite text editor and change the default paths according to your setup.
 For example, for the setup described here:-
{CODE(wrap="1", colors="ini")} [General]
 FileSystem=../../../../ogrenew/Samples/Media
 FileSystem=../../../../ogrenew/Samples/Media/fonts
 FileSystem=../../../../ogrenew/Samples/Media/materials/programs{CODE}
and so on 

We don't have fonts in fonts in the paginglandscape media directory so you can delete or comment out that line in the PLSM section.

i) cd /paginglandscape/Samples/Common/bin 

__NB.__
Before using ./MapSplitter TsmTerrain needs a colormap named terrain_texture.jpg which doesn't exist in the datasrcs directory. However there is a terrain_texture.0.0.jpg in the material/textures directory which I copied and renamed terrain_texture..jpg, leaving it in the materials/textures directory. The extra "." is needed for some reason.

NB. This has been fixed in the latest CVS

After running ./MapSplitter you should see directories of the split maps in paginglandscape/Samples/Media/paginglandscape2/terrains/

j) 
Make sure that the new map directories are listed in resources_plsm2.cfg. If not add them.

NB.
In paginglandscape2.cfg I found that I had to change the line "European_Alpes=Alpes" to "alpes=Alpes" before ./PagingLandScape2 would work with this map.

k) After running ./PagingLandScape2 if all has gone according to plan you shold arrive at the Ogre configure dialogue and then at blue filled Ogre render window.
 Press F1 a couple of time to clear the debug & help overlays. Then press K key when a small white speck will appear.
 Use the W key to zoom in quickly ( may need to zoom out again with the S key). Press M key to switch to camera mode.
 You can now use the mouse to look around and zoom in and out at a more respectable rate.

((User:Xpomjon|Xpomjon)) 06:38, 22 February 2007 (CST)

!Faq
* I get no terrain ?

Make sure you did run mapsplitter prior to the demo, and that data splitted is available to Ogre (resources.cfg contains the terrain data directory (media/paginglandscape2/terrains/mylandscapename))
---
Alias: (alias(Paging_Scene_Manager_Installation))