首页 > 解决方案 > 如何使用 Textures 和 MeshConvert.exe 构建 SdkMesh?

问题描述

我需要构建一个类似于 DirectX SDK 附带的 Tiny.sdkmesh 的 sdkmesh 文件。

我有网格文件base.obj

我有纹理textures/base.jpg

我正在meshconvert.exe使用以下命令行运行

meshconvert.exe base.obj -n -op -tb

它生成一个base.sdkmesh但它没有纹理文件

我尝试使用paint.net将jpeg纹理保存为文件dds

当我渲染我的模型时,它全是黑色的。但是当我渲染tiny.sdkmesh模型时,它会出现纹理。

有人可以帮助解释这个无证工具和程序吗?

谢谢,

标签: c++winapivisual-studio-2015directx-11direct3d

解决方案


最新版本meshconvertDirectXMesh的一部分,因此除非您特别需要旧版 .X 文件支持(因为您使用的是 Wavefront OBJ,所以您不需要),您应该使用该版本而不是旧版 DirectX SDK

的默认行为meshconvert是从 Wavefront OBJ 的文件中获取纹理文件名,并将它们作为同一文件的版本mtl嵌入(因此存储为)。您可以使用DirectXTex项目中的工具生成。您还可以使用开关告诉最新的文件名单独保留。.ddstexture.jpgtexture.ddsddstexconvmeshconvert-nodds

您还可以使用DirectX SDK 示例内容导出SDKMESH器从 Autodesk FBX 文件创建文件。作为导出过程的一部分,此导出器还将“烹饪”纹理。

如果您有 asdkmesh并且您正在尝试找出其中包含哪些纹理引用,请尝试使用sdkmeshdump控制台实用程序查看其中的内容。

免责声明:SDKMESH实际上仅用作 DirectX 示例中使用的学习格式。您可以在您的项目中使用它,但如果您的引擎/项目变得复杂,您很可能希望开发自己的运行时容器格式。它主要具有现有的价值,所以YMMV。

请参阅DirectXMesh wikiDirectX SDK Content Exporter wiki

如果您使用的是 DXUT,您应该使用来自GitHub的最新版本。DX11DX12的DirectX 工具包sdkmesh也支持


推荐阅读