Math 将FBX模型加载到DirectX应用程序中

Math 将FBX模型加载到DirectX应用程序中,math,graphics,3d,direct3d,fbx,Math,Graphics,3d,Direct3d,Fbx,我正在尝试在directx应用程序中从FBX文件渲染3d模型, 所以我用fbx sdk加载了它,但我发现了一个大问题,可能是由不同的坐标系引起的:DirectX使用左手,fbx-右手, 所以最后我得到了渲染,但有两个问题: 模型的所有部分看起来都由Z轴镜像(或由X轴镜像-不清楚) 应用FBX提供的变换矩阵后,零件的位置不正确 各部分 那么如何处理顶点数据和/或变换矩阵呢?您需要在应用程序中保存模型和变换数据,而不是将其存储在文件中。一般来说,听起来你需要做的是: 加载FBX 根据FBX将变

我正在尝试在directx应用程序中从FBX文件渲染3d模型, 所以我用fbx sdk加载了它,但我发现了一个大问题,可能是由不同的坐标系引起的:DirectX使用左手,fbx-右手, 所以最后我得到了渲染,但有两个问题:

  • 模型的所有部分看起来都由Z轴镜像(或由X轴镜像-不清楚)
  • 应用FBX提供的变换矩阵后,零件的位置不正确 各部分

那么如何处理顶点数据和/或变换矩阵呢?

您需要在应用程序中保存模型和变换数据,而不是将其存储在文件中。一般来说,听起来你需要做的是:

  • 加载FBX
  • 根据FBX将变换应用于每个零件
  • 应用变换以反转所有顶点上的Z轴
  • 渲染/使用生成的模型

在错误的坐标系中应用FBX变换将产生错误的结果。

谢谢您的回答,所有零件现在看起来都正常,但它们的位置仍然不正确…旋转看起来正常,平移和/或缩放似乎有问题。刚刚找到的解决方案。我没有使用GeometryTransform矩阵,它来自于readme.txt中描述的Fbx sdk的“已知问题”,因此Fbx文档非常糟糕,因为我不得不花时间在它上面