FBX SDK를 2016로 업그레이드했지만 버그가 있습니다.FbxAnimCurve는 SDK 2016과 2009 버전간에 다른 동작을합니다
오래된 코드는 다음과 같습니다
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 버전에서는 index == 0이고 2016 버전에서는 index == 1입니다.
제안 사항? 감사합니다.