Ditto on understanding your frustration. I just use a tweak of the Facebook FBX -> GLTF exporter and dump out a custom binary to read instead of even bothering with MG’s pipeline for models. XNA/MG’s mesh rendering is pretty much bogus anyways.
Blender still requires special hacks even to handle its’ poor FBX2013 support.
if (fromBlender) // sigh
{
target.data[duplicate->second].Position = Vec3(-pos[0], pos[2], pos[1]);
target.data[duplicate->second].Normal = Vec3(-nor[0], nor[2], nor[1]);
}
else
{
target.data[duplicate->second].Position = Vec3(pos[0], pos[1], pos[2]);
target.data[duplicate->second].Normal = Vec3(nor[0], nor[1], nor[2]);
}
In their infinite wisdom, the Blender team omit specifying the coordinate system in their FBX output and then don’t conform with the natural FBX coordinate-system.
I did put in effort into writing a proper FBXSDK based asset-pipeline tool, but everything you need to do such for the pipeline is pretty much private so I just said “screw this psychotic over-engineered nonsense”.