Greetings,
I am experiencing a problem with asset import and hoping someone might be able to provide helpful advice, if not outright solution. Namely, I am attempting to import a face model (originating from FaceGen) with a set of about 30 morph targets into Horde3D. I am able to export the model into COLLADA and convert it to Horde3D formats using ColladaConv, but when I try to load it into Horde3D, the engine inexplicably crashes, throwing an unhandled exception. More specifically, all the model assets load successfully (h3dutLoadResourcesFromDisk returns true, log contains no errors), but when I try to add the model into my existing scene (using h3dAddNodes), the errors occurs.
However - and here is where the matters become interesting - when I reduce the number of morph targets in the model to 13, I am able to import the model into Horde3D without issues, and all morph targets appear to be correctly loaded. I have tried exporting the model with various combinations of morph targets and my experimentation has led me to conclude that the error is only related to the number of morph targets - simply put, if it exceeds 13, the crash occurs, otherwise everything is fine. This has also led me to conclude that the error may be due to a bug in Horde3D rather than a problem with the model, but obviously I am not certain.
As for technical details, I am using Horde3D 1.0 beta 4 and its accompanying ColladaConv. Here is a detailed description of my art pipeline:
1. I create a face model using FaceGen and export it into 3ds, along with all morph targets.
2. I import the model into 3ds Max 2010. There I merge all meshes (the model is originally composed of several meshes - skin, tongue, teeth, eyes and hair) into one. I do the same for all morph targets - i.e. I import each one into Max and merge its separate parts into a single mesh. I give each morph target an appropriate name (e.g. viseme_aa), upon which I connect all morph targets to the base mesh using the Morpher modifier.
3. I export the model using the latest version of ColladaMax (downloaded from
http://opencollada.org/download.html). It is worth noting that if I hide the original morph target meshes, the exporter crashes, and if I delete them, all morph targets are named incorrectly (I have no idea why, but for some reason ColladaMax does not name morph targets after their Morpher channels, but after the original meshes, and if they are no longer in the scene, all hell breaks loose).
4. I convert the COLLADA model using ColladaConv with -noopt switch (I recall there were problems with morphing when using geometry optimization in beta 3, not sure if that has been fixed in beta 4). The converter always throws some warnings regarding geometry having zero-length basis vectors, but they appear to be inconsequential.
5. Upon conversion I manually remove Mesh nodes corresponding to original morph target meshes from the .scene.xml (because obviously I do not want those displayed in my scene). At first I thought that was the reason why Horde3D crashed, but that does not seem to be case, as leaving these Mesh nodes does nothing to fix the problem.
Well, that is all the relevant information I can think of. I have uploaded the model to RapidShare, in case someone wants to try it out (and hopefully reproduce the issue) -
http://rapidshare.com/files/293412513/j ... l.zip.html. The package contains two versions of the Horde3D model (one with 13 morph targets and another one with 14), as well as the original Max model (with the full set of morph targets). If anyone has suggestions or insights on how to fix/bypass the problem, I would be most happy to hear them, because I have thoroughly exhausted all ideas.
Sincerely,
Ratty