[News] 08.08.2011 - Refactorings and Moving to GitHub

Coordinator
Aug 8, 2011 at 3:30 PM

Refactorings

This week I started some substantial refactorings of the library which greatly improved the simplicity and flexibility of the code. The underlying code for loading COLLADA models probably was reduced by 30%. 

But the most important change was the introduction of a new "standard" importer which converts the loaded COLLADA model into the XNA default content model for 3D Models. So instead of being forced to use my custom model format along with its processors you can now simply select the "COLLADA Standard Importer" for importing ".dae" files and the rest stays the same. You can now use the default content processor ("Model - XNA Framework") and load, draw or just about do anything just as you would do with FBX models.

The standard importer is still under construction but essentially already works. You can already use it to load non-animated models. All the data is already loaded (including animations), it just has to be converted to the XNA default content model which I'm working on right now. The big advantage of this new standard importer is that it makes the COLLADA models compatible with existing XNA technology, such as XNA Animation libraries or XNA engines, that use the default content model. I realized that a custom model format and class was not only too much work (most of which I have already done, though) but also using the common format greatly enhances the utility of the library, since of course no one wants to adjust their existing code.

The advantage of using COLLADA over FBX is of course firstly that COLLADA is an open format and independent of a single vendor like Autodesk and their 3ds max software. Furthermore both COLLADA and my Collada Importer for XNA can easily be extended to account for new techniques or features, unlike the proprietary FBX format and its XNA importer.

Note that even though now by default Models use XNA's BasicEffect, the COLLADA importer is not restricted to its features. In fact all information loaded by the underlying library is imported and it's only limited by the XNA content model. The imported data includes all kinds of textures (specular map, normal map, etc.) as well as the required vertex channels (normals, tangents, binormals, etc.). Also skinned mesh animations are imported. But you could still use the "ColladaModel" class which contains all imported informations to create your own content importers / processors and model classes to implement features that can not be implemented based on the XNA default content model, such as mesh morph animations or material property animations (given that the importer is extended to extract these from the COLLADA file, which it doesn't right now ^_^).

Moving to GitHub

In line with these big changes I decided to move this project to GitHub under name "ColladaXna" (https://github.com/Bunkerbewohner/ColladaXna). The reason for this is mainly that I'm much preferring Git over SVN or TFS version control. Also RSS feeds on Codeplex don't seem to work, which sucks 'cause this way I have to actually visit Codeplex and see if anything has happened on the project every time.

The git repository is still a bit messy as it contains the old projects, as well as the new (refactored) ones. But I'll clean that mess up as soon as possible.