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

Posted

技术标签:

【中文标题】将 FBX 模型加载到 DirectX 应用程序中【英文标题】:Loading FBX model into DirectX application 【发布时间】:2013-01-07 05:42:12 【问题描述】:

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

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

那么我可以如何处理顶点数据和/或转换矩阵?

【问题讨论】:

【参考方案1】:

您需要以不同于存储在文件中的方式在应用程序中保存模型和转换数据。一般来说,听起来你需要做的是:

加载 FBX 根据 FBX 对每个部分应用变换 应用变换来反转所有顶点的 Z 轴 渲染/使用生成的模型。

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

【讨论】:

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

以上是关于将 FBX 模型加载到 DirectX 应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

Android 将 FBX 或 Collada(.dae) 加载到 Android Studio Activity 中

将 FBX 球体模型加载到 CDXUTSDKMesh 或类似的最短路径

将 FBX 顶点和索引缓冲区导入 DirectX 11

DirectX 12 应用程序在 Windows 11 中崩溃

FBX 模型的面(某些)未正确渲染

添加到 XNA 时 Fbx 动画模型变形