Autodesk 3DS Max + OgreMax exporter
The goal of this tutorial is to create instances of objects instead of copies to improve loading time in games developed using the Ogre3D Graphics Engine in combination with a so-called DotSceneLoader. A DotSceneLoader is a library that loads a ‘.scene’ file generated by OgreMax exporter. OgreMax exporter is used to export 3D scene’s created in Autodesk 3DS Max. The problem is that sometimes when you want a lot of same objects in your scene, you have to clone those objects, seems obvious…… But when you haven’t found out all tips and tricks about the settings that are available in OgreMax and AutoDesk 3DS Max, then you are left with only two options:
- Learn how to use 3DS Max and OgreMax exporter
- Follow this tutorial
The first option is very time consuming. By the time you even found some tutorials/books about this, you allready forgot what you were looking for! So I suggest you follow this tutorial!
When using the standard clone defaults, an object cloned will actually be copied. When exporting the scene as a .scene file, an object copied a hundred times, will generate hundred meshes. These meshes will all be the same, but only have a differente name. When loading a game, all of these meshes still have to be loaded even though they are all the same meshes. For example: you have an object called sphere. When you copy it a hundred times the meshes generated will look like this:
It makes no sense loading the same mesh a hundred times, so follow these steps to avoid this:
Preparations: Goto: OgreMax -> SceneSettings -> Meshes(Tab)
At the General Settings section make sure the “Check for Mesh Instances” is checked:
Step 1: Select the object you would like to clone:
Step 2: With the “Select and Move tool selected” hold shift while moving the object.
Step 3: In the popup-dialog, choose “Instance”:
Now press OK. You should now see this:
Step 4: OgreMax -> Export -> Export Scene
Conclusion: Now look at the .scene that was created. You will see that both the original object and cloned object, share the same mesh. This way you will save lots of loading time when often using the same meshes.