Impostors Exception

rubasurex

10-09-2008 16:20:26

I just integrated PagedGeometry into my project and when I test it, I receive the following exception (taken from the Ogre log) and my application crashes.

OGRE EXCEPTION(5:ItemIdentityException): Cannot find a group named Impostors in ResourceGroupManager::isResourceGroupInitialised at c:\ogre\ogremain\src\ogreresourcegroupmanager.cpp (line 1682)

The exception occurs are this line of code.

trees->update();

I have discovered that is has to do with the ImpostorPage, because if I remove this line from my set up, it all runs fine.

trees->addDetailLevel<Forests::ImpostorPage>(700, 50);

But then by doing this, I no longer have imposters. All the trees are rendered as batched entities.

I did a fresh compile of PagedGeometry against the latest Ogre 1.6 SVN today. I made sure to copy all the correct header and library files to my project. What could I be doing wrong to receive this exception?

JohnJ

10-09-2008 16:54:38

This could be a compatibility issue with the latest version of Ogre. I'll try to reproduce your error as soon as I get a chance, and try to fix the problem.

If the error only occurs in your application, though (and not in the PagedGeometry examples), you may need to send me some code that produces the error, but this probably won't be necessary - judging by the error message, I don't think it's your fault.

rubasurex

11-09-2008 00:50:42

I just tried Example 8 and it crashed for me. But if I comment out the same ImpostorPage line, then it runs fine. So looks like it is a problem with PagedGeometry and the latest Ogre 1.6 (from the SVN that is).

JohnJ

11-09-2008 01:55:01

That's strange, I just did a fresh compile of Ogre 1.6.0 RC1 and PagedGeometry from SVN, and it worked just fine.

I'd suspect you have a DLL mismatch somewhere. You should probably verify that all your DLLs are up to date by deleting the ones in the examples/bin folders and copying new ones in from your Ogre build / SDK.

rubasurex

12-09-2008 04:29:52

Hmmm... I haven't tried the 1.6 RC1, only the latest SVN, so maybe something has changed between then and now.

I tried doing a full recompile of everything and taking fresh copies of every header, lib and dll and still no dice. The demos fail for me too in the same place.

Oh well, I'm not sure if I need impostors anyway. My project uses an overhead camera looking down on the terrain from a close distance, like a strategy game, so trees never get far enough away from the camera to warrant impostors. In addition, because of the camera angle, it means that at most there is only like 50 trees on screen at once.

JohnJ

12-09-2008 05:34:45

Yeah, maybe it's caused by some change in resource group management in the latest SVN version - I can't think of any other explanation. I would like to make it work though, but for all I know the problem may solve itself in SVN since RC1 seems to work fine.

Anyway, I think you're right - for your use, you really don't need ImpostorPage anyway (but if you do need it, give RC1 a try and maybe it will work).