Blender materials notes

Things I've noticed about Blender created materials:

  • Generally what you set in Maya materials will reflect truthfully by ASSIMP. Therefore Maya can be used to inspect materials created by Blender, saving the work of compiling programs to print the values of ASSIMP material keys.

  • Blender sets default values to material properties. A blank material will have glossy reflection turned on, which is surprising — when I create a new material I would expect it to be purely lambertian.

  • The 'specular color' set in Blender will be cut in half when imported by Maya and ASSIMP. Say in Blender, specular color is set to (1, 1, 1), and specular intensity set to 0.7. In Maya/ASSIMP it will show that specular color is (0.35, 0.35, 0.35).

  • A lower specular hardness in Blender means a lower cosine power in Maya or specular exponent(AI_MATKEY_SHININESS) in ASSIMP.

  • Various material properties can only be retieved directly using keys from the blend importer. For instance, the mirror reflectivity:

#ifndef BLENDER_MATKEY_REFLECTIVITY
// key, type, index, can be found at 'BlenderLoader.cpp' BlenderImporter::AddBlendParams()
#define BLENDER_MATKEY_REFLECTIVITY "$mat.blend.mirror.reflectivity",0,0
#endif
  • The ASSIMP blender importer reads the vertex normals instead of the face normals. I've found that deleting the meshes normals and generating the normals using post-processing to be a work-around.