I started playing around with C# and XNA 3.1 in 2009 and immediately fell in love with it. However, back then XNA 3.1 lacked out-of-the-box support for two very commonly required features for game programming: Skinned Mesh Animation and Normal Mapping. However, there were tutorials on how to implement these features with custom content importers and processors for FBX files.

It was in 2010 that my 6th semester (computer science, bachelor of science) had begun and I needed a topic for my bachelor's thesis. Long story short: I decided to write about loading and rendering animated 3D models based on COLLADA files in XNA 3.1. I chose COLLADA because it's an open industry standard which is also very easily accessibly since it's based on XML. Another advantage is that it has been designed as an interchange file format from the beginning, so there are importers and exporters for the format in virtually any important digital content creation tool.

By default XNA offers limited support for FBX and X file formats, which are both proprietary. Furthermore the classes for loading and rendering these models that are part of the XNA framework are not open-source. In fact, they are even "sealed" so you cannot derive from them in C#.

For these reasons I decided to implement my own classes for loading and rendering COLLADA based models, since this way I could easily extend them the way I wanted to support any of the wide range of COLLADA's features, at least potentially.

Last edited Apr 3, 2011 at 4:10 PM by MathiasKahl, version 4


No comments yet.