You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Autodesk FBX SDK导入3ds Max导出FBX的向上轴向异常问题

FBX SDK导入3ds Max导出FBX文件时轴向转换失效问题

我在使用Autodesk SDK在3D应用中导入FBX文件时遇到了一些问题。当我从3ds Max导出网格,并在导出器选项中选择Y作为向上轴向时,顶点没有被转换,文件中点坐标仍然使用Z轴作为向上轴向。这是符合预期的,因为我需要后续将场景转换到我定义的轴向系统。在导入器代码中,我校验了轴向系统,并将场景转换为Y轴向上的系统:

FbxAxisSystem axisSystem(FbxAxisSystem::eYAxis, FbxAxisSystem::eParityOdd, FbxAxisSystem::eRightHanded);
FbxAxisSystem sceneAxisSystem = fbxScene->GetGlobalSettings().GetAxisSystem();
if (sceneAxisSystem != axisSystem)
  axisSystem.ConvertScene(fbxScene);

但是,导出的文件已经与我使用的轴向系统一致(向上轴为Y),所以没有发生转换。如果我从Blender或Maya导出相同的网格,轴向系统也是相同的。3ds Max导出的文件中唯一不同的属性是OriginalUpAxis属性,其值为2(Z),而Maya导出的该属性值为1。我尝试以Z为向上轴向导出网格,顶点位置与之前相同,这次场景转换被触发(至少if语句执行了),但当我尝试转换顶点位置时,得到的是单位矩阵,这让我认为axisSystem.ConvertScene(fbxScene)没有执行任何操作:

FbxMesh *fbxMesh = meshNode->GetMesh();
FbxAMatrix& transform = meshNode->EvaluateGlobalTransform();
unsigned numFbxVertices = fbxMesh->GetControlPointsCount();
FbxVector4* lControlPoints = fbxMesh->GetControlPoints();

/*此处获取到的是单位矩阵
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
*/
std::cout << transform.GetColumn(0).Buffer()[0] << transform.GetColumn(0).Buffer()[1] << transform.GetColumn(0).Buffer()[2] << transform.GetColumn(0).Buffer()[3] << std::endl;
std::cout << transform.GetColumn(1).Buffer()[0] << transform.GetColumn(1).Buffer()[1] << transform.GetColumn(1).Buffer()[2] << transform.GetColumn(1).Buffer()[3] << std::endl;
std::cout << transform.GetColumn(2).Buffer()[0] << transform.GetColumn(2).Buffer()[1] << transform.GetColumn(2).Buffer()[2] << transform.GetColumn(2).Buffer()[3] << std::endl;
std::cout << transform.GetColumn(3).Buffer()[0] << transform.GetColumn(3).Buffer()[1] << transform.GetColumn(3).Buffer()[2] << transform.GetColumn(3).Buffer()[3] << std::endl;

请问这是SDK的bug吗?有没有解决建议?

问题解决

问题已解决,对场景中每个节点执行node->ResetPivotSetAndConvertAnimation()会同时重置变换矩阵,这就是问题的根源,现在运行完全正常。


内容的提问来源于stack exchange,提问作者Teo More

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:27:03