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 coloris set to
(1, 1, 1), and
specular intensityset to
0.7. In Maya/ASSIMP it will show that
(0.35, 0.35, 0.35).
A lower specular
hardnessin Blender means a lower
cosine powerin Maya or
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.