Вопрос

У меня проблема с импортом 3D-модели из файла FBX.

Исходная модель содержит 575 объектов + 1 камеру и выглядит так: http:// habreffect .ru / files / 23d / 542fa7f67 / source_model.png

В XNA подготовленная модель конвейера содержимого содержит 82 сетки и 576 костей. Итак, когда я рисую свою модель, я вижу только часть исходной модели. Результат выглядит следующим образом: http://habreffect.ru/files/28a/6e61c0215/Result_view.png

Мой код для рисования:

родовое слово

Как я могу получить все 575 мешей в моем экземпляре модели в XNA?

Спасибо!

UPD : Я попытался импортировать свою модель FBX в 3ds max, выделить все сетки и использовать «Экспорт выбранных». В результате файл FBX стал в 11 раз больше. Затем я добавляю его как содержимое в проект XNA, загруженная модель содержит все 575 сеток и отображается правильно.

К сожалению, этот метод ручного преобразования мне не подходит - мне нужно рендерить различные модели fbx из изменяемого репозитория.

Итак, какие файлы FBX "хороши" для обработчика содержимого XNA (я использую XNA 4)?

Это было полезно?

Решение

Итак, на MSDN Я обнаружил, что FbxImporter разработан для работы с версией 2006.11 формата FBX.

Недавно Autodesk выпустила FBX Converter 2012.1 , который содержит другие инструменты, такие как FBX Eplorer, FBX Viewer.

Проводник FBX может отображать структуру файла FBX, и я сравниваю экспортированный из файла 3D MAX и исходный файл FBX. У них другой внутренний формат. Я пробовал сделать следующую конвертацию: FBX - > Collada -> FBX, и полученный файл FBX содержит структуру данных, аналогичную экспортированной из MAX.

Итак, я просто добавляю результат FBX в Content моего приложения XNA, и он хорошо отображается :)

Еще один способ заставить его работать - использовать Autodesk FBX SDK для ручного чтения модели и ее рисования в XNA.

Заключение :

  1. Корректная работа XNA FbxImporter не зависит от версии (2006, 2011 и т. д.) и формы (двоичная, ascii) файла FBX. Гораздо важнее внутренняя структура данных FBX.
  2. Чтобы сделать FBX «читаемым» для XNA Importer, вы можете использовать двойное преобразование, например FBX -> Collada -> FBX
  3. Вы также можете использовать FBX SDK для ручной загрузки данных из FBX.

Другие советы

Откройте 3D-модель в последней версии 3dx max 2012 и экспортируйте ее в формате .fbx.Этот генерирующий код кода правильно загружается с помощью загрузчика модели xna.При экспорте вы даже можете встраивать ресурсы, поэтому вам не нужно добавлять к ним текстуры через XNA.

Вы используете создание экземпляров в 3DS MAX.Это не поддерживается напрямую XNA. Вы должны сами нарисовать сетку для каждого экземпляра кости. В идеале вместо этого вы должны использовать экземпляр DirectX для отрисовки каждого меша один раз для каждой кости за один вызов Draw (). Но для этого вам нужно свернуть свой собственный код, преобразовав кости в вершины экземпляра. По умолчанию XNA поддерживает только самые основные операции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top