mogre and particles.


10-01-2014 11:20:51

I've tried to play with particles system in mogre, but am having a problem loading the Plugin_ParticleFX

ogrelog gives me this error:
OGRE EXCEPTION(7:InternalErrorException): Could not load dynamic library .\Plugin_ParticleFX. System Error: The specified procedure could not be found.
in DynLib::load at ..\..\ogre\OgreMain\src\OgreDynLib.cpp (line 91)

Note that it's the specified procedure, not the specified method (specified method is the error if it can't find the plugin)
is it possible I've got the wrong Plugin_ParticleFX.dll for whatever version of mogre I'm using? is it worth trying to update to a newer version and seeing if that works?

Just incase someone stumbles across this error:
Yes the problem was indeed the wrong Plugin .dll for the version of mogre.


10-01-2014 19:14:30

Did you include the plugin in the config file plugins.cfg?
There you need this line:
If this line contains a comment symbol "#" on the fist position, remove it.

Additionally you need the file Plugin_ParticleFX.dll in your binary directory.

If you don't know the particle wiki page, have a look. There I added useful links:


10-01-2014 19:37:53

Thanks for your reply, but yes to both, as you can see from the error it is actually trying to load the plugin, and can see the plugin, but is failing.

the error giving for not having the line in the plugins.cfg is something about not being able to find the emitter, and happens after it's loaded the plugins and starts to load the particle resources. - the error I'm getting is happening when it's loading the plugins.

the error given when it can't find the plugin is almost the same as the above error, but the specified method cannot be found, not the specified procedure, which is the error I'm getting here.


10-01-2014 20:11:19

Where did you get the binary files?
Could it be that they are copied from different sources?
Which Mogre version do you use?

You could try to use a binary bundle, which contains all needed Ogre/Mogre files.
So you can check if it works with it.

Here you find binary packs for Mogre 1.7 and .NET 4.0:
(Tests with plain particles worked fine with these binaries.)

Alternatively the MogreBuilder should compile Mogre including the plugin files. (very easy to use)


10-01-2014 20:20:10

it is possible they're copied from different sources, I'm not even 100% sure what version of mogre I'm running, hence asking if it was worth trying to update to a newer version of mogre.
I'll give the bundle you linked to a try and see how it goes, thanks.


10-01-2014 21:07:50

You can compare the file date of Ogre.dll, Mogre.dll and the plugin file. (as quick check, not safe)

In most cases you can see the Mogre version, when you open your VS project, open the project overview (list of files etc.), go to the section of referenced dll files and have a look to the file details of Mogre.dll.

If you switch to an other Mogre version, there could be some API changes (e.g. more parameters for a function). In my project the related lines of code were updated quickly.
If you switch your project from .NET 2.0 / 3.0 / 3.5 to .NET 4.0 or 4.5, then it's a little more tricky, because other third party dlls of your project should be compiled against .NET 4.0 / 4.5, too.
But don't be afraid of just trying it. (use a copy of your original project directory !!)


10-01-2014 21:30:12

Ah, yes it seems I'm using mogre 1.7.1
the one you linked to appears to be 1.7.4, however that crashes before ogre even creates a log.
I am using .net4.0 already so there's no problem there. VS would pick up any problems with API changes wouldn't it? it hasn't noted any errors or refused to build between the two.

I'll have a go with the MogreBuilder.


10-01-2014 21:49:27

Did you install VS 2010 SP1?
If not, go to my binary post and download+install the vcredist.

Please call the DirectX web installer.
Also linked in my post.


10-01-2014 22:59:41

Pretty sure I've done both those, but I guess it doesn't hurt to do them again and be sure.
though wouldn't mogre1.7.1 have the same problem? (1.7.1 seems to work, except for the particle stuff)

trying to build mogre with the builder, seeing how that's going. I did have a problem with the DX sdk, it errored out right at the end, looks like I have to uninstall Visual C++ 2010 Redistributable before installing the DX SDK. I'm hoping it got far enough through the DX sdk install for it not to matter, we'll see what happens.


11-01-2014 00:22:15

Yeah both the vcredist and the DirectX web installer told me that they were installed already.
built mogre but still have the same problem with it crashing without creating a log.
will try uninstalling the redistributables etc and re-installing. but I'm not hopefull.

Edit - Nope, no luck there at all.
where do I go from here?

MogreBuild gives these errors and warnings at teh end:
could not locate POCO
could not locate TBB
could not locate OIS
could not locate CppUnit

it doesn't seem to have stopped itt building, but are any of these warnings going to matter? particularly OIS - since I'm using MOIS and used the MOIS switch with the builder.

maybe it's going to be easier to just find a Plugin_ParticleFX.dll for version 1.7.1? it would be nice to be using a newer version of moger, but it's begining to be a hassle trying to get it to run. maybe I should try the debug version and see if that will tell me *why* it's crashing.

Edit again:
ended up finding the plugin_particleFX for that version of mogre. seems to be working. would still like to know why it's crashing with the newer versions of mogre though. will the debug versions give me some idea?
ohh maybe there's some sort of x64 vs x86 problem going on here...