首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.obj (或任何其他)文件中的网格加载到DirectX9/C++项目中

将.obj (或任何其他)文件中的网格加载到DirectX9/C++项目中
EN

Stack Overflow用户
提问于 2011-06-06 08:42:39
回答 2查看 6.2K关注 0票数 2

目前,我有一个三维立方体,我绘制的坐标,可以旋转和移动在一个黑色的屏幕。现在,我有了一个在"3Ds Max“中创建的模型(它是一个带有高石墙的小后院,,因此我试图将它用作我的世界对象。),我想将这个模型加载到我的 DirectX 9/C++项目中。就我在DirectX SDK中看到的例子而言,是用于加载.X模型的代码( "3Ds Max”< code >E 211需要一个插件来导出这种扩展)。我对此并不确定。)

用于将文件加载到DX9/C++:的.X代码

代码语言:javascript
复制
D3DXLoadMeshFromX( "Tiger.x", D3DXMESH_SYSTEMMEM, 
            g_pd3dDevice, NULL, &pD3DXMtrlBuffer, NULL,
            &g_dwNumMaterials, &g_pMesh )

有像"D3DXLoadMeshFromOBJ(.....)"这样的函数来加载对象吗?如何加载和呈现.OBJ文件?

我的另一个问题是,.X文件和.OBJ文件之间有什么区别,我应该使用哪一个?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-06 09:56:43

AFAIK,DirectX不支持开箱即用的波前目标文件。为此,您将需要一个外部网格加载程序。

我记得,在DX10SDK中是一个如何加载.obj文件的示例,我认为示例名为MeshFromOBJ10。我不知道它在DirectX 9中是否有用。

据我所知,标准的.x只支持基本的网格,没有动画之类的增强。如果您想尝试图形化编程,这是不错的,但如果您的目标是更高的概念,您可以稍后切换。我想您可以查找.obj 这里的优点。

为您正在使用的输入数据创建一个抽象总是一个好主意。例如,您可以创建一个类AbstractMesh和一个从它派生的实现XMesh。稍后,您可以添加其他实现,如OBJMesh或任何类似的实现。

我希望我能帮你一点:)快乐的编码!

票数 4
EN

Stack Overflow用户

发布于 2013-04-01 13:49:38

动画完全支持x文件格式,而且,当你想要使用着色器时,它支持fx文件。您可以从本页下载导出插件和示例:

http://www.cgdev.net/download.php

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6249522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档