目前,我有一个三维立方体,我绘制的坐标,可以旋转和移动在一个黑色的屏幕。现在,我有了一个在"3Ds Max“中创建的模型(它是一个带有高石墙的小后院,,因此我试图将它用作我的世界对象。),我想将这个模型加载到我的 DirectX 9/C++项目中。就我在DirectX SDK中看到的例子而言,是用于加载.X模型的代码( "3Ds Max”< code >E 211需要一个插件来导出这种扩展)。我对此并不确定。)
用于将文件加载到DX9/C++:的.X代码
D3DXLoadMeshFromX( "Tiger.x", D3DXMESH_SYSTEMMEM,
g_pd3dDevice, NULL, &pD3DXMtrlBuffer, NULL,
&g_dwNumMaterials, &g_pMesh )有像"D3DXLoadMeshFromOBJ(.....)"这样的函数来加载对象吗?如何加载和呈现.OBJ文件?
我的另一个问题是,.X文件和.OBJ文件之间有什么区别,我应该使用哪一个?
发布于 2011-06-06 09:56:43
AFAIK,DirectX不支持开箱即用的波前目标文件。为此,您将需要一个外部网格加载程序。
我记得,在DX10SDK中是一个如何加载.obj文件的示例,我认为示例名为MeshFromOBJ10。我不知道它在DirectX 9中是否有用。
据我所知,标准的.x只支持基本的网格,没有动画之类的增强。如果您想尝试图形化编程,这是不错的,但如果您的目标是更高的概念,您可以稍后切换。我想您可以查找.obj 这里的优点。
为您正在使用的输入数据创建一个抽象总是一个好主意。例如,您可以创建一个类AbstractMesh和一个从它派生的实现XMesh。稍后,您可以添加其他实现,如OBJMesh或任何类似的实现。
我希望我能帮你一点:)快乐的编码!
发布于 2013-04-01 13:49:38
动画完全支持x文件格式,而且,当你想要使用着色器时,它支持fx文件。您可以从本页下载导出插件和示例:
https://stackoverflow.com/questions/6249522
复制相似问题