Blender loader extensions

Ghur
2012-09-20
2013-06-03
  • Ghur
    Ghur
    2012-09-20

    Hello Assimp team,

    In my project I've decided to use Assimp library in a converter program that converts blender .blend files into engine's internal format. However, as for now, .blend support in the library is limited, with eg. animations not supported. Since I needed some more features, I've gone ahead and implemented them in the blender loader. Would it be possible to have them submitted to you and then added to the svn repository?

    The changes I've made include:

    • Importing of blender cameras into aiCameras

    • Importing of blender lamps into aiLights

    • Importing of armature objects into aiNode trees (with support for bone-parented objects as well)

    • Importing of vertex groups (together with armature modifier) into aiBones for meshes

    • Importing of blender actions that refer to skeletal animation (ie. change bone poses) into aiAnimations

    • Changing implementation of mirror modifier to make it work like in blender: mirroring on 3 axes works as doing the mirror modifier 3 times, not mirroring around 0,0,0 point + support of 'merge' modifier option + mirroring of vertex groups (bones).

    These changes of course do not import everything that's possible to model in blender, as blender stores a lot more information than assimp can; however, I think they provide a good enough subset for modeling eg. low-poly characters with armatures and animations. If needed, I can provide a detailed list of what's imported and what isn't.

    Outside of these changes, I've made a few bug fixes as well:

    • Fixed incorrect parent transformation for blender objects in hierarchy

    • Fixed a crash when a blender object has a 'material slot' without an associated material

    • Fixed FindInstancesProcess to have some tolerance when comparing bone matrices

    • Made the animation chooser combo box in the viewer actually work :)

    So, would you be interested in adding these to assimp? If so, what would be the best way to submit the changes: in a single big patch (it is quite a bit of code to review…) or several smaller patches?

     
  • First: that's great to hear! Good work! Second: that's a question to the author of the Blender loader, which I'm not. I just hope Aramis will read this soon.