In the Fbx file, the axis system information, unit scale information are also stored.
Using FbxSDK, we can convert the entire scene to desired axis system and scale.
I am doing like this.
FbxAxisSystem actual_axis_system = fbx_scene->GetGlobalSettings().GetAxisSystem();
FbxAxisSystem cycles_axis_system(FbxAxisSystem::eZAxis, FbxAxisSystem::eParityOdd, FbxAxisSystem::eRightHanded);
if (actual_axis_system != cycles_axis_system) {
cycles_axis_system.ConvertScene(fbx_scene);
}
FbxGlobalSettings &global_settings = fbx_scene->GetGlobalSettings();
if (global_settings.GetSystemUnit() != FbxSystemUnit::m) {
const FbxSystemUnit::ConversionOptions lConversionOptions = {
false, /* mConvertRrsNodes */
true, /* mConvertLimits */
true, /* mConvertClusters */
true, /* mConvertLightIntensity */
true, /* mConvertPhotometricLProperties */
true /* mConvertCameraClipPlanes */
};
// Convert the scene to meters using the defined options.
FbxSystemUnit::m.ConvertScene(fbx_scene, lConversionOptions);
}