[News] 16.04.2011 - Blender Compatibility

Apr 16, 2011 at 10:58 AM
Edited Apr 16, 2011 at 11:51 AM

While the model renderer still has minor problems and missing features (see Issue Tracker), I am currently focussing on testing and establishing compatibility with COLLADA documents exported from Blender. Since the majority of the potential users are like me indie developers, I deemed it most useful to concentrate on this free and open-source software, rather than on very expensive and commercial solutions like Maya and 3ds Max. Of course I am not completely disregarding those still commonly used tools. At least compatibility with 3ds Max is basically given for I tested my implementation during development with 3ds Max models.

As of version 2.57 Blender for the first time seems viable to me personally (user-interface-wise). Unfortunately its COLLADA exporter is currently not "complete". For example export options like triangulation are missing right now, even though they were available in earlier versions of blender. However, as stated on their developer blog a team is working on the COLLADA exporter and they possibly will be using OpenCOLLADA, which also is the preferred exporter for 3ds Max and Maya.

The current detailed status of compatibility will be published in the compatibility table soon. After some basic testing the following things seem to work when exported from Blender:

  • meshes (triangles / 3-sided polygons only)
  • vertex colors
  • basic materials (ambient, diffuse, specular etc.) with colors and textures
  • bump / normal maps

As mentioned above the exporter option for triangulation is currently missing. Meanwhile the COLLADA refinery could be used to do this job. I even considered implementing this as part of the importer itself. But it is probable that the exporter will offer this option at some point in the future, once again. Note that right now the O.M.I. will try to load polygons as triangles anyway (because blender exports triangles as 3-sided polygons) which can lead to messed up geometry when models are loaded which use (n>3)-sided-polygons. Also sometimes blender exports polygons as quads etc. even though they are displayed as two triangles in the 3d view. So to be on the safe side right now COLLADA refinery should be used to triangulate the models.

What's still missing and has to be tested are at least the following features:

  • Skinned Mesh Animation

The only problem when using Blender instead of 3ds Max or Maya is the lack of HLSL support. Blender is based on OpenGL and thus uses GLSL shaders. And while in 3ds Max you can specify your own HLSL shaders, in Blender there appears to be no comparable option even for GLSL. Assuming there is or will be one, the GLSL shaders still would have to be converted to HLSL for use in XNA. But this is actually possible thanks to a tool released by AMD called HLSL2GLSL. The only other fallback solution I can think of is to use Nvidia FX Composer 2 to apply your own HLSL effects to the exported COLLADA models.

What this basically means for now is, that models exported from Blender are restricted to standard materials, which however should be sufficient for typical games. But the XNA Effects of the loaded models can be swapped manually to use any shader to one's liking, if that's not good enough.