I don't think so... I've received similar complaints which likely means the
documentation on this topic should prolly be re-worked.
Let's see if I can clear it up a bit:
As you are already aware, each irrb scene (.irr) file contains a reference to a mesh (.irrmesh) file for each mesh node. This tag looks something like this:
Code: Select all
<string name="Mesh" value="c:\test\meshes\cow.irrmesh" />
The "trick" is to have
irrb automatically create the correct
value for your needs.
You can control how
irrb creates the
value using the "
Mesh Path" input variable located in the exporters interface.
There are currently three options available for setting
Mesh Path:
- File Name Only - $filename
Full Path - $fullpath or blank
Relative Path - (user entered value)
File Name Only.
If you enter "$filename" into
Mesh Path, only the mesh file name will be written to the tag
value:
Code: Select all
<string name="Mesh" value="cow.irrmesh" />
In order for the scene loader to find meshes that have used this option, each mesh must either exist in the directory the application runs from or it must be located in a folder that has been defined using IFileSystem.addFolderFileArchive(...) by your application. If you're using
iwalktest, you can add Folder archives to "
iwalktest.cfg" (see <filesystems>).
Full Path.
If you enter "$fullpath" into
Mesh Path (or leave it blank), the full path will be written to the tag
value:
Code: Select all
<string name="Mesh" value="c:\test\meshes\cow.irrmesh" />
This is convenient when you're using
iwalktest for viewing scenes.
Relative Path.
If
Mesh Path is NOT set to $filename, $fullpath, or blank, then
irrb uses what you enter into
Mesh Path as a prefix for the tag
value. For example, if "data/meshes/" is entered into
Mesh Path, the following tag
value would be generated:
Code: Select all
<string name="Mesh" value="data/meshes/cow.irrmesh" />
The scene loader will then expect "data/meshes/cow.irrmesh" to exist off of your application directory or a directory that has been defined by your application via IFileSystem.addFolderFileArchive(...).
Note that this same logic is also used for generating texture path values located in .irrmesh files.
It may also be helpful to show how I've been using the exporter:
I have a "base" folder setup that contains all of my scenes: "c:\irrbScenes\".
When I start a new scene, i create a folder underneath the base:
"c:\irrbScenes\irrbCinema\".
And then another directory underneath that to store meshes in:
"c:\irrbScenes\irrbCinema\meshes\"
In the exporter's interface I set "
Mesh Directory" to:
"c:\irrbScenes\irrbCinema\meshes\"
This tells
irrb where to store all of the generated .irrbmesh files.
When I'm initially viewing/testing my Blender work in
iwalktest, I leave
Mesh Path set to blank. That way the full mesh path is written to the tag
value and the scene loader always finds the mesh files.
If I ever get to the point where I need to distribute the scene and mesh files with an actual application...

, I would set
Mesh Directory to a relative path that makes sense to my application and then set it up so the install copies the scene and mesh files to the appropriate locations relative to the application.
Let me know if you still have questions. I'd also be interested in suggestions that would help make this topic less confusing.