Как создать SdkMesh с помощью текстур и MeshConvert.exe? - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно создать файл sdkmesh, похожий на Tiny.sdkmesh, который поставляется с DirectX SDK.

У меня есть файл сетки base.obj

И у меня есть текстура в textures/base.jpg

Я использую meshconvert.exe со следующей командной строкой

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

Он генерирует base.sdkmesh, но не имеет файла текстуры

Я попытался сохранить текстуру jpeg в виде dds файла, используя paint.net

Когда я рендерил свою модель, она получалась полностью черной.Но когда я рендерим модель tiny.sdkmesh, она получается текстурированной.

Может кто-нибудь помочь объяснить этот недокументированный инструмент и процедуру?

Спасибо,

1 Ответ

0 голосов
/ 06 июня 2018

Последняя версия meshconvert является частью DirectXMesh , поэтому, если вам не требуется поддержка устаревших файлов .X (что не требуется, поскольку вы используете Wavefront OBJ), вам следует использовать этувместо устаревшего DirectX SDK .

Поведение по умолчанию meshconvert состоит в том, чтобы взять имена файлов текстуры из файла mtl вашего Wavefront OBJ и встроить их как .dds версиитот же файл (поэтому texture.jpg хранится как texture.dds).Вы можете создать dds с помощью инструмента texconv в проекте DirectXTex .Вы также можете указать последним meshconvert оставить имена файлов без изменений с помощью переключателя -nodds.

Вы также можете создавать SDKMESH файлы из файлов Autodesk FBX с помощью DirectX SDK Samples Content Exporter .Этот экспортер будет «готовить» текстуры как часть процесса экспорта.

Если у вас есть sdkmesh, и вы пытаетесь выяснить, какие ссылки на текстуры в нем есть, попробуйте использовать sdkmeshdump консольная утилита, чтобы увидеть, что в ней.

Отказ от ответственности: SDKMESH на самом деле предназначен только в качестве формата обучения, используемого в примерах DirectX.Вы можете использовать его в своем проекте, но вы, скорее всего, захотите разработать свой собственный формат контейнера времени выполнения, если ваш движок / проект станет более сложным.В основном он имеет значение существующих, поэтому YMMV.

См. DirectXMesh wiki и DirectX SDK Content Exporter вики

Если вы используете DXUT, вы должны использовать последнюю версию GitHub .sdkmesh также поддерживается DirectX Tool Kit для DX11 и DX12

...