将blender模型导入DirectX 11.2 C ++应用程序

时间:2014-08-24 13:36:41

标签: c++ import blender directx-11

我是DirectX应用程序的新手,具有良好的C ++知识和使用Blender的一些经验。所以对于初学者我想知道如何将Blender中的UV球体导入到DirectX 11.2 C ++应用程序中。我正在使用11月版编译器。是否有在最新的DirectX应用程序中使用Blender模型的教程?因为我读到DirectX 10后不再支持.X格式,我需要在DirectX 11.2环境中使用它。关于该做什么以及走向何方,我几乎一无所知,所以任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:4)

如果您只想使用本机DirectX显示一些3D对象,那么除了执行所有初始化工作外,没有别的办法,为Blender能够导出的某种格式编写文件加载器并设置相应的渲染管道。事实上,您可以在自己的应用程序中看到Blender模型。但如果您打算最终编写自己的图形引擎,那么这是您必须采取的一种方式。如果这不是您的目标,我建议您使用您选择的开源3D引擎。

我在网页上使用了一个非常好的在线教程,遗憾的是它不再存在,当然还有MSDN图书馆来了解DirectX 11.你仍然可以在internet archive找到这些教程。另外,我发现了另一个tutorial,乍一看似乎很好看。

如果您不需要做Blender必须写入要导出的文件的特殊内容,我建议使用.obj格式,因为它易于理解和加载。

我偶然会编写自己的图形引擎。因此,如果您对此主题有任何疑问,请随时与我联系。

答案 1 :(得分:2)

你可以随时制作自己的格式,如果它,我不知道,只是为了一些学校项目或类似的东西(疯狂猜测)。按照您希望的方式格式化数据,例如:

X,Y,Z,R,G,B\n
X,Y,Z,R,G,B\n
X,Y,Z,R,G,B\n... 

对于顶点,在列出所有顶点之后,您可以使用一些类似于' $'或者'%'或类似的东西,它将表示顶点的终点和索引的开始,这将使以后更容易解析。您可以假设它始终是TriangleList拓扑,但您也可以将第一行文件专用于配置,例如int 1表示您将使用trinagleList等等...

希望它有所帮助!

P.S。:Julians的答案在我看来更好,它总是很好地为未来的项目学习新的有用的东西(比如Bioware:D),只是在这里提出替代方案。