gpt4 book ai didi

c++ - 从 .obj(或任何其他)文件加载网格到 DirectX9/C++ 项目

转载 作者:搜寻专家 更新时间:2023-10-31 00:45:43 24 4
gpt4 key购买 nike

目前我有一个3D立方体,是我通过写坐标绘制的,可以在黑屏上旋转和移动。现在我有一个在“3Ds Max”中创建的模型(这是一个有高石墙的小后院,所以我试图将它用作我的世界对象。)我想将此模型加载到我的 DirectX9/C++ 项目中。据我在 DirectX SDK 示例中看到的,这段代码用于加载 .X 模型(它需要一个 “3Ds Max”插件 来导出那种扩展。我'我不确定。)

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

D3DXLoadMeshFromX( "Tiger.x", D3DXMESH_SYSTEMMEM, 
g_pd3dDevice, NULL, &pD3DXMtrlBuffer, NULL,
&g_dwNumMaterials, &g_pMesh )

是否有类似"D3DXLoadMeshFromOBJ(.....)" 的函数来加载对象?如何加载和呈现 .OBJ 文件? 8(

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

最佳答案

据我所知,DirectX 不支持开箱即用的波前对象文件。为此,您需要一个外部网格加载器。

我记得,在 DX 10 SDK 中有一个如何加载 .obj 文件的示例,我认为该示例称为 MeshFromOBJ10。不知道在DirectX 9中有没有用。

据我所知,标准.x 仅支持基本网格,不支持动画等增强功能。如果你想尝试图形化编程,那还不错,但如果你的目标是更高的概念,你可以稍后切换。我想你可以看看.obj 文件的优点here .

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

希望我能为您提供一些帮助:) 祝您编程愉快!

关于c++ - 从 .obj(或任何其他)文件加载网格到 DirectX9/C++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6249522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com