Slow tool progress
It’s taken a while to get to this point and there doesn’t look to be much to show for it, but there’s a lot more going on under-the-hood. A Maya scene can be loaded in, the meshes, materials, skeleton, and animations all get extracted into an intermediate CVS directory. This information is used to render the model in the editor. Each mesh is stored as a separate binary file, all meshes are referenced in an XML file that represents the model and refers to the materials as well. The materials are stored as XML files, too. Along with the textures in (currently) TIFF format. Right now the textures are TIFF conversions of the source textures. I want to either automatically generate the target textures from the TIFF and store it with the intermediate files for conversion later or generate the textures as they are loaded. Obviously the latter would be far more processor intensive, however, it would save on storage space.
For now, only the mesh data is loaded. Textures aren’t yet applied to the meshes. I’m looking to asynchronously load in the referenced data from the mesh XML file to allow for just a proxy representation to be present until the mesh data is loaded, then an untextured mesh will be rendered until the material information is loaded. There’s the issue of reloading the mesh data, which I have yet to think about beyond the idea of doing so.
Here are a few screenshots of the progress:
These two show the scene loaded from Maya with and without the world grid, respectively.
This is the scene in Maya.
I’m hoping to have an update sooner than two months from now. The source textures are 2048x2048, so I wouldn’t be able to fit many of those into memory before having serious issues. As a first-pass attempt at rendering the models with material information and textures I think I’ll resize the textures on-the-fly. I still haven’t created a content database or any kind of persistent DAG to track any of this information, each time I load up the exported model it has no idea how to rebuild itself.