FbxAnimCurve在SDK 2016和2009版本之间具有不同的行为

时间:2017-02-21 10:56:11

标签: fbx

我将我的FBX SDK升级到2016,但是有一个错误。

旧代码是:

KFbxCamera * FBXPopulator::GetActiveCamera( KTime & a_Time ) const { KFbxCameraSwitcher* cameraSwitcher = m_Scene->GetGlobalCameraSettings().GetCameraSwitcher(); if ( cameraSwitcher ) { KFCurve* curve = cameraSwitcher->CameraIndex.GetKFCurve( NULL, m_Scene->GetCurrentTakeName() ); if ( curve ) { int32_t index = static_cast< int32_t >( curve->Evaluate( a_Time ) - 1 ); return m_DeclaredCameras[ index ]->GetCamera(); } } return NULL; }

当前代码为:

FbxCamera * FBXPopulator::GetActiveCamera(FbxTime & a_Time) const { FbxCameraSwitcher* cameraSwitcher = m_Scene->GlobalCameraSettings().GetCameraSwitcher(); if (cameraSwitcher) { //Is it right here? FbxAnimCurve* curve = cameraSwitcher->CameraIndex.GetCurve(m_Scene->GetCurrentAnimationStack()->GetMember()); if (curve) { int32_t index = static_cast< int32_t >(curve->Evaluate(a_Time) - 1); return m_DeclaredCameras[index]->GetCamera(); } } return NULL; }

是不是错了?

我在2009版本中获得了索引== 0而在2016版本中索引== 1。

有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

答案是,新的SDK无法正确读取某些字段。 我只是用FBX Converter 2009转换fbx文件。 有用。 但我不知道为什么。