c++ - 如何使用 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
模型时,它会出现纹理。
有人可以帮助解释这个无证工具和程序吗?
谢谢,
解决方案
最新版本meshconvert
是DirectXMesh的一部分,因此除非您特别需要旧版 .X 文件支持(因为您使用的是 Wavefront OBJ,所以您不需要),您应该使用该版本而不是旧版 DirectX SDK。
的默认行为meshconvert
是从 Wavefront OBJ 的文件中获取纹理文件名,并将它们作为同一文件的版本mtl
嵌入(因此存储为)。您可以使用DirectXTex项目中的工具生成。您还可以使用开关告诉最新的文件名单独保留。.dds
texture.jpg
texture.dds
dds
texconv
meshconvert
-nodds
您还可以使用DirectX SDK 示例内容导出SDKMESH
器从 Autodesk FBX 文件创建文件。作为导出过程的一部分,此导出器还将“烹饪”纹理。
如果您有 asdkmesh
并且您正在尝试找出其中包含哪些纹理引用,请尝试使用sdkmeshdump控制台实用程序查看其中的内容。
免责声明:
SDKMESH
实际上仅用作 DirectX 示例中使用的学习格式。您可以在您的项目中使用它,但如果您的引擎/项目变得复杂,您很可能希望开发自己的运行时容器格式。它主要具有现有的价值,所以YMMV。
请参阅DirectXMesh wiki和DirectX SDK Content Exporter wiki
如果您使用的是 DXUT,您应该使用来自GitHub的最新版本。DX11和DX12的DirectX 工具包
sdkmesh
也支持
推荐阅读
- javascript - 如果元素具有特定类,如何更改 onclick 属性的值?
- python - Tensorflow 张量中的自定义函数
- python - C子进程中的当前目录
- roots-sage - 在需要由普通人维护的网站中使用 Sage
- sql - Postgres窗口函数新建表保存
- powershell - 为“开始”提供 Powershell 参数会破坏命令?
- amazon-web-services - AWS ECS:在 ECR 中强制重新部署新的最新映像
- php - PHP FUNCTION 中的 AJAX GET 函数存在问题
- java - cookie在本地删除,但在部署时不删除
- python - azure.cognitiveservices.vision.face.models._models_py3.APIErrorException: (InvalidImageSize) 图像尺寸太小