PLSM and Ogre 1.4...

mrfalken

27-03-2007 14:33:11

First of all, thanks for the great work... :)

...my question is...there's still no way, to use this great plugin, with 1.4 final version ? :(

Any idea, about when this will be available, or do we have to wait for the PLSM3 ?

Chimelion

27-03-2007 21:37:02

The CVS HEAD versions of PLSM2 and Eihort work together after you apply a little elbow grease: I have it running now. You need to make a few unofficial patches that have been discussed within several threads on this forum over the past week or so, and follow the orginal wiki instructions closely. I'm trying to gather up some relevant notes and links that cover what people have discovered recently, and get some of my own feedback back to them for what it is worth, but it takes many hours to write up the findings as I go--actually takes a lot less time to feret the stuff out of the search engine and apply the changes than it does to write a document that doesn't raise more questions than it answers :?

Samir

30-03-2007 15:57:32

I was the one who supplied a patch for it and I got a message last week saying that it has been applied...I don't know how much time till this appears in the CVS...

asmo

30-03-2007 17:15:24

I was the one who supplied a patch for it and I got a message last week saying that it has been applied...I don't know how much time till this appears in the CVS...

There is already an Eihort patch in the CVS, where the auther has just ignored VisibleBounds, but you maybe fixed that in the new patch?

I'v released a patched version as well, but I did ignore #ifdef's for Dagon, so it will not make it into the CVS.

Samir

30-03-2007 17:29:45


There is already an Eihort patch in the CVS, where the auther has just ignored VisibleBounds, but you maybe fixed that in the new patch?


Actually...I was the one who ignored VisibleBounds :oops:

I just wanted it to compile and did not know were or how VisibleBounds should be used as I'm not that familiar with how PLSM2 works...the reason I submitted the patch anyways is to save time for others who want to upgrade...but I guess I didn't as I added a bug :oops:

Dirso

21-04-2007 02:35:29

So... is it working with eihort or not? Have anyone tried it?

Thanks,
Dirso

Baiame

21-04-2007 02:52:55

^ I compiled a .dll, but I can't test it, as I can't find a compatible mapsplitter (the one included in the latest non-cvs PLSM release doesn't like Eihort). For some reason, there's no mapsplitter source in the CVS package, and nobody on the forum seems to have talked about that. Hell if I know.

Samir

21-04-2007 05:38:40

I've been using PLSM2 with Eihort and it's working fine. The bug I introduced in my port is fixed in the latest CVS.

elementarladung

22-04-2007 18:46:58

Hi,

i want to compile the PLSM2 with the actual ogre version. IÄm not so really good in c++ so i get many compiling errors.



1>OgrePagingLandScapeTile.cpp
1>OgrePagingLandScapeTexture_Splatting.cpp
1>OgrePagingLandScapeTexture_BaseTexture.cpp
1>OgrePagingLandScapeTexture.cpp
1>..\src\OgrePagingLandScapeTexture.cpp(130) : error C2039: 'RealConstantEntry' : is not a member of 'Ogre::GpuProgramParameters'
1> d:\ogre\ogresdk\include\OgreGpuProgram.h(225) : see declaration of 'Ogre::GpuProgramParameters'
1>..\src\OgrePagingLandScapeTexture.cpp(130) : error C2065: 'RealConstantEntry' : undeclared identifier
1>..\src\OgrePagingLandScapeTexture.cpp(130) : error C2059: syntax error : 'const'
1>..\src\OgrePagingLandScapeTexture.cpp(131) : error C2065: 'e' : undeclared identifier
1>..\src\OgrePagingLandScapeTexture.cpp(133) : error C2227: left of '->val' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(134) : error C2227: left of '->val' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(135) : error C2227: left of '->val' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(136) : error C2227: left of '->val' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(137) : error C2227: left of '->isSet' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(334) : error C2039: 'RealConstantEntry' : is not a member of 'Ogre::GpuProgramParameters'
1> d:\ogre\ogresdk\include\OgreGpuProgram.h(225) : see declaration of 'Ogre::GpuProgramParameters'
1>..\src\OgrePagingLandScapeTexture.cpp(334) : error C2059: syntax error : 'const'
1>..\src\OgrePagingLandScapeTexture.cpp(416) : error C2780: 'const _Ty &std::max(const _Ty &,const _Ty &,_Pr)' : expects 3 arguments - 2 provided
1> C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2944) : see declaration of 'std::max'
1>..\src\OgrePagingLandScapeTexture.cpp(416) : error C2782: 'const _Ty &std::max(const _Ty &,const _Ty &)' : template parameter '_Ty' is ambiguous
1> C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2936) : see declaration of 'std::max'
1> could be 'unsigned short'
1> or 'size_t'
1>..\src\OgrePagingLandScapeTexture.cpp(1093) : error C2039: 'RealConstantEntry' : is not a member of 'Ogre::GpuProgramParameters'
1> d:\ogre\ogresdk\include\OgreGpuProgram.h(225) : see declaration of 'Ogre::GpuProgramParameters'
1>..\src\OgrePagingLandScapeTexture.cpp(1093) : error C2059: syntax error : 'const'
1>..\src\OgrePagingLandScapeTexture.cpp(1095) : error C2227: left of '->val' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(1096) : error C2227: left of '->val' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(1097) : error C2227: left of '->val' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(1098) : error C2227: left of '->val' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>..\src\OgrePagingLandScapeTexture.cpp(1099) : error C2227: left of '->isSet' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>OgrePagingLandScapeRenderable.cpp
1>OgrePagingLandScapeIndexBuffer.cpp
1>OgrePagingLandScapePageRenderable.cpp
1>..\src\OgrePagingLandScapePageRenderable.cpp(262) : error C2660: 'Ogre::SceneNode::findLights' : function does not take 1 arguments
1>OgrePagingLandScapePage.cpp


Cn anybody help me ?

Wretched_Wyx

17-05-2007 16:15:59

Wow, almost a month and no one replied to the above post? Sheesh. Wish I could help. But I'm in the same boat- CVS + Eihort doesn't work.

Jon

17-05-2007 16:52:46

Perhaps a mixture of SDK and CVS is responsible.

I'm running PLSM with CVS, and the only changes I needed to make were changing some project paths to suit my preferences.

vinvin

19-05-2007 02:28:52

The only thing I had to change to make it compile under linux was adding the line
#include <OGRE/OgreSceneManager.h>

to PlugIns/PagingLandScape2/include/OgrePagingLandScapeOcclusionElement.h

The Plugin does make correctly with that. The samples still miss ExampleApplication.h and they don't make.

hotgloupi

02-06-2007 09:09:19

hi,

i applied the modifications that you speaking about, and compiled with success but launching fails all the time
see my recent post :
http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=4523

bye!

blinkeye

19-06-2007 14:39:27

Building PLSM2 no longer needs patching. Recent CVS builds cleanly (on GNU/Linux at least).

camel69

06-11-2007 12:59:49

Unfortunately it's still not working (maybe I need some patching for my brain or skills :D ).
I'm using the source code of Ogre 1.4.5 (not CVS) which is located at /home/camel69/sources/ogre-1.4.5/, and the latest ogreaddons from CVS (/home/camel69/sources/ogrecvs/ogreaddons). As you can see I run Linux on my computer.

bootstrap and configure run without any problems but as soon as I want to build PLSM2, errors appear.
.libs/Plugin_PagingLandScape2_la-OgrePagingLandScapeSceneManager.o: In function `Ogre::PagingLandScapeSceneManager::getOptionValues(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)':
/home/camel69/sources/ogrecvs/ogreaddons/paginglandscape/PlugIns/PagingLandScape2/src/OgrePagingLandScapeSceneManager.cpp:1700: undefined reference to `Ogre::OctreeSceneManager::getOptionValues(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)'
/home/camel69/sources/ogrecvs/ogreaddons/paginglandscape/PlugIns/PagingLandScape2/src/OgrePagingLandScapeSceneManager.cpp:1700: undefined reference to `Ogre::OctreeSceneManager::getOptionValues(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)'
.libs/Plugin_PagingLandScape2_la-OgrePagingLandScapeSceneManager.o: In function `Ogre::PagingLandScapeSceneManager::_updateSceneGraph(Ogre::Camera*)':
/home/camel69/sources/ogrecvs/ogreaddons/paginglandscape/PlugIns/PagingLandScape2/src/OgrePagingLandScapeSceneManager.cpp:411: undefined reference to `Ogre::OctreeSceneManager::_updateSceneGraph(Ogre::Camera*)'
.libs/Plugin_PagingLandScape2_la-OgrePagingLandScapeSceneManager.o: In function `~PagingLandScapeSceneManager':
/home/camel69/sources/ogrecvs/ogreaddons/paginglandscape/PlugIns/PagingLandScape2/src/OgrePagingLandScapeSceneManager.cpp:196: undefined reference to `Ogre::OctreeSceneManager::~OctreeSceneManager()'
/home/camel69/sources/ogrecvs/ogreaddons/paginglandscape/PlugIns/PagingLandScape2/src/OgrePagingLandScapeSceneManager.cpp:196: undefined reference to `Ogre::OctreeSceneManager::~OctreeSceneManager()'
/home/camel69/sources/ogrecvs/ogreaddons/paginglandscape/PlugIns/PagingLandScape2/src/OgrePagingLandScapeSceneManager.cpp:196: undefined reference to `Ogre::OctreeSceneManager::~OctreeSceneManager()'
/home/camel69/sources/ogrecvs/ogreaddons/paginglandscape/PlugIns/PagingLandScape2/src/OgrePagingLandScapeSceneManager.cpp:196: undefined reference to `Ogre::OctreeSceneManager::~OctreeSceneManager()'
/home/camel69/sources/ogrecvs/ogreaddons/paginglandscape/PlugIns/PagingLandScape2/src/OgrePagingLandScapeSceneManager.cpp:196: undefined reference to `Ogre::OctreeSceneManager::~OctreeSceneManager()'

and so on ...

First I thought that PLSM2 can't find the Octree Plugin library but after some digging through the directories and the Makefile I found out that for instance Plugin_PagingLandScape2_la-OgreOctreeSceneManager.lo is part of that library and provides functions like getOptionValues(). But why does make tell me that there's an undefined reference to getOptionValues()?

Copying the Octree object files from ogrenew/Plugins/OctreeSceneManager to the PLSM2 src directory doesn't help either (I know, it was just a very desperate try). Please help me, I think PLSM2 is exactly the kind of terrain manager I need for my project.

Maxi

06-11-2007 13:34:08

I never build PLSM2 on Linux, but in the VS8 Projekt there was a reference to the octreeSceneManager library missing. So I would try adding (the path of) the library to the makefile.

blinkeye

06-11-2007 13:58:54

Copying the Octree object files from ogrenew/Plugins/OctreeSceneManager to the PLSM2 src directory doesn't help either (I know, it was just a very desperate try). Please help me, I think PLSM2 is exactly the kind of terrain manager I need for my project.
Well, the posted errors definitely state it can't find the OctreeSceneManager. Could you post a
make -n
where you get the error? This way we'll see what it's actually doing ...

camel69

06-11-2007 17:00:13

Here's the output of make -n in paginglandscape/PlugIns/PagingLandScape2/src:
http://codeeye.de/~camel69/make.txt

I know that some/all parts of the OctreeSceneManager are missing to PLSM. But there are files inside the paginglandscape src directory (e.g. OgrePagingLandScapeSceneManager.cpp and Plugin_PagingLandScape2_la-OgrePagingLandScapeOctreeSceneManager.lo) that contain the necessary functions (one of the errors of make says that OctreeSceneManager::getOptionValues() is missing; a `nm -C Plugin_PagingLandScape2_la-OgrePagingLandScapeOctreeSceneManager.lo` proves that this function is available to PLSM2). As far as I understand it, the OctreeSceneManager library object (.so) from Ogre isn't necessary to compile PLSM2. Maybe I'm wrong, at least there's noch -lOctreeSceneManager or something like that in the Makefile.

The only library file that contains OctreeSceneManager in its name is /usr/local/lib/OGRE/Plugin_OctreeSceneManager.so but if append /usr/local/lib/OGRE/Plugin_OctreeSceneManager.so or -lPlugin_OctreeSceneManager to the build command in the Makefile, the usual make error is still present.

After all this "research" I still don't understand why PLSM2 can't find or isn't using the object files in its directory where (`nm -C objectfile`) the functions are defined.

Maxi

06-11-2007 18:07:18


After all this "research" I still don't understand why PLSM2 can't find or isn't using the object files in its directory where (`nm -C objectfile`) the functions are defined.


PLSM is based on an octree scene manager, and PagingLanscapeSceneManager can be derived from OctreeSceneManager.
I think the functions like getValue() you found in the object files are overloaded members of the PLSM classes. Therefor Plugin_OctreeSceneManager.so is needed for the compilation.


The only library file that contains OctreeSceneManager in its name is /usr/local/lib/OGRE/Plugin_OctreeSceneManager.so but if append /usr/local/lib/OGRE/Plugin_OctreeSceneManager.so or -lPlugin_OctreeSceneManager to the build command in the Makefile, the usual make error is still present.


That's strange, because using Plugin_OctreeSceneManager.so should solve the problem. Perhapse "make clean" and recompiling with the changed makefile will do it; old object files from a earlier compilation kept me searching errors for hours more than once.

Sorry, but I have no "do it and it will work" answer for you :(

camel69

06-11-2007 19:48:02

Sorry, still doesn't work. OGRE_LIBS in the Makefile reads
-L/usr/local/lib -lOgreMain /usr/local/lib/OGRE/Plugin_OctreeSceneManager.so
and I did a `make clean` before the next make but still the same errors
OgrePagingLandScapeSceneManager.cpp:1700: undefined reference to `Ogre::OctreeSceneManager::getOptionValues(...
appear.

I've said already that I'm using the Ogre 1.4.5 source from the website and the latest ogreaddons cvs? Just to be sure there're no incompatibilities.

Maxi

06-11-2007 20:08:05

Sorry, still doesn't work. OGRE_LIBS in the Makefile reads
-L/usr/local/lib -lOgreMain /usr/local/lib/OGRE/Plugin_OctreeSceneManager.so


Just a desperate thought...

I can remember Eclipse gave me no error/warning about a wrong library name; just ignored it.
Could it be that the you should use "Plugin_OctreeSceneManager" as lib name (without the .so ending)?

-L/usr/local/lib /usr/local/lib/OGRE -lOgreMain Plugin_OctreeSceneManager

camel69

06-11-2007 20:34:11

All variations of the OGRE_LIBS line I can think of aren't working.

Another thing that seems a little bit strange to me: ldconfig -p doesn't print out any of the Plugin_*.so files of ogre which are installed at /usr/local/lib/OGRE. Is that normal? The path to this directory is in ld.so.conf and I ran ldconfig after installing ogre.

birmacher

06-11-2007 20:50:13

I had just compiled PLSM2 and I got some linking errors. Linking OgreSDK/lib/opt/Plugin_OctreeSceneManager.lib ( and also Plugin_OctreeSceneManager_d.lib ) fixed the problem for me...

mr_burns

09-11-2007 01:57:56

Birmacher

Can you tell me the O.S., IDE, Ogre Version, and PLSM version your are using?

Many thanks.
B.

Captain_Deathbeard

09-11-2007 22:13:53

i am trying to use plsm2 from cvs with ogre 1.4.4 cvs.

the scenemanager is created successfully, but immediately after it will crash when I try to create a camera in the scene.

scene = root->createSceneManager("PagingLandScapeSceneManager", "n");
scene->setWorldGeometry("e2.cfg");
scene->createCamera("mainCamera");


the crash is here in ogrepaginglandscapeoctreescenemanager.cpp, the pointer mPagingLandScapeOctree is 000000:

void PagingLandScapeOctreeSceneManager::registerCamera (PagingLandScapeOctreeCamera *c)
{
mPagingLandScapeOctree->traversal(RegisterCameraTraversal(c), 0);
}

Maxi

09-11-2007 23:26:25


the crash is here in ogrepaginglandscapeoctreescenemanager.cpp, the pointer mPagingLandScapeOctree is 000000:

void PagingLandScapeOctreeSceneManager::registerCamera (PagingLandScapeOctreeCamera *c)
{
mPagingLandScapeOctree->traversal(RegisterCameraTraversal(c), 0);
}


Seems to be the bug I reported here: http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=5619

You can compile PLSM2 using either the standard octreeSceneManager or an PLSM octreeScene Manager; the first option doesn't seem to work at the moment, so you have to define "_PLSM_OCTREE" (without the " ) in your project settings in order to use the PLSM octreeSceneManager.

Captain_Deathbeard

10-11-2007 00:58:42

Thanks Maxi