We have developed some educational software using augmented reality and Axiom (a .NET port of Ogre 1.0). Even though it is an old version of the engine, we are happy with what it is capable of, and it would be quite a large task to upgrade the engine.
We are focused now on creating content. However, we are having problems as 1.0.x Ogre Export plugins are only available for very old versions of Max and Maya, and our content creators do not have these.
Therefore, I would be very interested to know if there are any ways of converting from more recent Ogre versions (Ogre 1.2.x, 1.4.x, 1.6.x) back to Ogre 1.0.x. For meshes and skeletons.
I found a forum topic describing a conversion from 1.6.x to 1.2.x by using the 1.6.x OgreXMLConverter to get a 1.6.x xml file, then use the 1.2.x OgreXMLConverter to get a 1.2.x binary file (https://www.ogre3d.org/forums/viewtopic.php?f=8&t=50221).
I have tried this technique, with a static mesh (no animation), going from 1.6.x to 1.0.x and it worked.
I have tried this technique, with an animated mesh (and skeleton), going from only 1.2.x to 1.0.x but unfortunately it failed. I get the following error:
Code: Select all
System.Exception: Inner Exception ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Axiom.Core.Entity.CloneVertexDataRemoveBlendInfo(VertexData source)
As best as I can tell, Ogre 1.0.x (Azathoth?) uses the 1.30 serializer. And I think that it is not until Ogre 1.4.x that the serializer changes to the 1.40 serializer?
It would be fantastic to see a table showing the relationship of Ogre version to serializer version. Or which Ogre versions share compatibility (presumably the same thing?).
Having said that, I don't think the problem is really in the serialiser. If I try to load a 1.4.x model, it complains about not having the 1.40 serializer, however, if I try to load a 1.2.x model, it does not complain about this, but it does complain about the NullReferenceException in CloneVertexDataRemoveBlendInfo as mentioned above.
Comparing a 1.0.x and 1.2.x mesh (with skeleton) side by side, they seem very similar - the 1.2.x has the addittion of <sharedgeometry> and the <boneassignments> are in a different place in the xml heirachy - they are the only differences. I can load a static 1.2.x mesh with <sharedgeometry> fine, so maybe the only difference that is stopping me is the <boneassignments> are in a different place? I tried manually moving the <boneassignments> into the same place, but then none of the OgreXMLConverters work work on it.
So in summary, I would be very interested to know if there are any ways of converting from more recent Ogre versions (Ogre 1.2.x, 1.4.x, 1.6.x) back to Ogre 1.0.x. For meshes and skeletons. I would be willing to manually edit the files at this stage.
However, I would also be willing to look at paying someone to create a tool that could do this conversion reliably.